JavaScript 如何检查提供的值是否为指定类型
以下方法介绍了如何检查JavaScript中的提供的值是否为指定类型。
方法: Object.is() 是JavaScript方法,它在ECMAScript 2015(也称为ES6)中引入,用于确定两个值是否相同。
Object.is() 确定两个值是否相同。如果两者都是未定义,都是null,都是true或两者都是false,都是长度相同、字符按相同顺序排列的字符串,都是相同的对象(意味着两个值引用内存中相同的对象),都是数字,都是+0,都是-0,都是NaN或都是非零且都不是NaN并且具有相同的值,则两个值是相同的。
语法:
Object.is(value1, value2);
参数: 该方法接受以下两个参数:
- value1: 这是要比较的第一个值。
- value2: 这是要比较的第二个值。
返回值: 该函数返回布尔值。
示例1:
// Evaluation result is the same as using ===
console.log(Object.is(25, 25)); // true
console.log(Object.is('foo', 'foo')); // true
console.log(Object.is('foo', 'bar')); // false
console.log(Object.is(null, null)); // true
console.log(Object.is(undefined, undefined)); // true
console.log(Object.is([], [])); // false
var foo = { a: 1 };
var bar = { a: 1 };
console.log(Object.is(foo, foo)); // true
console.log(Object.is(foo, bar)); // false
输出:
true
true
false
true
true
false
true
false
示例2:
// Evaluation result is the same as using ===
console.log(Object.is(25, 25)); // true
console.log(Object.is('foo', 'foo')); // true
console.log(Object.is('foo', 'bar')); // false
console.log(Object.is(null, null)); // true
console.log(Object.is(undefined, undefined)); // true
console.log(Object.is([], [])); // false
var foo = { a: 1 };
var bar = { a: 1 };
console.log(Object.is(foo, foo)); // true
console.log(Object.is(foo, bar)); // false
输出:
false
false
true
true
true
true
Object.is() 和 ===(严格相等)之间的关键区别
- Object.is(+0,0) 的结果为 false,Object.is(NaN,NaN) 的结果为 true。
- 因此,Object.is() 只是
===,但对于负零 -0 和 NaN 有不同的行为。
注意: 作为 ES6 特性 ,它可能不被旧浏览器支持,但可以使用 Babel 进行转译以实现兼容性。
极客教程