JS 代码要不要加分号?
JavaScript 中分号划分了社区。有些人不管怎样都喜爱使用分号。其别人喜爱不加分号。
在使用分号多年之后,2017 年秋,我决议尝试按照需要不加分号,并且设定 Prettier 主动移除我代码中的分号,除非是必要的代码构造需要它们。
此刻我发明,不使用分号非常天然,我认为这样的代码看起来更好,它们更简约易读。
这完全大概的,由于 JavaScript 并不严厉要求分号。当某个地方需要分号时,它会在后台增加它。
这个历程就叫做 主动插入分号.
重要的是理解使用分号的规则,这样可以幸免编写会发生 bug 的代码,由于它们的行动与您盼望的不一样。
JavaScript 主动增加分号的规则
JavaScript 说明器在说明源码时发明以下非凡状况,会主动增加分号:
当下一行代码开头中止当前行代码时(代码可以多行编写)
当下一行以 } 开头,关闭当前块
当抵达源码的结尾时
当 return 声明在当前行
当 break 声明在当前行
当 throw 声明在当前行
当 continue 声明在当前行
与你的设法不一样的代码示例
于这些规则,这里有一些例子。
看例子:
const hey = 'hey' const you = 'hey' const heyYou = hey + ' ' + you ['h', 'e', 'y'].forEach((letter) => console.log(letter))
你会得到错误 Uncaught TypeError: Cannot read property 'forEach' of undefined,由于基于规则 1,JavaScript 会尝试将代码说明为
const hey = 'hey'; const you = 'hey'; const heyYou = hey + ' ' + you['h', 'e', 'y'].forEach((letter) => console.log(letter))
这段代码:
(1 + 2).toString()
打印为 "3".
const a = 1 const b = 2 const c = a + b (a + b).toString()
而是激发 TypeError: b is not a function 非常,由于 JavaScript 尝试将其说明为
const a = 1 const b = 2 const c = a + b(a + b).toString()
另一个基于规则 4 的例子:
(() => { return { color: 'white' } })()
你但愿此马上调取的函数的返回值是一个包括 color 属性的对象,但事实并非如此。相反,它是 undefined,由于 JavaScript 在 return 之后插入分号。
相反,你应当将左括号放到 return 后面:
(() => { return { color: 'white' } })()
你认为这段代码会展现 '0':
1 + 1 -1 + 1 === 0 ? alert(0) : alert(2)
相反它会展现 2,由于 JavaScript 按照规则 1 会说明为:
1 + 1 -1 + 1 === 0 ? alert(0) : alert(2)
完毕语
留神。有些人对分号很成心见。我倒不是很在意,这个工具供给给我们一个不使用它的选中,所以我们可以幸免使用分号。
我不是在倡议什么,只是让你本人做决议。
我们只需要留意一点,即便大多数状况下这些根本场景从未显现在您的代码中。
摘选一些规则,如下:
当心使用 return 语句。假如您返回某个内容,请将其增加到与返回内容雷同的行中(相似还有 break、throw、continue)
永久不要使用括号开端一行,这些大概与前一行连接起来,构成函数调取或数组元素援用
最后,始终测试您的代码,以确保它能知足您的需要。
引荐教程:《JS教程》
以上就是JS 代码要不要加分号?的具体内容,更多请关注百分百源码网其它相关文章!