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标准参考教程