扫码关注官方订阅号
var o={}; if(o.x) o.x+=1;
看属性是否存在方法的时候,看到这么一句,不知道后 o.x+=1 是什么意思啊
o.x+=1
人生最曼妙的风景,竟是内心的淡定与从容!
因为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')
'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 } }
当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 = o.x + 1 的简写
a+=b 即a=a+b
o.x += 1 ======> o.x = o.x + 1
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
因为if语句进行判断后只有一个操作,所以编码者就省略花括号了,为了避免可能的错误,最好不要图省事这样省略。
相当于
如果这段代码是想判断对象 o 是否存在属性 x 的话,这样写是不太好的,例如下面这种情况,o存在未定义x属性,if视作不存在x:
你何以在 if 中这样用
'x' in o;或者这样用o.hasOwnProperty('x')如果你想对o.x的真值假值分别做点什么:
当o.x存在时就将其加1;
o.x+=1相当于o.x = o.x+1;
例如:
把
o.x+1的意思如果o中存在x属性,就把o.x加一再复制给o.x
o.x = o.x + 1 的简写
a+=b 即
a=a+b
o.x += 1 ======> o.x = o.x + 1