js中什么看做false

js中什么看做false

在javascript中,有一些值会被视为false,这些值通常被称为“假值(falsy values)”。虽然它们不是布尔值真正意义上的false,但它们在条件语句判断中会被视为假false,因此了解这些假值非常重要。

下面是javascript中视为false的值:

布尔值 ,false:直接使用布尔字面量 false。

数字, 0:当变量的值为数字 0 时,会被判断为 false。

空字符串 '':当变量的值为空字符串时,会被判断为 false。

null:当变量的值为 null 时,会被判断为 false。

undefined:当变量定义,未被初始化时,则值为 undefined 时,会被判断为 false。

NaN(非数值):当变量的值为 NaN 时,会被判断为 false。

特殊情况:空对象空数组会被判断为true。因此,在判断变量是否为false,要分基本类型或者引用类型,然后分别判断。

判定空数组的方法

分析:所谓空数组,就是数组的长度等于0。所以我们的难点就落在了怎么判断一个参数的数据类型是数组了。 我们可以通过isPrototypeOf()方法实现。

var obj = [];
Array.prototype.isPrototypeOf(obj); // true

作用:用于指示对象是否存在于另一个对象的原型链中,存在返回true,否则返回false

所以,完整的检验空数组的表达式如下:

// 满足以下判断表达式的都是 空数组 []
Array.prototype.isPrototypeOf(obj) && obj.length === 0

判定空对象的方法

分析:和判断空对象类似的,我们只要能验证这个对象的keys长度是0,那就是个空对象了。我们依旧可以通过isPrototypeOf()方法实现判断一个数据是不是对象。

var obj = {};
Object.prototype.isPrototypeOf(obj); // true

完整的检验空对象的表达式如下:

// 满足以下判断表达式的都是 空对象
Object.prototype.isPrototypeOf(obj) && Object.keys(obj).length === 0

你可能感兴趣的:(web补充,javascript,开发语言,ecmascript)