0、新建100个数的数组,全赋值为3
var arr=new Array(100);
arr.fill(3);
1、复制数组,不可直接赋值,不可使用push(和赋值一样都只是复制引用)。
正解:copy=arr.slice()
2、快速获得对象中所有键值对数组,
Object.keys(obj).map(function(v){ return [v, dict[v]] })
3、类型转换
var s='1',n,m=1,str;
n=+s; ( 或n=parseInt(s) )
str=m+''; ( 或str=m.toString() )
4、判断是不是数字, 是不是字符串
isNaN('3')==true
Array.isArray('hello')
5、设置g用test会无法得出正确结果,原因是lastIndex会改变
var pattern=/a-z/g;
var s1,s2;
pattern.test(s1);
pattern.test(s2);
6、对象的属性是字符串类型
7、(?=exp)可用来判断至少有某字符,可从字符串结尾按规定字符个数匹配位置,(?!exp)用来判断不含某字符:
(?=.*\d) (?=(\d{3})+$)
8、在匹配字符串前后增加字符串利用replace方法和$1,删除匹配字符串用replace方法和空字符串''
9、比较两个数组常用sort,join,split
10、slice(-n)截取字符串后n个字符
11、检查重复字符的正则表达式
/(.).*\1/
12、reduce(function(pre,cur,index,array),initVal)可设置第二参数,作为初始值
13、replace(pattern,function(match,m1,m2...pos,str))即使正则设置g,只要有捕获组,function参数将包括捕获组参数
14、Math.min(...arguments),ES6新出spread operator ...
15、判断变量是不是对象,result === Object(result)