javascript - js中给变量赋值的表达式是真是假啊
怪我咯
怪我咯 2017-04-11 10:50:01
[JavaScript讨论组]

var handles = this._handles || (this._handles = {})
在这个表达式中this._handles这个变量何时为真,何时为假啊this._handles = {}还有这个复制表达式到底是真是假啊,这个语句到底想表达什么?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(5)
PHP中文网

这句的意思是:
1,声明变量handles,它先取this._handles的值
2,如果this._handles是假值(不存在),则将this._handles设为一个{}
3,再将this._handles赋给变量

其实就是先判断this._handles是否有值,没有值就赋值,最后赋给变量

你先看=右边的部分,思路就清晰了

迷茫

如果this._handles为真,则取this._handles的值,否则则给this._handles赋值为空的Object{}

怪我咯

这个表达式的意思是:

this._handlesnull或者undefined或者0或者false或者空字符串的时候,
this._handles赋值为{},并且将{}也赋值给var handles

this._handles不为null并且undefined并且0并且false并且空字符串的时候,
直接把this_handles的值赋值给var handles

伊谢尔伦

this._handles 为假值(0, undefind, null, false) 时,为 false,反之为 true

|| 的作用是,如果前面的表达式为真就取前面的值,否则计算后面的。

(表达式)的作用是执行其中的表达式并返回值,如果括号中有多个表达式(如:(a=1,b=2))就返回最后一个表达式的值。

整个表达式的作用是:如果this._handles为真值,就把它的值赋给handles;如果为假值,就初始化为一个对象,并把值赋值handles

伊谢尔伦
var handles;
if (this._handles) {
    handles = this._handles;
} else {
    this._handles = {};
    handles = this._handles;
}

就是上面这段代码的意思,写成一行要简洁一点。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号