变量,作用域和内存问题
引用类型(存在于堆内存中)
可以为其添加属性和方法
基本类型(存在于栈内存中)
不可以为其添加属性和方法
但是?
原因:
基本包装类型:Boolean,Number,String
tip:ES中所有函数的参数都是按值传递的,意味着向函数中传入引用类型的话传递的是对应的指针
垃圾收集机制
数组
模拟栈(后进先出,最新添加的项最早被移除)方法:
模拟队列(先进先出,末端添加项,前端移除)方法:
重排序方法:
reverse():反转数组顺序
sort():升序排列
连接数组:concat()
截取数组:slice()
插入,替换新项到指定位置:splice()
寻找元素索引: indexOf() lastIndexOf()
迭代方法:
RegExp
测试匹配方法:test()
Function
arguments:保存函数参数。
tip:严格模式下会报错
改变函数内this指向,扩充函数作用域:call(),apply(),bind().
(1)Math.min.apply(null,array);
(2)
Number
toString():返回字符串形式的值。
toFixed():返回指定小数位字符串。
String
charAt()/charCodeAt():返回指定单个字符位置
字符串拼接:concat(),join()
字符串截取:slice(),substr(),subsring()
返回指定子字符串位置:indexOf(),lastIndexOf()
删除字符串多余空格:trim()
模式匹配方法,跟正则的exec()一样:match()
字符串替换:replace()
大小写转换:toLowerCase(),toUpperCase()
字符串分割:split()
Global对象
URI编码方法:
相对应的解码方法:decodeURI(),decodeURIComponent()
Math对象
原型链与继承
检测属性存在实例中还是原型中:hasOwnProperty()
取得对象所有可枚举实例属性方法:Object.keys()
闭包
闭包:有权访问另一个函数作用域中的变量的函数。