javascript - 请问这句js代码是什么意思啊

查看:101
本文介绍了javascript - 请问这句js代码是什么意思啊的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var o={};
if(o.x) 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')

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

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

这篇关于javascript - 请问这句js代码是什么意思啊的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆