正在關注this教程,這些代碼行是什麼意思?JavaScript中的逗號運算符
var join = require('path').join
, pfx = join(__dirname, '../_certs/pfx.p12');
逗號運算符評估它的每個操作數(從左到右)並返回最後一個操作數的值。
這些線條如何寫得更容易?
正在關注this教程,這些代碼行是什麼意思?JavaScript中的逗號運算符
var join = require('path').join
, pfx = join(__dirname, '../_certs/pfx.p12');
逗號運算符評估它的每個操作數(從左到右)並返回最後一個操作數的值。
這些線條如何寫得更容易?
在這種情況下,逗號分隔兩個變量,這就是它,它一樣寫
var join = require('path').join;
var pfx = join(__dirname, '../_certs/pfx.p12');
而是一個可以做
var join = require('path').join,
pfx = join(__dirname, '../_certs/pfx.p12');
在這種情況下,逗號僅僅是一個分隔符,就像它將是一個對象文字或數組一樣。
逗號操作,這是隻有當它作用於兩個表達式,一個在左邊,一個在右邊的操作,可以用來當你想在需要的地點的多個表達式一個單一的表達。
一個例子是return語句中
[1,2,3].reduce(function(a,b,i) {
return a[i] = b, a; // returns a;
},[]);
等等
它本質上是一樣的在許多情況下分號,所以你可以把它改寫爲這樣的:
var join = require('path').join;
var pfx = join(__dirname, '../_certs/pfx.p12');
區別歸結爲像聲明變量(如您的示例)這樣的行,其中var
應用於逗號分隔列表中的每個元素。除此之外,它或多或少是一個分號,儘管在大多數情況下不推薦使用逗號語法。
我個人更喜歡它的變量,因爲我覺得這看起來乾淨了一點:
var a = 5,
b = 6,
c,
d;
但也有人不喜歡它。
**是**逗號,但它不是**「逗號操作符」。 – Pointy
@Pointy - 其實是對的,在這種情況下它只是一個分隔符。 – adeneo
關於Pointy評論的參考文獻:[使用逗號(而不是逗號運算符)的'var'語句的語法](http://www.ecma-international.org/ecma-262/6.0/#sec-variable-statement)和[逗號運算符](http://www.ecma-international.org/ecma-262/6.0/#sec-comma-operator) –