1.let :块级作用域
2.函数声明会被提升,函数表达式并不会像函数声明那样被提升
3.arguments这个参数不是真正的数组,而是一个对象,但是可以进行转换
var args = Array.prototype.slice.call(arguments)
4.apply()包含两个参数: 作为函数上下文的对象
调用参数的数组
call() 的参数以列表形式传入
5.闭包常用来 将系你先封装成私有变量的形式
6.正则表达式本身由项和操作符组成
两种形式: 字面量形式
RegExp对象 new RegExp('test','ig')
i:忽略大写,g:全局,m:跨行
严格匹配 : 任何非正则表达式字符或者操作符的字符序列,代表的都是字符本身。
针对一组字符进行匹配,可以将这组字符放入[],
在模式开头加上^(脱字符)来指定不想匹配到的字符 var pattern = /[^abc]/
首部与尾部 ^ $
例子
var oring = "1234 5678";
var reg = /(\d{4}) (\d{4})/;
var modified = oring.replace(reg,"$2 $1")
console.log(modified) // 5678 1234
最长用的去除l两边空格 /^\s+|\s+$/g
7.创建数组的三种方法
var arr = new Array(1,2,3)
var arr = Array(1,2,3)
var arr = [1,2,3] (推荐)
若 创建单个元素,使用第三种方式,第二种会把它作为长度
若给数组的length赋值,数组将被截断
数组常用的方法
forEach 遍历数组
concat() 合并两个数组
join ()将数组中的元素合成一个字符串
pop ()删除数组的最后一个元素,并返回
push ()在尾部添加 一个或多个元素,并返回最终的数组长度
shift ()删除数组中第一个并返回
unshift ()在数组的头部添加一个或多个 ,并返回新数组的长度
reverse()反转数组
sort ()数组排序
indexOf 从前往后
lastIndexOf 从后往前
reduce()相当于累加器