JavaScript编程-可选的分号
来源:互联网 发布:软件模块间接口 编辑:程序博客网 时间:2024/05/17 07:56
偷一下懒,直接用了《JavaScript权威指南》的小标题——可选的分号。
最近要参与公司项目,看了代码规范,又看了《JavaScript权威指南》,里面都有提到JavaScript编程过程中分号处理的问题。众所周知,JavaScript是可以不用分号结尾的,现在许多shell语言也都有类似的实现,其实是在解释代码的时候补加了分号。
之前有写过文章来记录js中必须要用分号的地方,不用分号会导致报错,但没有说为什么。这边又遇到了比较好的解释,所以记录一下。
看一下书中的描述在JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号(程序结尾或右花括号“}”之前的分号也可以省略)
。
这边有个条件语句各自独占一行
,如果一行包括两个语句,则必须用分号隔开了
//类似这样,可以不加分号a = 3b = 4//类似这样,必须有分号隔断a = 3; b = 4
因为JavaScript解释时是在一行结束的时候才会判断是否需要补充分号,想来也是,如果每个字符的后面都要判断,那JavaScript也不用run了,运行时间会慢的让你抓狂。
现在我们知道JavaScript是在换行处补充分号的,但是,用书中的话来说并不是在所有换行处都补填分号:只有在缺少了分号就无法正常解析代码的时候,JavaScript才会填补分号
,这条规则比较有意思,也就是说,JavaScript解析器很懒,能不补就不补,比如说:
var y = x + f(a + b).toString()
作者写这段代码的意思可能是这样的:
var y = x + f;(a + b).toString();
但是会被解释成这样:
var y = x + f(a + b).toString
JavaScript解析器很懒,但是也有例外,可能这几个是他比较中意的小姑娘,所以见了她们就要勤勤快快的,break
、continue
、return
、++
、--
,也就是说,这几个和后面(前面)的表达式之间不能换行,否则会被解释成两个语句。比如:
returntrue
会被解释成
return;true
或者
x++y
会被解释成
x;++y;
所以不用分号的时候要注意呀
- JavaScript编程-可选的分号
- JavaScript可选的分号
- Javascript——可选的分号
- 【JavaScipt】可选的分号
- JavaScript速记1 —— 可选的分号
- JS学习第四天----可选的分号
- JavaScript权威指南——从笨鸟到菜鸟(四) 语法结构(下)— 可选的分号
- JavaScript 语句分号的必要性
- JavaScript关于分号的问题
- Javascript中行末的分号
- JavaScript使用分号的三种情况
- 浅谈:JavaScript中分号的省略规则
- 关于JavaScript语句后面的分号
- JavaScript:函数的可选参数
- 关于javascript中的分号
- JavaScript规范之分号
- JavaScript 自动插入分号
- javascript分号存在意义
- Flume Source 实例
- (1)spring
- java 自我知识总结(六) 栈 堆 队列
- jQuery无缝轮播
- C++程序调包含TensorFlow代码的Python脚本出错问题的解决方案
- JavaScript编程-可选的分号
- HDOJ 1491 Octorber 21st
- PHPqrcode 生成二维码
- s数组与字符串的相互转换方法
- GBDT 学习
- redis 快照 RDB和AOF
- OBIEE12c usage tracking
- Unity运用Gpu来处理计算和逻辑,加快程序速度
- SpringBoot干货系列(一)