JS基础知识
1、条件判断
Javascript把null、undefined、0、NaN和空字符串' '视为false,其他值一概视为true。
2、Map
ES6规范引入了新的数据类型Map,是一组键值对的结构,具有极快的查找速度。
Map常用到的方法有set()、get()、has()、delete()等。
3、Set
Set也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。
Set常用到的方法有add()、delete()等。
注:Map和Set是ES6标准新增的数据类型,请根据浏览器的支持情况决定是否要使用。
4、iterable
为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。
具有iterable类型的集合可以通过新的for ... of循环来遍历。
然而,更好的方式是直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数。
5、函数
5.1 arguments
它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。利用arguments,可以获得调用者传入的所有参数。
arguments最常用于判断传入参数的个数。
5.2 rest参数
ES6标准引入了rest参数,如果传入的参数连正常定义的参数都没填满,rest参数会接收一个空数组。
5.3 变量作用域与解构赋值
JavaScript的函数可以嵌套,内部函数可以访问外部函数定义的变量,反过来则不行。
为了解决块级作用域,ES6引入了新的关键字let,用let替代var可以申明一个块级作用域的变量。
从ES6开始,JavaScript引入了解构赋值,可以同时对一组变量进行赋值。例:var [x, y, z] = ['hello', 'JavaScript', 'ES6'];
5.4 方法
在一个对象中绑定函数,称为这个对象的方法。
要指定函数的this指向哪个对象,可以用函数本身的apply方法,它接收两个参数,第一个参数就是需要绑定的this变量,第二个参数是Array,表示函数本身的参数。
另一个与apply()类似的方法是call(),唯一区别是:
- apply()把参数打包成Array再传入;
- call()把参数按顺序传入。
6、高阶函数
JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
对于数组,除了map()、reduce()、filter()、sort()这些方法可以传入一个函数外,Array对象还提供了很多非常实用的高阶函数。
every()方法可以判断数组的所有元素是否满足测试条件。
find()方法用于查找符合条件的第一个元素,如果找到了,返回这个元素,否则,返回undefined。
findIndex()方法也是查找符合条件的第一个元素,不同的是,返回这个元素的索引,找不到会返回-1。
forEach()和map()类似,它也把每个元素依次作用于传入的函数,但不会返回新的数组。