javascript - 请问这句js代码是什么意思啊
黄舟
黄舟 2017-04-11 12:00:46
[JavaScript讨论组]
var o={};
if(o.x) o.x+=1;  

看属性是否存在方法的时候,看到这么一句,不知道后 o.x+=1 是什么意思啊

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(7)
迷茫

因为if语句进行判断后只有一个操作,所以编码者就省略花括号了,为了避免可能的错误,最好不要图省事这样省略。

if(o.x) o.x+=1; 

相当于

if(Boolean(o.x)){
    o.x = o.x + 1;
}

如果这段代码是想判断对象 o 是否存在属性 x 的话,这样写是不太好的,例如下面这种情况,o存在未定义x属性,if视作不存在x:

var o={x:undefined};
if(o.x) o.x=1;
alert(o.x);    //undefined

你何以在 if 中这样用'x' in o;或者这样用o.hasOwnProperty('x')

如果你想对o.x的真值假值分别做点什么:

var o={x:false};
if('x' in o){
    if(o.x){
        //真值
    }else{
        //假值,x可能为false,undefined,null,'',+0,-0,NaN
    }
}
PHPz

当o.x存在时就将其加1;
o.x+=1相当于o.x = o.x+1;
例如:

var o ={
   x:3
 }
if(o.x)o.x+=1;
console.log(o.x) // 4
大家讲道理

o.x+1的意思

怪我咯

如果o中存在x属性,就把o.x加一再复制给o.x

大家讲道理

o.x = o.x + 1 的简写

巴扎黑

a+=b 即
a=a+b

ringa_lee

o.x += 1 ======> o.x = o.x + 1

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

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