第三章 原生函数
常用的原生函数(内建函数)有:
- String()
- Number()
- Boolean
- Array()
- Object()
- Function()
- RegExp()
- Date()
- Erroe()
- Symbol() ——ES6中新加入的
new String("abc") 创建的是字符串 "abc" 的封装对象,而非基本类型值 "abc" 。
1、想要得到封装对象中的基本类型值,可以使用 valueOf() 函数:
var a = new String( "abc" ); var b = new Number( 42 ); var c = new Boolean( true ); a.valueOf(); // "abc" b.valueOf(); // 42 c.valueOf(); // true
2、判断其类型typeof
var a = "abc"; var b = new String( a ); var c = Object( a ); typeof a; // "string" typeof b; // "object" typeof c; // "object" b instanceof String; // true c instanceof String; // true
除非万不得已,否则尽量不要使用 Object(..) / Function(..) / RegExp(..)
3、Date(..) 和 Error(..)【用处比较大】
(1)创建日期对象必须使用 new Date() 。 Date(..) 可以带参数,用来指定日期和时间,而不带参数的话则使用当前的日期和时间。
(2)创建错误对象(error object)主要是为了获得当前运行栈的上下文(大部分 JavaScript 引擎通过只读属性 .stack 来访问)。错误对象通常与 throw 一起使用
function foo(x) { if (!x) { throw new Error( "x wasn’t provided" ); } // .. }
4、Symbol(...)
可以使用 Symbol(..) 原生构造函数来自定义符号。但它比较特殊,不能带 new 关键字,否则会出错
第四章 强制类型转换