《JavaScript启示录》——1.8 null、undefined、"string"、10、true和false等原始值不是对象...

    xiaoxiao2024-10-12  103

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

    1.8 null、undefined、"string"、10、true和false等原始值不是对象

    null和undefined都是非常简单的值,它们不需要构造函数,也没有使用new操作符来将自己创建为JavaScript值。欲使用null或undefined,只需将它们看做操作符来使用即可。从技术上来讲,从构造函数返回的字符、数字、布尔值并不是对象。

    下面对原始值和其他原生JavaScript对象之间的差异进行了比较。

    <!DOCTYPE html><html lang="en"><body><script> // 使用原始值的时候,不会创建对象,注意没有使用new关键字 var primitiveString1 = "foo"; var primitiveString2 = String('foo'); var primitiveNumber1 = 10; var primitiveNumber2 = Number('10'); var primitiveBoolean1 = true; var primitiveBoolean2 = Boolean('true'); // 确认不是对象类型 console.log(typeof primitiveString1, typeof primitiveString2); // 输出 'string,string' console.log(typeof primitiveNumber1, typeof primitiveNumber2); // 输出 'number,number' console.log(typeof primitiveBoolean1, typeof primitiveBoolean2); // 输出 'boolean,boolean' // 比较用于创建对象的构造函数和new关键字的用法 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!'); // 输出 'object object object object object function object function object' console.log( typeof myNumber, typeof myString, typeof myBoolean, typeof myObject, typeof myArray, typeof myFunction, // 注意所有的function对象返回的类型都是function typeof myDate, typeof myRegExp, // 注意RegExp()的类型返回的是function typeof myError ); </script></body></html>

    希望大家从前面的代码中可以掌握:原始值不是对象。原始值的特殊之处在于它们是用于表示简单值。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)