假设有这样一个计算var g = “” || null && 3 || 4,那么g应该等于多少呢?
1.将需要判断的分支转化为Boolean类型
1.非0整数,转化为true
2.非空字符串,返回true
3.对象,返回true
4.其他返回false
5.据我所知,只有0,'',null为false其他都为true
2.执行逻辑运算
几乎所有语言中||和&&都遵循“短路”原理,
"||“运算寻找到第一个为true的分支并且返回它,没有则返回最后分支,
a true,b true, =>return a;
a true,b false =>return a;
a false,b true =>return b;
a false,b false =>return b;
“&&“运算寻找到第一个为false的分支并且返回它,没有则返回最后分支。
a true,b true, =>return b;
a true,b false =>return b;
a false,b true =>return a;
a false,b false =>return a;
“&&“运算的优先级高于"||"运算
3.计算
第一步执行null && 3 = null,
第二步执行"" || null = null,
第三步执行null || 4 = 4.