JavaScript门道之标准库

1.什么是标准库(Standard Library)

标准库指的是js的标准内置对象,是js这门语言本身初始时提供的在全局范围的对象

2.Object对象及其实例

JavaScript原生提供一个Object对象,所有的其他对象均继承自这一对象

Object对象的属性和方法
利用console.dir(Object)查找Object对象的属性和方法

JavaScript门道之标准库

常用的属性或方法简介:

1.prototype对象

prototype是Object对象下的原型对象, 原型对象里面用于放置其他继承自Object对象的属性和方法,例如: Object.prototype.valueOf() Object.prototype.toString() 两个方法都是部署在Object对象下的prototype原型对象, 而其他对象如Number对象、String对象 或是自定义对象var a = new Object()都可以继承prototype的属性和方法

2.Object.keys(object)

keys()方法输入一个实例对象并返回对象的属性数组

3.Object.getOwnPropertyNames

JavaScript门道之标准库

【注】keys方法只返回可枚举的属性,getOwnPropertyNames还返回不可枚举的属性名。

4.Object()本身作为方法使用

var a = {name:"teren"} Object(a) //传入一个对象实例返回该实例 Object {name: "teren"} //传入一个原始类型值,则返回该值对应的包装对象

JavaScript门道之标准库

Object对象实例的属性和方法

Object对象本身是一个构造函数,可以利用Object构造函数构造对象实例

var person = new Object(); person.name = "teren"; //字面量方法 var person = {name: "teren"};

【注】
所有的对象都是由Object构造出来的;
字面量创建对象的方法和利用Object()构造对象的方法是等价的;

Object对象有不少方法部署在Object.prototype对象上,所有的Object的对象实例都继承这些方法

1.Object.prototype.valueOf()

valueOf()方法返回一个对象的“值”。默认情况下,返回对象本身

var o = {name:"teren"} o.valueOf()//Object {name: "teren"} var p = {name:"teren",age:18} p.valueOf()//Object {name: "teren", age: 18} var q = {} q.valueOf()//Object {}

【注】
valueOf方法的主要用途是,JavaScript自动类型转换时会默认调用这个方法

2.Object.prototype.toString()
toString方法返回一个对象的字符串形式,默认情况下返回类型字符串

var o ={name:"teren"} o.toString()//"[object Object]"

【注】
toString方法的主要用于是,JavaScript自动类型转换时会默认调用这个方法

var o = {} o + "world"//"[object Object]world"

3.hasOwnProperty()

hasOwnProperty():判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性,若继承自原型则返回false

var o = {name:"teren"} o.hasOwnProperty("name")//true o.hasOwnProperty("toString")//false

4.propertyIsEnumerable():判断某个属性是否可枚举(遍历)

var arr = [1,2,3] for(var key in arr){console.log(arr[key])} 1 2 3 arr.propertyIsEnumerable("0")//true arr.propertyIsEnumerable("length")//false

3.Number对象及其实例Number对象是数值对应的包装

对象,所谓包装对象如下面例子所示: 

var num = 123//这是一个数据类型为数值的数值 var num = new Number(123)//这里通过Number函数构造一个对象,从而把数值123包装进Number对象中

Number对象的属性和方法
1.Number对象的属性

Number.MAX_VALUE Number.MIN_VALUE Number.POSITIVE_INFINITY Number.NEGATIVE_INFINITY Number.NaN

【注】
Number对象实例是无法获取去Number对象的属性

var x = new Number(123); x.MAX_VALUE;//undefined

2.Number对象的方法

1.Number()自身的方法 将任何类型的值转化为数值 Number(100)//100 Number("100")//100 Number("100e")//NaN Number([1,2,3])//NaN Number(true)//1 Number([])//0 Number({})//NaN 2.toFixed() 把数字转换为字符串,并保留几位小数 var a = 123 a.toFixed(2)//"123.00" a.toFixed(3)//"123.000" a.toFixed(0)//"123" 3.toExponential() 把对象的值转换为科学计数法的字符串 a.toExponential(1)//"1.2e+2" a.toExponential(2)//"1.23e+2" a.toExponential(3)//"1.230e+2" a.toExponential(4)//"1.2300e+2" 4.valueOf() a.valueOf()//123 5.toString() a.toString()//"123" 6.isFinite() Number.isFinite(123)//true Number.isFinite(NaN)//false 7.isNaN() Number.isNaN(NaN)//true

下图是Number对象继承自Object对象的属性和方法,以及专属于Number的属性和方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ac0d3a2521b3856e9740116cca280010.html