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

2016-02-19 10:28 5 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的JavaScript语句可以不以;结尾的烦恼,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - Web开发 】

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的分支,然后{}就是一个独立的语句集合了。

来源:https://www.tulaoshi.com/n/20160219/1594760.html

延伸阅读
标签: Web开发
events=[];for(o in O=obj.currentStyle)events.push(o+'='+O[o])  这里输入代码内容 0 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
标签: Web开发
一、简化代码 采用更为简短的写法,不仅可以减少输入的字符数,还可以减少文件大小。大部分采用简单写法的代码,执行效率都有轻微提高。 1.1 简化常用对象定义:使用 var obj = {}; 代替 var obj = new Object(); 使用 var arr = []; 代替 var arr = new Array(); 1.2 精简if语句三元操作符可以有效精简只涉及赋值传值操作的if语句,比...
标签: PHP
  1、IF语句 IF语句是多数语言中的一个重要特点,它根据条件执行程序段。PHP的IF语句类似于 C: if (expr) statement 正如在表达式中所论述, expr 被计算为它的真值。如果 expr 为TRUE, PHP执行相应语句, 如果为FALSE 则忽略它。 如果$a 大于 $b,下例将显示 \'a is bigger than b\': if ($a $b) ...
标签: 怀孕
产妇吃什么可以防止脱发人们总认为产后体虚,需要进补,当出现脱发后更是要大补特补,其实这是一个不正确的观点。产后脱发主要是一个内分泌变化的过程,盲目进补,造成体内热量过剩,反而有害健康。此时可以多吃绿色蔬菜,因为绿色蔬菜中的碱性无机盐(钙、镁、钠、钾等)含量高,可中和体内不利于头发生长的酸性物质,并使之成为无毒性物质排出...
标签: 办公软件
有时,我们在编写公司文档时,需要在文件结尾处注上自己公司的联系方式。但每次都要手工输入非常麻烦,于是有不少朋友便想到将公司信息事先写好在一份TXT文件中,然后写完文档后再将TXT文件里的公司信息拷贝过来,虽然这样比以前的手工输入方便了一些,但相对来说还是比较麻烦。而另一种方法则是通过Word自带的“自动图文集”功能完成,但默...

经验教程

10

收藏

41
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部