js中如果省略分号那么它是如何运行的
2016-02-06 19:41
423 查看
在javascript工作中,我们几乎不会去省略分号;为了不必要的麻烦以及代码的规范,那么如果我们省略;会发生呢?预知详情请听下回分解。
看代码!
片段一:
片段二:
看到了什么?
你没有猜错,你可以这样去理解,当我们按回车就是给它加了一个空格,比如上面的片段一:var a = 8,但是它发现后面的console.log(a)是一个独立的语句所以js默认在var a = 8的后面加了一个分号;最后就变成了
var a = 8;console.log(a);
当然上面那只是一种情况,片段二的情况是这样的:var a;b=8;为什么会这样呢,因为js发现如果加的是空格的话就会出现错误 var a b = 8;是运行不了的,所以js就给它加了个分号,简单的来说如果前面的能够和后面的拼接上那么它加的就是空格,如果拼接不上就加分号,这个第二种情况。当然这也只是我的理解,如果有理解错误请告知。
另外的还有几种特殊的情况
如果是这种情况,它的运行结果是a;++b;
至于为什么因为本人技术有限,暂时也不清楚。
还有就是另外3个比较特殊的
return,continue,break;
如果有换行后面加的是分号
它解析成了return;true;
看代码!
片段一:
1 var a 2 = 3 8 4 console.log(a); >>8
片段二:
var a b = 8 console.log(a); >>undefined console.log(b); >>8 console.log(ab); >>Uncaught ReferenceError: ab is not defined
看到了什么?
你没有猜错,你可以这样去理解,当我们按回车就是给它加了一个空格,比如上面的片段一:var a = 8,但是它发现后面的console.log(a)是一个独立的语句所以js默认在var a = 8的后面加了一个分号;最后就变成了
var a = 8;console.log(a);
当然上面那只是一种情况,片段二的情况是这样的:var a;b=8;为什么会这样呢,因为js发现如果加的是空格的话就会出现错误 var a b = 8;是运行不了的,所以js就给它加了个分号,简单的来说如果前面的能够和后面的拼接上那么它加的就是空格,如果拼接不上就加分号,这个第二种情况。当然这也只是我的理解,如果有理解错误请告知。
另外的还有几种特殊的情况
1 var a = 2; 2 var b = 3; 3 a 4 ++ 5 b 6 console.log(a); >>2 7 console.log(b); >>4
如果是这种情况,它的运行结果是a;++b;
至于为什么因为本人技术有限,暂时也不清楚。
还有就是另外3个比较特殊的
return,continue,break;
如果有换行后面加的是分号
return true;
它解析成了return;true;
相关文章推荐
- 让JS写的更接近OOP
- JSON解析
- js中的preventDefault与stopPropagation详解
- HYSBZ/BZOJ 1013 [JSOI2008] 球形空间产生器sphere - 高斯约当消元
- javascript面向对象编程
- ember.js的render过程分析
- ember.js提供的基础服务介绍
- 深入解读ember.js的对象体系
- 介绍javascript MVC框架:ember框架的基本概念
- 201602061615_《Javascript方法之map();filter();——以前一直很混》
- 深入浅析JavaScript面向对象和原型函数
- 基于JavaScript实现图片点击弹出窗口而不是保存
- javascript+css3 实现动态按钮菜单特效
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
- JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
- JavaScript高级程序设计学习笔记第五章--引用类型(函数部分)
- JavaScript仿商城实现图片广告轮播实例代码
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
- JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)
- js 枚举 及枚举检索