请问zepto这句话怎么解读?
window.Zepto = Zepto;
'$' in window || (window.$ = Zepto);
|| 这个是什么意思?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
window.Zepto = Zepto;
'$' in window || (window.$ = Zepto);
|| 这个是什么意思?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
如果在一个逻辑表达式中遇到一个非布尔类型的操作数,那么该操作数的值就会成为该表达式所返回的结果
在题主例子中,可以如下分析:
'$' in window
是判断window
是否有$
属性,in
返回ture
或false
true
,||
操作符会偷懒,不会计算后面的window.$ = Zepto
true
false
,会继续进行计算,这时候就会给window
创建一个$
属性,并且引用Zepto
Zepto
的引用(Zepto
是一个对象)Error
其他类似例子如
或
,这一句本身是个会返回true或false的表达式A || B
如果表达式A为真则返回真,如果A为假则返回B的返回值。从应用上来说,一般B是一条希望当A为假时执行的语句。这里判断$有没有在window里定义,没有就给$赋上值
第一句是将封装好后的zepto暴露到全局,这样zepto才能在全局作用域被调用。
第二句是如果window没有有$这个属性,那么将$赋值window.$,用途是防止库冲突。
这里的逻辑运算符的作用是根据左侧表达式的布尔值来决定要不要接着执行右边的表达式。
或者,逻辑运算符
短路运算符 第一个为真 不执行下一表达式 第一个为假 执行下面表示
这个叫做短路表达式,是编译器为了优化编译过程采取的行为。如 false && (i++); 由于逻辑与只要一项为假,结果就为假,所以i++不会执行。如 true || (i++),也是同样的道理