1. ES6标准引入了新的关键字const来定义常量,const与let都具有块级作用域。
2. 数组的map()、reduce()、filter()这三个函数都是返回新的数组,而不改变原先的数组。
map 函数的作用:对数组中的每一个值进行map()中的function(x)操作。
reduce 函数的作用: [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
filter 函数的作用:filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
3. sort()函数注意是作用在数组本身上的,不是新建一个新的数组,它改变了数组自身。
4. ES6标准新增了一种新的函数:Arrow Function(箭头函数)
为什么叫Arrow Function?因为它的定义用的就是一个箭头:
x => x * x
上面的箭头函数相当于:
function (x) { return x * x; }
注意:使用箭头函数在函数内部会使得this的调用针对函数内部,this不会再指向Windows或者是undefined
5. typeof可以判断数值的具体类型
number
、string
、boolean
、function
和undefined
有别于其他类型。特别注意null
的类型是object
,Array
的类型也是object
,如果我们用typeof
将无法区分出null
、Array
和通常意义上的object——{}
。
6.记住以下规则:
-
不要使用
new Number()
、new Boolean()
、new String()
创建包装对象; -
用
parseInt()
或parseFloat()
来转换任意类型到number
; -
用
String()
来转换任意类型到string
,或者直接调用某个对象的toString()
方法; -
通常不必把任意类型转换为
boolean
再判断,因为可以直接写if (myVar) {...}
; -
typeof
操作符可以判断出number
、boolean
、string
、function
和undefined
; -
判断
Array
要使用Array.isArray(arr)
; -
判断
null
请使用myVar === null
; -
判断某个全局变量是否存在用
typeof window.myVar === 'undefined'
; -
函数内部判断某个变量是否存在用
typeof myVar === 'undefined'
。
任何对象都有toString()
方法吗?null
和undefined
就没有!确实如此,这两个特殊值要除外,虽然null
还伪装成了object
类型。
注意:number
对象调用toString()
报SyntaxError:
123.toString(); // SyntaxError
遇到这种情况,要特殊处理一下:
123..toString(); // '123', 注意是两个点! (123).toString(); // '123'
7. JavaScript的月份范围用整数表示是0~11,0
表示一月,1
表示二月……,很坑爹,,可是现在只能这么用了