javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以它是一个十分容易让人模糊的东西,在一般情况下,一个换行就会产生一个分号,但实际情况却不然,也就是说在javascript中换行可能产生分号,也可能不产生,是否自动插入分号,主要看上下行。所以即使是经验丰富的程序员,有时候也会头大。
在 ECMAScript 中对分号自动插入规则也有相应的解释:空语句,变量语句,表达式语句,do-while 语句,continue 语句,break 语句,return 语句,以及 throw 语句,这些确定的ECMAScript语句必须以分号结束。这些分号可以总是明确地出现在源代码文本中。为方便起见,在特定的情况下,源代码文本中的这些分号可以被省略。也就是说这些语句的结尾是不需要硬性的输入分号结尾,javascript会自动插入语句结束处。
想了解详细的ECMAScript分号自动插入规则可以查看以下链接:
实践出真理,看一下下面这些例子,就明白,分号自动插入不是那么好让人捉摸的。稍微不注意就会让你头大。
return引起的血案
function test(){
var a = 1;
var b = 2;
return //会自动插入分号
(
a+b
)
};
alert(test());
一个返回a+b值的函数,初看没任何问题,但运行alert的结果却是undefined。根据分号的自动插入规则,return 语句后面如果有换行就会自动插入分号,没有返回值也就比较好理解了。如果需要换行的话,可以这样:
function test(){
var a = 1;
var b = 2;
return (
a+b
)
};
alert(test());
两个闭包引起的血案
(function (){
var a;
})() //不会自动插入分号
(function (){
var b;
})()
很诡异,解释不了,谁能告诉我~
for语句头中的两个分号,不自动插入分号
for( var a=1,b=10 //不会自动插入分号
a<b //不会自动插入分号
a++
)
{}
ECMAScript对以上也有解释:将分号解释为空语句和在for语句中的()中不自动插入分号是特例,是不属于自动插入规则管辖的。
javascript虽然是弱类型语言,ECMAScript的分号自动插入规则也让人难以理解透彻。但养成良好的代码书写习惯,手动插入分号,养成习惯,就能避免这些问题,同时会在程序调试,代码的阅读上对自己对他人都有不小的帮助。
同时ECMAScript还给程序员一些忠告:
- ++ 或 — 应和其操作数出现在同一行。
- return 或 throw 语句中的表达式应和return 或 throw 出现在同一行。
- break 或 continue 语句中的标签应和break 或 continue 出现在同一行。
本文链接:http://www.blueidea.com/tech/web/2009/7261.asp
浅谈javascript的分号 - 网页制作 - 蓝色理想
分享到:
相关推荐
网页特效代码 - 网页制作特效,js特效,网页特效代码,JS教程,javascript
JavaScript在网页制作中的应用主要体现在增强网页的交互性和动态效果,以及实现客户端的数据验证,从而减轻服务器负担。JavaScript是一种轻量级的脚本语言,它不是Java的子集,但与Java有着相似的名字和语法。...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
期末大作业-风俗文化宣传网页设计-用HTML+CSS+Javascript网页制作 期末大作业-风俗文化宣传网页设计-用HTML+CSS+Javascript网页制作 期末大作业-风俗文化宣传网页设计-用HTML+CSS+Javascript网页制作 期末大作业-...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
《HTML+CSS+JavaScript网页制作案例教程(第2版)》是一本全面涵盖网页制作基础知识与实践技巧的教材。此教学大纲旨在引导学生系统学习网页设计的核心技术,通过理论讲解和实际案例,使学习者掌握网页开发的基本流程...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
精通JavaScript教程--动态网页实例培训和详细知识点讲解
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
《网页设计与制作项目教程(HTML+CSS+JavaScript)》是一部综合性的教程,旨在帮助学习者深入理解和掌握网页设计的核心技术。本教程结合了HTML、CSS和JavaScript这三种关键技术,它们是构建现代网页的基石。 HTML...
根据提供的文件信息,我们可以推断出这是一篇关于获取《深入浅出JavaScript》电子书的信息。下面我们将基于这个前提,围绕“深入浅出JavaScript”这一主题进行知识点的展开。 ### 深入浅出JavaScript概览 #### 一...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...
【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、JavaScript前端网页项目源码【Web网页设计制作-毕业设计期末大作业】HTML、CSS、...