返回介绍

第一部分 类型和语法

第二部分 异步和性能

第3章 原生函数

发布于 2023-05-24 16:38:21 字数 1500 浏览 0 评论 0 收藏 0

第 1 章和第 2 章曾提到 JavaScript 的内建函数(built-in function),也叫原生函数(native function),如 String 和 Number 。本章将详细介绍它们。

常用的原生函数有:

· String()

· Number()

· Boolean()

· Array()

· Object()

· Function()

· RegExp()

· Date()

· Error()

· Symbol() ——ES6 中新加入的!

实际上,它们就是内建函数。

熟悉 Java 语言的人会发现,JavaScript 中的 String() 和 Java 中的字符串构造函数 String(..) 非常相似,可以这样来用:

var s = new String( "Hello World!" );

console.log( s.toString() ); // "Hello World!"

原生函数可以被当作构造函数来使用,但其构造出来的对象可能会和我们设想的有所出入:

var a = new String( "abc" );

typeof a;              // 是"object",不是"String"

a instanceof String;         // true

Object.prototype.toString.call( a ); // "[object String]"

通过构造函数(如 new String("abc") )创建出来的是封装了基本类型值(如 "abc" )的封装对象。

请注意:typeof 在这里返回的是对象类型的子类型。

可以这样来查看封装对象:

console.log( a );

由于不同浏览器在开发控制台中显示对象的方式不同(对象序列化 , object serialization),所以上面的输出结果也不尽相同。

在本书写作期间,Chrome 的最新版本是这样显示的:String {0: "a", 1: "b", 2: "c", length: 3, [[PrimitiveValue]]: "abc"} ,而老版本这样显示:String {0: "a", 1: "b", 2: "c"} 。最新版本的 Firefox 这样显示:String ["a","b","c"] ;老版本这样显示:"abc" ,并且可以点击打开对象查看器。这些输出结果随着浏览器的演进不断变化,也带给人们不同的体验。

再次强调,new String("abc") 创建的是字符串 "abc" 的封装对象,而非基本类型值 "abc" 。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文