🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
在一个连续的逻辑操作中,操作结果在最后一个操作完成之前就已经明确了的话,那么该操作往往就不必继续执行了,因为这不会对最终结果产生任何结果。 比如: ``` >>> true || false || true || false || true; true ``` 这种方式可以提高js的执行效率。 还比如: ``` >>> var b = 5; undefined >>> true || (b = 6); true >>> b; 5 >>> true && (b = 6); 6 >>> b; 6 ``` 发现了没,如果逻辑表达式中遇到了一个非布尔值类型的操作数,那么该操作数的值就会成为改表达式所返回的结果。 在实际环境中尽量不要这么写,不过在某种情况下,可以用这种方法来偷懒,比如说判断某个变量是否被定义了,如果没有被定义,那么初始化为10,如果已经被定义了那么保留原有值。 ``` >>> var mynumber = mynumber || 10; undefined ``` 这种做法简单优雅。 但是如果之前的值为0,那么这个代码会存在问题。