《JavaScript启示录》——1.16 typeof操作符

    xiaoxiao2024-06-19  112

    本节书摘来自异步社区《JavaScript启示录》一书中的第1章,第1.16节,作者:【美】Cody Lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

    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>

    在这些值上使用该操作符时,考虑到正在使用的值(原始值或复杂值)的类型,我们应该特别注意潜在的返回值。

    最新回复(0)