IT行业均薪领跑7大传统行业
去年各行业月收入对比
今年IT各技术方向行业平均薪资
IT培训网面向所有课程学员提供先就业后付款学习方案,保证学员稳定就业,可谓0学费!免除学习压力。
正文:
JavaScript 代码加不加分号有什么区别,怎么样学好JavaScript代码,容易学习吗?
这个问题在很多文章找那个都讨论过,在 ESlint 规范中也因为加不加分号而分为两大阵营,到于加不加分号,关键是需要了解分号对于 JavaScript 的影响,开始之前可以先看看这道面试题:
请问这段代码是否能够正常运行?
。
。
。
。
。
如果运行这段代码,会出现下面的错误:
什么鬼!1 is not a function ?我们没有打算运行数字 1,为什么说数字 1 不是函数,这种错误是很难找到原因的,经常会在出问题的代码行上打转。这个错误必然是上吗的代码在运行时被看作是同一行,其概念如下:
因此立即函数的 () 被附加在 1 上,这是一个调用函数的语法,所以会产生 1 is not a function 的错误,想要避免这个错误就需要使用分号:
ASI 自动加入分号
ASI是 “Automatic Semicolon Insertion” 的缩写,在运行时会往有些折行的代码中自动插入分号,这个机制可以使部分代码在没有加入分号时也能正常运行,比如下面的例子:
由于代码中的 ++ 属于一元表达式,它只能在表达式的左边或右边放置变量,如果没有 ASI 的机制,代码会被转换为 var b = 1 ++ b 这样的错误语句。不过好在有 ASI,在实际运行时会自动被加入分号,也就不会出现上面的错误。
return 与分号的关系
再来看一个例子,下面的代码在 return 的后面空一行后再写要返回的值,那么问运行结果是什么呢?
这段程序代码因为 ASI 的修正,return 的后面会被加上一个分号,所以 return 与预期返回的值被分开了,结果 return 的内容为空值,最终的结果也只能是 undefined 。
到底应该怎样处理分号
本来 ASI 是出于一片好心,用来修正没有加入分号的代码片段,但偏偏在有的地方并没有发挥它的作用(例如本文一开始所介绍的立即函数),导致代码出现了错误;甚至有些代码不会出错,但会使你的代码执行结果和预期相差万里。
解决 ASI 问题的方式如下:
不会被自动加入分号的规则
下面时各种不会自动加入分号的规则:
1.新行的代码是从 (、[、/ 字符开始的,这类情况一般会直接出现 Uncaught TypeError 从而导致代码无法运行。
2.行以 +,-,*,% 开始,这类情况大多会影响运算结果,所以应该合并为一行。
3.新行以 , 或 . 开始,这种用法经常会出现,主要是为了避免代码过长而加入的分隔,这种情况并不会影响运行,如果善用的话会使代码更容易阅读。
如果遇到需要加入分号的情况,除了可以在语句的末尾加入分号外,也可以把分号加在“不会自动加入分号”的最前方,例如 () 本身不会自动加入分号,在有这种需求时可以将 ; 加到前面(ESLint Standard JS 规范就用这个方法避免错误)。
总结
有的人认为不加分号可以让代码看起来更干净和精简,而且在大部分情况下并不会出现错误,所以很多人在敲代码时不会加分号。
不过我更倾向于更严格的规范,也许是因为我是从后端转到前端的,习惯了。至于到底怎么选,只要搞清楚运行上的限制,不管哪种风格都是挺不错的,只要你喜欢就好。
姓名: 耿*琪
学历: 本科
专业: 计算机科学与技术
薪资: 16000
入职单位:非凡**科技
数据来自学员真实就业
拒绝以偏概全
姓名 | 学历 | 入职单位 | 专业 | 薪水 | 福利 |
耿*琪 | 本科 | 非凡**科技 | 计算机科学与技术 | 16000 | 五险一金 |
王*腾 | 本科 | 家*网 | 其他 | 17000 | 五险一金 |
霍*杰 | 本科 | 北京**科技有限公司 | 信息工程学院 | 17000 | 五险一金 |
胡*宇 | 本科 | 理*家 | 物理与电子学院 | 16000 | 五险一金 |
黄*正 | 本科 | 北京***人工智能科技 | 其他 | 16000 | 五险一金 |
张* | 本科 | 北京**互动科技 | 机械制造及自动化 | 15000 | 五险一金 |
佟* | 本科 | 金**团 | 理学院 | 16000 | 五险一金 |
刘*东 | 专科 | 保密 | 信息工程系 | 12000 | 五险一金 |
左*飞 | 专科 | 北京**数据 | 计算机专业 | 13000 | 五险一金 |
李*申 | 本科 | 汇**宇 | 计算机专业 | 12000 | 五险一金 |
李* | 本科 | 北京**科技 | 其他 | 13000 | 五险一金+14薪 |
倪* | 本科 | 保密 | 理学与信息科学学院 | 12000 | 五险一金 |
宋*飞 | 本科 | 腾信**科技 | 城市建设 | 13500 | 五险一金 |
段*阳 | 本科 | 某医疗行业 | 经济与管理工程系 | 10000 | 五险一金 |
文*盛 | 本科 | 保密 | 计算机专业 | 12000 | 五险一金 |
陈*华 | 专科 | 北京**有限公司 | 计算机软件工程系 | 12000 | 五险一金 |
李*腾 | 本科 | 保密 | 信息科学技术学院 | 10000 | 五险一金 |
郭*嘉 | 本科 | 保密 | 信息工程学院 | 13000 | 五险一金 |
刘*强 | 本科 | 瑞**技 | 计算机与信息技术学院 | 13000 | 五险一金 |
房*飞 | 本科 | 保密 | 外国语学院 | 13000 | 五险一金 |
吕*文 | 专科 | 和*贷 | 机械工程系 | 12000 | 五险一金 |
樊* | 本科 | 腾信**科技 | 河北北方学院 | 14000 | 五险一金 |
陈*雨 | 专科 | 瑞**技 | 测绘学院 | 12000 | 五险一金 |
孙* | 专科 | 保密 | 商贸系 | 10000 | 五险一金 |
怎么样学好JavaScript代码
在乎每一位学员的职业梦想,坚持教育初心
20000名 年培养学员 |
5000名 同期在校学员 |
16城 培训中心遍布全国 |
20个 开设培训中心 |
500所 合作院校 |
10000家 合作企业 |
12门 目前开设课程 |
200位 讲师团队 |
· 就业保障体系覆盖全国,
· 10000多家合作企业定期招聘,
· 学员就业可随心选择。
· 全国各校区讲师统一管理,招聘标准一致,
· 课程大纲全范围内定期升级更新,
· 保障学员学习质量