javascript中if条件

1.布尔变量 true/false

2.数字非0、非NaN/0、NaN

3.对象非null/null、nudefined

4.字符串非空串/空串

if(!!str){

  //do something

}

数字的非空判断要考虑使用isNaN(),因为NaN和任何数据类型都不相等,包括它自己。

if(isNaN(a)){

  console.log(a is NaN);

}

5.if语句的简写:

a.三元运算符:

if (foo) bar(); else baz(); ==> foo?bar():baz();

if (!foo) bar(); else baz(); ==> foo?baz():bar();

if (foo) return bar(); else return baz(); ==> return foo?bar():baz();

b.使用&& 和 || 运算符

if (foo) bar(); ==> foo&&bar();

if (!foo) bar(); ==> foo||bar();

c.省略大括号【没理解】

if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}

function getAttr(el, attrName){

var attr = {'for':'htmlFor', 'class':'className'}[attrName] || attrName;

};

d.

if(!!str){

//强制转换成布尔类型来判断

}

注:不仅要找到解决问题的办法,还有用心找到更简洁的方法。