JS零碎知识总结
JS零碎知识总结
①JS 垃圾回收方案是:
(1)遍历所有的可访问对象
(2)回收已不可访问的对象
优化策略:
分代回收(多回收临时对象区,少回收持久对象区)
增量GC(每次处理一点,下次再处理一点)
②stringObject.indexOf(searchvalue,fromindex)
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
1 | var arr = [1,2,3,4,5]; |
解释下,arr.indexOf(3)这个好理解,就是返回3出现的索引位置,为2没毛病。
再看arr.indexOf(3,1) ,最开始的时候以为,是从索引为1的位置,就是2这个位置开始查找。返回3这个值出现的位置。那应该是1 啊。要是这么理解就望文生义了。
其实真相是这个样子的:他只是查找的位置改变了。返回的还是从头算起改值的索引(索引为0 的位置开始)的结果。
③++ –
++i, i++在单独使用时,都是i=i+1。
a=++i 相当于 i=i+1, a=i; 前加加 先计算后赋值
a=i++ 相当于a=i, i=i+1。 后加加 先赋值后计算
这样解释比较清晰
④
substring() 方法用于提取字符串中介于两个指定下标之间的字符
substr() 方法从字符串中提取从 startPos位置开始的指定数目的字符串。
substring(start,end)
- substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
- 如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
- 如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
如果 start 或 end 为负数,那么它将被替换为 0。
stringObject.substr(start [, length ])
- 如果start为负数,则start=str.length+start。
- 如果 length 为 0 或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到stringObject的最后。
⑤ window
⑥ for in for of 区别
for (var key in arr){
console.log(arr[key]);
}for (var value of arr){
console.log(value);
}⑦eval()
eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。⑧slice()
slice() 方法可从已有的数组中返回选定的元素
您可使用负值从数组的尾部选取元素⑨apply() call()区别
apply()把参数打包成Array再传入;call()把参数按顺序传入。