扫码关注官方订阅号
window.Zepto = Zepto; '$' in window || (window.$ = Zepto); || 这个是什么意思?
人生最曼妙的风景,竟是内心的淡定与从容!
如果在一个逻辑表达式中遇到一个非布尔类型的操作数,那么该操作数的值就会成为该表达式所返回的结果
在题主例子中,可以如下分析:
'$' in window
window
$
in
ture
false
true
||
window.$ = Zepto
Zepto
Error
其他类似例子如
var example1 = true && 'Hello World';//'Hello World' var example2 = (function(){return 1;},function(){return 2;})();//2
或,这一句本身是个会返回true或false的表达式
或
A || B如果表达式A为真则返回真,如果A为假则返回B的返回值。
A || B
从应用上来说,一般B是一条希望当A为假时执行的语句。这里判断$有没有在window里定义,没有就给$赋上值
第一句是将封装好后的zepto暴露到全局,这样zepto才能在全局作用域被调用。 第二句是如果window没有有$这个属性,那么将$赋值window.$,用途是防止库冲突。 这里的逻辑运算符的作用是根据左侧表达式的布尔值来决定要不要接着执行右边的表达式。
或者,逻辑运算符
短路运算符 第一个为真 不执行下一表达式 第一个为假 执行下面表示
这个叫做短路表达式,是编译器为了优化编译过程采取的行为。如 false && (i++); 由于逻辑与只要一项为假,结果就为假,所以i++不会执行。如 true || (i++),也是同样的道理
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
如果在一个逻辑表达式中遇到一个非布尔类型的操作数,那么该操作数的值就会成为该表达式所返回的结果
在题主例子中,可以如下分析:
'$' in window是判断window是否有$属性,in返回ture或falsetrue,||操作符会偷懒,不会计算后面的window.$ = Zeptotruefalse,会继续进行计算,这时候就会给window创建一个$属性,并且引用ZeptoZepto的引用(Zepto是一个对象)Error其他类似例子如
或,这一句本身是个会返回true或false的表达式A || B如果表达式A为真则返回真,如果A为假则返回B的返回值。从应用上来说,一般B是一条希望当A为假时执行的语句。这里判断$有没有在window里定义,没有就给$赋上值
第一句是将封装好后的zepto暴露到全局,这样zepto才能在全局作用域被调用。
第二句是如果window没有有$这个属性,那么将$赋值window.$,用途是防止库冲突。
这里的逻辑运算符的作用是根据左侧表达式的布尔值来决定要不要接着执行右边的表达式。
或者,逻辑运算符
短路运算符 第一个为真 不执行下一表达式 第一个为假 执行下面表示
这个叫做短路表达式,是编译器为了优化编译过程采取的行为。如 false && (i++); 由于逻辑与只要一项为假,结果就为假,所以i++不会执行。如 true || (i++),也是同样的道理