js 三元运算符以及|| 和 && 测试

var  a = '0';
var  b = a ? 'me':'hi';

console.log(b);
//false 有: undefined , 0, '', false,null
//true  有:'0',[],{},' '

var  a = ' ';
var  b = a || '为假的';
console.log(b);
//为假的,有: undefined , 0, '', false,null
//原样输出的  有:'0',[],{},' '

var  a = {};
var  b = a &&  '为真的';
console.log(b);
//原样输出的,有: undefined , 0, '', false,null
//为真的,  有:'0',[],{},' '

以上三个的测试结果都说明了:undefined , 0 ,'',false,null 为假; '0',' ',[],{}等为真。

js类型测试:
var arr = ['dd','fdf'];
var obj = {};
console.log(Object.prototype.toString.apply(arr));
console.log(Object.prototype.toString.apply(obj));
var s= '';
console.log(Object.prototype.toString.apply(0));
console.log(Object.prototype.toString.apply(s));
console.log(Object.prototype.toString.apply(false));
console.log(Object.prototype.toString.apply(undefined));
输出为:
[object Array]
[object Object]
[object Number]
[object String]
[object Boolean]
[object Undefined]

原文地址:https://www.cnblogs.com/andydao/p/3627286.html