此问题的答案为community effort。编辑现有答案以改进此帖子。它目前不接受新的答案或交互。
这是什么?
这是一个关于JavaScript语法的问题的集合。这也是一个社区Wiki,因此邀请所有人参与维护此列表。
为什么?
堆栈溢出不允许搜索特定字符。因此,在搜索操作符和其他语法标记时,不容易找到许多关于它们的问题。这也使得关闭重复更困难。下面的列表有助于解决这个问题。
主要的想法是有链接到堆栈溢出上现有的问题,所以我们更容易引用它们,而不是从ECMAScript规范复制内容。
此外,这是对PHP符号引用的公然复制。我们需要一个JS。
请帮助。编辑并添加指向其他操作符/语法参考的链接,或者如果您无法找到关于特定语法的好问题/答案,请添加此问题的答案并将其链接
1条答案
按热度按时间e4yzc0pl1#
请参阅MDN上有关expressions and operators和statements的文档。
基本关键字和通用表达式
this
关键字:var x = function()
对比function x()
- 函数声明语法(function(){
...})()
- IIFE(立即调用的函数表达式)(function(){…})();
work butfunction(){…}();
doesn't?(function(){…})();
vs(function(){…}());
!function(){…}();
- What does the exclamation mark do before the function?+function(){…}();
- JavaScript plus sign in front of function expression!
vs leading semicolon(function(window, undefined){…}(window));
someFunction()()
- 返回其他函数的函数=>
- 等号,大于:箭头函数表达式语法|>
- 管道,大于:管道操作员function*
,yield
,yield*
- 在function
或yield
后加星号:生成函数[
...]
、[ value ]
、Array()
- 方括号:数组记法如果方括号出现在赋值语句(
[a] = ...
)的左侧,或者出现在函数的参数中,则它是一个destructuring assignment。{
...}
、{ key: value }
、{ [key]: value }
- curl 支架:对象文字语法(不要与块混淆)如果花括号出现在赋值语句的左侧(
{ a } = ...
)或函数的参数中,则它是一个destructuring assignment。... `${` ... `}` ...
- 反引号,带花括号的美元符号:模板文字…${…}…
code from the node docs mean?/
.../
- 斜线:正则表达式文字$
- 正则表达式中的美元符号替换模式:$$
、$&
、$``、
$'、
$ `n``()
- 括号:分组算子属性相关表达式
obj.prop
,obj[prop]
,obj["prop"]
- 方括号或圆点:属性访问器?.
,?.[]
,?.()
- 问号,点:任选链接算子::
- 双冒号:结合运算子new
运算符...iter
- 三点:spread语法;静止参数(...rest) => {}
- What is the meaning of “…args” (three dots) in a function definition?fn(...args)
- What is the meaning of “foo(…arg)” (three dots in a function call)?[...iter]
- javascript es6 array feature […data, 0] “spread operator”{...props}
- Javascript Property with three dots (…),What does the '…rest' stand for in this object destructuring?增量和减量
++
,--
- 双正负:前/后递增/递减运算符++someVariable
vssomeVariable++
in Javascript一元和二元(算术、逻辑、位)运算符
delete
运算符void
运算符void 0
mean?+
,-
- 加减:加法或串联,以及减法运算符;一元符号算子|
、&
、^
、~
- 单管道、与号、扬抑符、波浪号:按位OR、AND、XOR和NOT运算符~1
equal-2
?%
- 百分号:余运算符&&
,||
,!
- 双“和”号、双竖线、感叹号:逻辑运算符??
- 双问号:零合并算子**
- 星星:幂运算符(取幂)x ** 2
等同于Math.pow(x, 2)
等号运算符
==
,===
- 等号:等式运算符!=
,!==
- 感叹号和等号:不等式算子移位运算符
<<
,>>
,>>>
- 两个或三个尖括号:位元移位运算子条件运算符
...
?
...:
... - 问号和冒号:条件(三元)运算符赋值运算符
=
- 等号:赋值运算符=
and==
operators and what is===
? (Single, double, and triple equals)此符号也用于destructuring assignment中的 default parameters 或 default values:
%=
- 百分比等于:余数赋值+=
- 加等于:加法赋值运算符&&=
,||=
,??=
- 双“与”、竖线或问号,后跟等号:逻辑赋值||=
(or equals) in JavaScript?<<=
,>>=
,>>>=
,&=
,^=
,|=
-双小于、双大于、三大于、和号、插入符号或后接等号的竖线:按位赋值销毁
[ a, b, c ] = [ 1, 2, 3 ]
mean?逗号运算符
,
- 逗号运算符(不要与变量声明中使用的逗号混淆)控制流程
{
...}
- curl 括号:块(不要与对象文字语法混淆)声明
var
,let
,const
- 声明变量var a, b;
- 变量声明中使用的逗号(不要与逗号运算符混淆):JavaScript variable definition: Commas vs. Semicolons标签
label:
- 冒号:标签其他
整数后的
123n
-n
:BigInt#
- Hash(数字符号):私有方法或私有字段#
symbol do in JavaScript?_
- Underscore:数字文本中的分隔符