JavaScript门道之标准库

前端之家收集整理的这篇文章主要介绍了JavaScript门道之标准库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

2.Object对象及其实例

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

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

常用的属性方法简介:

1.prototype对象

属性和方法,例如: 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()本身作为方法使用

Object对象实例的属性方法

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

方法 var person = {name: "teren"};

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

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

1.Object.prototype.valueOf()

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

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

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

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

3.hasOwnProperty()

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

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

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

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

函数构造一个对象,从而把数值123包装进Number对象中

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

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

2.Number对象的方法

方法 将任何类型的值转化为数值 Number(100)//100 Number("100")//100 Number("100e")//NaN Number([1,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的属性方法

Number对象实例的属性方法

【注】 Number对象实例所运用到的属性方法基本包含在Number对象的属性方法

4.String对象及其实例

String对象是字符串的包装对象,利用String()构造函数创建一个String对象的实例

String对象的属性方法

1.length属性 返回字符串长度

方法 能够将其他类型值转换为字符串 String(1)//"1" String(true)//"true" String([1,3])//"1,3" String([])//"" String({name:"teren"})//"[object Object]" 2.charAt() 返回指定位置的字符 var str = "123" str.charAt(2)//"3" 3.charCodeAt() 返回在指定的位置的字符的 Unicode 编码 str.charCodeAt(0)//49 4.indextOf() 返回字符所在的位置 str.indexOf(1)//0 5.substring() 提取字符串中两个指定的索引号之间的字符 var str = "NBA Basketball " str.substring(1,3)//"BA" str.substring(1,5)//"BA B" 6.toUpperCase()&toLowerCase() var str ="hello" str.toUpperCase()//"HELLO" var strr = "HELLO" strr.toLowerCase()//"hello" 7.trim() 删除空格 var s = " str" s//" str" s.trim()//"str" 8.split() 把字符串分割为字符串数组 var s = "hello" s.split("")//["h","e","l","o"] var str = "hello world" str.split(" ")//["hello","world"] 9.slice(1,5) 从下标为1开始(包含元素)至下标5(不包含) var str = "helloworld" str.slice(1,5)//"ello" 10.valueOf()&toString() 都是返回字符串

String对象实例的属性方法

【注】 String对象实例的属性方法基本包含在String对象的属性方法

4.Boolean对象及其实例 Boolean对象是布尔值的包装对象,利用Boolean构造函数创建一个布尔对象

【注】 不鼓励使用Boolean()构造布尔对象

6.Array对象 Array对象是数组的包装对象

创建一个Array对象实例

方法 var arr = [1,3]

Array对象的属性

属性 var arr= [1,3] arr.length//3

Array对象的方法

增加数组元素 arr.push() & arr.unshift()//一个在尾部一个在首部增加元素,并返回新数组的长度 arr.push("h","e")//6 arr//[1,3,"h","e"] arr.unshift(1,1,1)//9 arr//[1,"e"] 3.删除数组元素 arr.pop() & arr.shift()//一个在尾部一个在首部删除元素,并返回删除的元素,每次调用只能删一个 var arr = [1,"e"] arr.pop()//"e" arr//[1,"e"] arr.shift()//1 arr//[1,"e"] 4.灵活删除增添元素的方法 var arr = [1,"e"] arr.splice(0,4,"w","y")//[1,1] arr//["w","y","e"] 5.join(separator) 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔 var arr = [1,"e"] arr.join("-")//"1-1-1-1-2-3-h-e-e" 6.sort(func) var arr = [1,"e"] arr.sort()//[1,"h"] 7.reverse() var arr = [1,"e"] arr.reverse()//["e",1] 8.concat() 合并数组 var a =[1,4] var b = [4,1] a.concat(b)//[1,1]

【注】 Array对象实例所运用到的属性方法基本包含在Array对象的属性方法

7.Math对象及其实例 Math对象提供一些数学方面的属性方法,但Math对象不能创建实例对象

Math对象的属性

Math对象的方法

随机数,可能等于0,但是一定小于1 Math.random()*50+50//[50,100)之间的随机数 10.三角函数方法 略 11.valueOf() & toString() valueOf()返回Math对象的原始值 toString()返回Math的对象类型

8.Date对象 Date对象是JavaScript提供的日期和时间的操作接口

Date实例对象的参数 Date对象的起始时间为1970年1月1日00:00:00 UTC

Date对象的方法

方法 var today = new Date() 2.Date.now() 返回当前距离1970年1月1日 00:00:00 UTC的毫秒数 Date.now()//1466517135730 3.Date.parse() 用来解析日期字符串,返回距离1970年1月1日 00:00:00的毫秒数 Date.parse(2015,2)//1420070400000 4.Date.UTC() 返回当前距离1970年1月1日 00:00:00 UTC的毫秒数 Date.UTC(2000,1)//946684800000

Date对象实例的方法

2.get类:获取关于时间和日期的值

3.set类:设置实例对象的时间和日期

效果同上

【注】 关于jsDate对象的时间和日期的取值范围

分钟和秒:0 到 59 小时:0 到 23 星期:0(星期天)到 6(星期六) 日期:1 到 31 月份:0(一月)到 11(十二月) 年份:距离1900年的年数

10.标准库小结

  • 标准库是js的初始提供的标准内置对象,分为Object对象、Number对象、String对象、Boolean对象、Array对象、Math对象以及Date对象 【注】不限于上述对象,还有RegExp对象和JSON对象

  • js所有的对象都是由Object对象构造的,包括其对象实例以及Number、String、Boolean、Array、Math和Date等对象;

  • 对象一般都会包含属性方法属性代表属于对象的某些特征值,方法代表对象的某些功能

  • 对象在属性当中通常设置constructor(Math对象没有)和prototype属性,部分对象包括length属性(String和Arrary对象的length有实践意义);conStructor设置该对象的构造函数功能,prototype设置一个原型对象——使得所有该对象的构造函数创建的对象实例能够从prototype对象中继承相应的属性

  • Object对象的属性方法最具一般性,大部分属性方法可以在其他对象中找到,但是每一个对象还具有各自的属性方法(有些只能对象使用,有些能够对象实例使用(因为部署在各自对象的prototype里))

  • 这里特别说一下valueOf()、toString()在不同对象中的效果,一般valueOf()输出对象的原始值,toString()输出字符串

Number对象是数值对应的包装对象,String对象是字符串对应的包装对象,Boolean是布尔值对应的包装对象

"number" var num = new Number(123) //type of num -> "object" var str = "hello" var str = new String("hello") var bool = true; var bool = new Boolean(true)

【注】本笔记的资料大部分参考阮一峰的JavaScript标准参考教程

猜你在找的JavaScript相关文章