JavaScript自动加分号规则:
1.当有换行符(包括含有换行符的多行注释),并且下一个token没法跟前面的语法匹配时,会自动补分号。
2.当有}时,如果缺少分号,会补分号。
3.当程序源代码结束时,如果缺少分号,会补分号。
结论:
1.在return、break、continue、后自增、后自减五种语句中,换行符可以完全替代分号的作用。
2.var if do while for continue break return with switch throw try debugger几种关键字开头的语句,以及空语句,上一行加不加分号影响不大。
3.凡表达式语句和函数表达式语句,后面不加分号非常危险,情况极其复杂。
4.凡(和[开头的语句,前面不加分号极度危险。
一条语句代表着一条javascript命令,通常以分号()结尾。因此,javascript的分号()是用于分隔语句的符号。
可将分号“”省略的几种情形:
(1)语句各自独占一行,通常可以省略结尾的分号
(2)程序结束或者右花括号(})之前的分号也可以省略
javascript懒汉原则:不添加分号“”就可以顺利解析的语句,不会主动添加分号()再进行解析。javascript只有在缺少分号就无法正确解析代码的时候,javascript才会填补分号。
语句各自独占一行,通常可以省略结尾的分号。
a=3
b=4
那么a=3后面的可以省略
a=3 b=4
那么a=3后面的分号不能省略
例外情形:第一个例外是在涉及return、break和continue语句的场景中,如果这三个关键字后面紧跟着换行,javascript则会在换行处填补分号。
第二个例外是在涉及“++”和“--”运算符的时候,这些运算符可以作为表达式的前缀,也可以当做表达式的后缀。如果将其用做后缀表达式,它和表达式应该在同一行。否则,行尾将填补分号,同时“++”或“--”姜维作为下一行代码的前缀操作符,并与之一起解析。
我在我的博客也会分享一些基础的前端知识,喜欢的话可以去逛逛:弹幕猴子