1.什么是标准库(Standard Library)
标准库指的是js的标准内置对象,是js这门语言本身初始时提供的在全局范围的对象
2.Object对象及其实例
JavaScript原生提供一个Object对象,所有的其他对象均继承自这一对象
Object对象的属性和方法
利用console.dir(Object)查找Object对象的属性和方法
常用的属性或方法简介:
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
【注】keys方法只返回可枚举的属性,getOwnPropertyNames还返回不可枚举的属性名。
4.Object()本身作为方法使用
var a = {name:"teren"} Object(a) //传入一个对象实例返回该实例 Object {name: "teren"} //传入一个原始类型值,则返回该值对应的包装对象
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的属性和方法