基本包装类型-Number,Boolean,String
-
基本包装类型
因为基本类型不是对象,本身不能调用属性和方法,为了便于操作基本类型,于是ECMAScript提供了三种特殊的引用类型:Boolean,Number,String。每当读取一个基本类型的值的时候,后台会创建一个对应的基本包装类型的对象,从而调用操作这些数据。
var str = 'hello world'; var str2 = str.substring(2); //str是基本类型 理论不可以调用方法
实际上str在调用substring方法的时候,后台会完成以下处理:
- 创建一个String类型的一个实例
- 在实例上调用指定的方法
- 销毁这个实例
var str = new String('hello world'); var str2 = str.substring(2); str = null;
自动创建的基本包装类型对象,只存在于一行代码的执行瞬间,然后就被销毁。这就不能在运行时为基本类型值添加属性和方法。
var str = 'hello world'; var str.color = '!'; console.log(str.color); // undefined //第二行创建的String对象在第三行代码执行之前就已经销毁了
-
Number类型
- Number是与数字值对应的引用类型。
var a = 3; var b = new Number(3); console.log(typeof a);//基本类型 number console.log(typeof b);//基本包装类型 Object Number console.log(typeof Number(b));//将包装类型转化为基本类型
- toFixed( 数值 ) 保留几位小数 返回值是保留小数位的字符串
var num = 10; console.log(num.toFixed(2)); //'10.00'
- 几种常用值
console.log(Number.NaN===window.NaN) //true console.log(Number.MAX_VALUE) //1.7976931348623157e+308 console.log(Number.MIN_VALUE)//5e-324 console.log(Number.NEGATIVE_INFINITY)//-Infinity console.log(Number.POSITIVE_INFINITY)//Infinity