JavaScript语句可以不以;结尾的烦恼
2005-06-30 22:25
260 查看
JavaScript做为一个灵活的脚本语言,其成功是我们显而易见的。不过对于JavaScript语句可以不以";"结尾这点,我对其一直都耿耿于怀if ( results == 'AdvancedTimeSelect' )
{
this.DoAdvancedTimeSelect();
// . . .
}
else ( results && results.length > 0 )
{
// . . .
}
// . . .
这是我在把"if"-"else"语句结构变成"if"-"else if"-"else"结构时,不小心写成的代码(漏加了一个if
)。如果是在C#中等强制要求";"作语句结尾的语言中,这样语句就是一个明显的语法错误。
可是上面这段代码在JavaScript中却是没有任何语法问题的,同时也可以"正常的"运行。只是这个正常带来的副作用太让人郁闷了,当这段代码处于完整的一个功能模块中时,给debug带来无尽的混乱。虽然另外一个重要的原因也是自己的眼神不好
,才写成这样,不过我还是要对JavaScript不强制要求语句以";"结尾的规定耿耿于怀!
上面代码的结果是如果第一个if条件成立,那么两个()和两个{}内的代码都执行。如果不成立,就执行else以后的代码,包括()和{}括起来的。因为JavaScript把( results && results.length > 0 )当成一个语句作为了else的分支
,然后{}就是一个独立的语句集合了。
{
this.DoAdvancedTimeSelect();
// . . .
}
else ( results && results.length > 0 )
{
// . . .
}
// . . .
这是我在把"if"-"else"语句结构变成"if"-"else if"-"else"结构时,不小心写成的代码(漏加了一个if
)。如果是在C#中等强制要求";"作语句结尾的语言中,这样语句就是一个明显的语法错误。
可是上面这段代码在JavaScript中却是没有任何语法问题的,同时也可以"正常的"运行。只是这个正常带来的副作用太让人郁闷了,当这段代码处于完整的一个功能模块中时,给debug带来无尽的混乱。虽然另外一个重要的原因也是自己的眼神不好
,才写成这样,不过我还是要对JavaScript不强制要求语句以";"结尾的规定耿耿于怀!
上面代码的结果是如果第一个if条件成立,那么两个()和两个{}内的代码都执行。如果不成立,就执行else以后的代码,包括()和{}括起来的。因为JavaScript把( results && results.length > 0 )当成一个语句作为了else的分支
,然后{}就是一个独立的语句集合了。
相关文章推荐
- JavaScript语句可以不以;结尾的烦恼
- JavaScript语句可以不以;结尾的烦恼
- JavaScript的语句可以不用分号结尾么?
- [JavaScript]可以用在.NET中的JavaScript语句
- javascript语句可以通过使用8进制表示执行
- JavaScript语句中再包括JavaScript语句串也能同样执行了.可以解决AJAX返回后的数据检查问题
- 100个直接可以拿来用的JavaScript实用功能代码片段
- JavaScript笔记(可以被钉住的层)
- MongoDB的命令行语句,也可以引用插件LINQ的形式应用
- javascript学习(2)——[基础回顾]运算符、表达式、流程控制语句
- mybatis一次可以执行多个sql语句
- Python Webdrive执行Javascript语句的数字与设定的不符
- 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等,需要的朋友可以参考下。
- 【JavaScript 】switch 语句
- oracle 是user_tables里面可以查找到一个表,而用DESC或者insert语句插入时就会报不存在视图。
- Oracle中使用pl/sql,查询结果可以直接修改sql语句-for update
- Javascript 的常用语句
- javascript中的if语句使用介绍
- javascript中的if语句
- javascript实现可以拖动的层示例(层拖动,兼容IE/FF)