首页 > javascript 怪异语法求解

javascript 怪异语法求解


我猜你是想问短路求值吧。

a()&&b();

这句话从表面上理解,纯粹就是两个函数返回值的“与”运算而已。
函数没有返回值的时候,默认返回undefined,而undefined会被认为是false
在“与”运算中,根据运算规则,从左往右一旦遇到false,那么整个式子的求值就会结束,直接返回false

所以回到你这个例子中,函数a首先运行,返回undefined,求值结束,函数b不会运行。


逻辑与 (&&)
expr1 && expr2 如果expr1 能转换成false则返回expr1,否则返回expr2. 因此, 在Boolean环境中使用时, 两个操作结果都为true时返回true,否则返回false.

短路计算

由于逻辑表达式的运算的顺序是从左到右,也可以用以下规则进行"短路"计算:

  • false && (anything) 短路计算的结果为false.

  • true || (anything) 短路计算的结果为 true.

该规则确保这些计算的准确性. 注意如果上述表达式中的 anything 部分不能被计算的话, 两边都不会生效.还需要注意的是,上述表达式中的 anything 部分是任意的单个逻辑表达式(小括号中).

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Short-Circuit_Evaluation


哪里怪异了?

【热门文章】
【热门文章】