js高级程序设计第3版(5章:引用类型)
1.Object类型
创建方式:new Object() 、var person={name:''}
访问对象的属性方法:[]访问可以通过变量来访问属性,通常除非使用变量来访问属性,建议使用.
2.Array类型
检测数组的方法:instanceof Array.isArray()
转换方法:alert()中接收字符串参数,会自动转换成string
join(',') 内部将数组的每一项进行toString()转换。
toString()与toLocalString()的区别 :
- 对于数字的位数大于4有区别,逗号。
- 对于时间 输出 2021/2/5 上午11:25:39"
栈方法:后进先出 push() pop()
队列方法:先进先出 shift() unshift()
重排序方法:reverse() sort()
3.Date类型
Date.parse() 接收一个表示日期的字符串参数,返回毫秒数
Date.UTC()接收不一样的参数
4.RegExp类型
方法:exec() 接收一个参数,返回一个数组,index表示匹配项在字符串中的位置,input表示应用的正则表达式的字符串。
test()接收一个参数,返回true或者false
5.Function类型
函数名是指向函数对象的指针,一个函数可能有多个函数名。
没有重载:本质是创建第二个函数时,实际上覆盖了第一个函数的变量。
作为值的函数:第一个参数为函数,第二个为传入的函数里的参数。
函数内部的属性:定义阶乘函数,定义阶乘函数,使用到arguments.callee this引用的是函数据以执行的环境对象。
argument.caller调用当前函数的函数引用。 arguments.callee.caller
属性:length表示函数希望接收的命名参数的个数
6.基本包装类型 Boolean Number String
每次在创建基本数据类型时,后台会自动创建基本包装类型,所以基本数据类型可以调用包含的方法。
区别:对象的生存期,在创建基本包装类型的对象,则存在于一行代码的执行瞬间,然后立即销毁。不能给基本类型添加属性和方法
布尔表达式中的所有对象都会被转换成true
includes()
方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false。
concat()可接收多个参数拼接,slice(),substr(),substring()不会修改字符串本身的值
match()只接受一个参数
search()返回字符串第一次出现的位置
replace()替换其中的参数
7.单体内置对象
Global对象
此对象是不存在的,全局作用域中定义的属性和函数,都是Global对象的属性。
encodeURI():用于整个URI进行编码,属于URI的特殊字符进行编码。例如冒号、问号等 =========decodeURI()
encodeURIComponent()主要用于对URI其中的一段进行编码,对任何非标准字符进行编码 =========decodeURIComponent()
eval():是一个完整的函数解析器, 括号里边接收字符串。不会存在变量提升,只有到该位置时才会执行。
对象的属性:undefined NaN Infinity Error等构造函数
window对象
Math对象