JavaScript语句可以不以;结尾的烦恼

营销珀薇面膜

营销珀薇面膜

2016-02-19 10:28

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的JavaScript语句可以不以;结尾的烦恼,过去的都会过去,迎接崭新的开始,释放更美好的自己。
JavaScript做为一个灵活的脚本语言,其成功是我们显而易见的。不过对于JavaScript语句可以不以";"结尾这点,我对其一直都耿耿于怀!这个特性除了带来语句的混乱,且使其依赖于代码排版(换行)外,我没有发现任何的优点。难道是为了可以少敲一个";"?! 如果习惯了C#、C/C++等的强制";",会更加的觉得郁闷。

    同时这个特性对于JavaScript的debug来说,是灾难性的。下面这个语句是正确的吗?

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的分支,然后{}就是一个独立的语句集合了。
展开更多 50%)
分享

猜你喜欢

JavaScript语句可以不以;结尾的烦恼

Web开发
JavaScript语句可以不以;结尾的烦恼

JavaScript语句

Web开发
JavaScript语句

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JavaScript教程:JS的语句及语法

Web开发
JavaScript教程:JS的语句及语法

javascript用法:breakcontinue和return语句

Web开发
javascript用法:breakcontinue和return语句

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

javascript语句中的CDATA标签的意义

Web开发
javascript语句中的CDATA标签的意义

Javascript条件判断语句的小技巧

Web开发
Javascript条件判断语句的小技巧

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

晨曦微露 倾尽了温暖 - QQ图案分组

晨曦微露 倾尽了温暖 - QQ图案分组

区分JS中的undefined,null,"",0和false

区分JS中的undefined,null,"",0和false
下拉加载更多内容 ↓