这个符号在JavaScript中代表什么意思?

86

这是什么?

这是关于 JavaScript 语法的一些常见问题的集合。这也是一个社区 Wiki,因此所有人都可以参与维护该列表。

为什么会有这个?

Stack Overflow 不允许搜索特定字符。因此,许多关于运算符和其他语法标记的问题在搜索时不容易被找到。这也使得关闭重复问题更加困难。下面的列表旨在解决这个问题。

主要想法是提供链接到 Stack Overflow 上现有问题,以便我们更容易地引用它们,而不是复制 ECMAScript 规范中的内容。

此外,这是一个 PHP 符号参考的明显副本。我们需要一个 JS 的。


请帮忙。编辑并添加到其他运算符/语法参考的链接,或者如果您找不到关于特定语法片段的好问题/答案,请添加一个答案到这个问题,并链接它。

@amnotiam:其实并不重要,但这可能比任何单独的帖子更容易找到/记住。我在搜索有关|运算符的信息时遇到了很大的困难。PHP版本已经成为关闭重复问题的常用参考。 - Wesley Murch
1
我认为,除非有官方政策的变更,否则应该保留这个。或者,也许可以添加到标签维基中。但是维基似乎不是这个内容的合适位置。尽管没有足够的“答案”潜力,就像一个“规范问题”那样,我会想要重新开放。虽然我会听取管理员的审查意见。 - David Thomas
1
@David Thomas:不幸的是,标签维基仍然很糟糕。这就是为什么即使书籍问题今天仍然是一个问题的原因。 - BoltClock
@ruakh 我把它还原到了与链接的PHP问题格式相匹配的状态 - 顺便说一句,这个问题并没有关闭或更改格式。在社区维基格式中编制常见问题列表要简单得多,而不是提出非常广泛的问题(正如您编辑的那样),然后浏览数十个答案以找到您想要的答案。我会在这个问题上与社区保持一致,但目前为止,人们似乎普遍喜欢它的现状。 - Thomas Shields
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/8488/discussion-between-thomas-shields-and-ruakh - Thomas Shields
显示剩余2条评论
1个回答

267

请参阅 MDN 上关于表达式和运算符以及语句的文档。

基本关键字和一般表达式

this关键字:

var x = function()function x()——函数声明语法

(function(){})()——IIFE(立即执行函数表达式)

someFunction()()  —  返回其他函数的函数

=>  —  等于号,大于号:箭头函数表达式语法

|>  —  管道,大于号:管道操作符

function*yieldyield*  —  functionyield后面跟随星号:生成器函数

[], [ value ], Array()  —  方括号:数组表示法

如果方括号出现在赋值的左侧([a] = ...),或者在函数参数中,那么这是一种解构赋值

{}, { key: value }, { [key]: value }  —  花括号:对象字面量语法(不要与块混淆)

如果花括号出现在赋值的左侧({ a } = ...)或函数参数内部,则它是一个解构赋值

`${}`  —  反引号、带花括号的美元符号:模板字面量

//  —  斜杠:正则表达式字面量

$  —  正则表达式替换模式中的美元符号: $$, $&, $`, $', $n

()  —  括号: 分组运算符


与属性相关的表达式

obj.propobj[prop]obj["prop"]  —  方括号或点号:属性访问器

?.?.[]?.()  —  问号、点号:可选链操作符

:: - 双冒号:绑定运算符

new 运算符

...iter  —  三个点:展开语法;剩余参数


增量和减量

++, --  —  双加或双减:前缀/后缀增量/减量运算符


一元和二元(算术,逻辑,位)运算符

delete 运算符

void 运算符

+, -  —  加减:加法或连接,减法运算符;一元符号运算符

|, &, ^, ~  —  单管道、和号、抑或、取反:按位或、与、异或、非运算符

%  —  百分号:求余运算符

&&||!  —  双与、双或、感叹号:逻辑运算符

??  —  双问号:nullish-coalescing 运算符

**  —  双星号:幂运算符(指数运算)


等式运算符

==, ===  —  等号:等式运算符

!=, !==  —  感叹号和等于号:不等运算符


位移运算符

<<, >>, >>> — 两个或三个尖括号: 位移运算符


条件运算符

?:…  —  问号和冒号:条件(三元)运算符


赋值运算符

=  —  等号:赋值运算符

这个符号也用于解构赋值中的默认参数或默认值:

%=  —  百分号等于号:取余赋值

+=  —  加等于:加法赋值运算符

&&=, ||=, ??=  —  双与、管道或问号,后跟等号:逻辑赋值

<<=, >>=, >>>=, &=, ^=, |= — 双小于号、双大于号、三倍大于号、与、插入符号或竖杠后跟等号:位运算赋值

解构


逗号运算符

, — 逗号运算符(不要与变量声明中使用的逗号混淆)


控制流程

{}  — 大括号:块(不要与对象字面量语法混淆)

声明

var, let, const  —  声明变量


标签

label:  —  冒号:标签


其他

123n  —  整数后的n:BigInt

#  —  井号(number sign):私有方法或私有字段

_  —  下划线:数字文字中的分隔符


它是什么?object!.someKey - Alexey Nikonov
@AlexeyNikonov 我认为 JavaScript 中没有 object!.somKey 语法,但在大多数语言中,它表示您正在强制解包一个值,即您确定对象已定义且不是可选的。 - Anime no Sekai
@AlexeyNikonov 这是 TypeScript。 - Bergi
@Bergi,但这个运算符的名称是什么?我想更多地在谷歌上了解它。 - Alexey Nikonov
@AlexeyNikonov 很容易只需在谷歌中键入符号名称 - Sebastian Simon
@slebetman 他们已经在列表中了。 - Bergi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接