前一阵子猛然想到一个问题,JS有分号自动补全(ASI)机制,在写JS时我是习惯性在语句后面加上分号,在块语句后面不加分号。那么如果没有加分号的话,在什么情况下会出现问题?在JS语句后到底是应该加分号还是不加分号?
面对这个问题,我来了兴趣。于是在网上查了一些资料。关于加不加分号的问题,知乎上一些回答这个问题的大佬普遍意见是,喜欢就好。嗯,很直接。
关于不加分号容易产生问题的地方,我在看了多个地方的贴子总结了一下,基本就三个地方出现问题比较多:
1)如果下一行的第一个token是 ( , [ , / , + , - 这五个字符之一的话, Javascript 将不会自动在上一行句尾加上分号。所以,当下一行的第一个token是以上字符时,应当在上一行或者行首加上分号
2)continue、return、break、throw后自动插入分号。所以当 return 出一个值,千万不要将那个值与 return 不在同一行,不然返回的结果是 undefined 而不是你期望的值。
3)++ , -- 后缀表达式作为新行开始,会在行首自动插入分号,
关于我自己每回没有在块语句后面没有加分号,对于我这个强迫症来说是不是不严谨的问题,我也在一篇贴子中找到了答案, 那就是 {...} 属于块语句,而按照定义块语句是不需要分号结尾的,不管是不是在一行 , 嗯,我果然没有错。
看了那么多贴子后,我感觉还是在语句后面加分号比较好,毕竟虽然麻烦一点,但是看得舒服(个人感觉),而且可以避免一些不必要的问题。
最近我正在跟我的团队伙伴讨论如何去处理这种需要根据不同的值去处理不同的情况的方法,通常对于这种情况下,人们喜欢使用switch语句或者使用很多if搭配else if条件。在本文中我将重点介绍第三种方式(我更为喜欢的方法),即使用对象进行快速地查找。
在JavaScript里面,一般我们想让程序在function里面执行到一半时,经过判断或者完成某种操作后停止执行后面的代码,会用return结束掉function。可以在while中间加入多个if()break作为断点,控制逻辑的流程。
相信我们程序员平时写代码用的最多的逻辑就是if语句了吧,可你知道他的原理是什么吗,其实这跟Boolean()这个方法有关,此方法为自动执行(在需要判定Boolean的语句中中自动执行)
在JavaScript中,创建对象的方式包括两种:对象字面量和使用new表达式。对象字面量是一种灵活方便的书写方式,例如:new表达式是配合构造函数使用的:
在 HTML 中,JavaScript 语句是由 web 浏览器执行的指令。JavaScript 语句可以用花括号({...})组合在代码块中。JavaScript 语句常常通过某个关键词来标识需要执行的 JavaScript 动作。
简单逻辑常用判断,if..else if...else... 中的条件体应该总是按照从最大概率到最小概率排列,以保证理论速度最快,switch/case 条件数量较大的话,就建议选用
除了if ... else之外,JavaScript还有一个称为switch语句的功能。 switch是一种条件语句,它将针对多种可能的情况评估表达式,并根据匹配的情况执行一个或多个代码块。 switch语句与包含许多其他if块的条件语句密切相关
JavaScript return 语句,表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。
表达式是由运算符构成,并运算产生结果的语法结构。一个表达式会产生一个值,它可以放在任何需要一个值的地方,比如,作为一个函数调用的参数。
没有 switch 就没有复杂的代码块,switch很方便:给定一个表达式,我们可以检查它是否与一堆case子句中的其他表达式匹配。 考虑以下示例:
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!