1.16 typeof操作符
typeof操作符用于返回正在使用值的类型。但它返回的值并不一致,或者说,逻辑上不一致。下面的代码展示了使用typeof操作符所返回的值。
<!DOCTYPE html><html lang="en"><body><script>
// 原始值
var myNull = null;
var myUndefined = undefined;
var primitiveString1 = "string";
var primitiveString2 = String('string');
var primitiveNumber1 = 10;
var primitiveNumber2 = Number('10');
var primitiveBoolean1 = true;
var primitiveBoolean2 = Boolean('true');
console.log(typeof myNull); // 输出object,需要注意!!!
console.log(typeof myUndefined); // 输出undefined
console.log(typeof primitiveString1, typeof primitiveString2);
// 输出string string
console.log(typeof primitiveNumber1, typeof primitiveNumber2);
// 输出number number
console.log(typeof primitiveBoolean1, typeof primitiveBoolean2);
// 输出boolean boolean
// 复杂值
var myNumber = new Number(23);
var myString = new String('male');
var myBoolean = new Boolean(false);
var myObject = new Object();
var myArray = new Array('foo', 'bar');
var myFunction = new Function("x", "y", "return x * y");
var myDate = new Date();
var myRegExp = new RegExp('\\bt[a-z]+\\b');
var myError = new Error('Crap!');
console.log(typeof myNumber); // 输出object
console.log(typeof myString); // 输出object
console.log(typeof myBoolean); // 输出object
console.log(typeof myObject); // 输出object
console.log(typeof myArray); // 输出object
console.log(typeof myFunction); // 输出function,需要注意!!!
console.log(typeof myDate); // 输出object
console.log(typeof myRegExp); // 输出function,需要注意!!!
console.log(typeof myError); // 输出object
</script></body></html>
在这些值上使用该操作符时,考虑到正在使用的值(原始值或复杂值)的类型,我们应该特别注意潜在的返回值。
时间: 2024-10-02 23:56:59