javascript是一种弱类型的语言,任何数据类型都能转换成boolean类型,转换规则如下:
数据类型 转换为boolean后的值
NAN FALSE
null FALSE
undefined FALSE
Object TRUE
Function TRUE
0 FALSE
非零的数字 TRUE
""(空字符串) FALSE
非空字符串 TRUE
知道这个转换规则,主要是为了学习逻辑运算符 && 和 ||。在Java中,逻辑运算符仅仅适用于boolean类型,返回结果也一定是boolean类型。但是在javascript中逻辑运算符可以返回任何类型的数据,不仅仅是true和false。
很多JS框架如JQuery中,都有如下形式的代码,这种写法很简洁,但前提是你要明白这种写法到底返回什么。
var target = arguments[0] || {}
&&和||的运算规则如下:
a && b : 将a, b转换为Boolean类型, 再执行逻辑与, 如果结果是true返回b, false返回a
a || b : 将a, b转换为Boolean类型, 再执行逻辑或, 如果结果是true返回a, false返回b