块级作用域
第一种场景,内层变量可能会覆盖外层变量。
第二种场景,用来计数的循环变量泄露为全局变量。
es6声明变量的6种方式:var,const,let,import,class,function
解构赋值:按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构,数组的是 模式赋值,对象是根据命名赋值,对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值
注意 如果要将一个已经声明的变量用于解构赋值,必须非常小心
js中对于数组的几种操作方式:
shift()删除数组的第一个元素从其中删除,并返回第一个元素的值 语法 :arrayObject.pop()
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度
pop() 方法用于删除并返回数组的最后一个元素。 语法 :arrayObject.pop()
字符串扩展
es6支持字符串遍历器接口,map,数组本身支持遍历器接口
如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、search()和split()。
函数扩展
参数默认值可以与解构赋值的默认值,结合起来使用。
指定了默认值以后,函数的length属性,将返回没有指定默认值的参数个数。也就是说,指定了默认值后,length属性将失真。如果设置了默认值的参数不是尾参数,那么length属性也不再计入后面的参数了,函数的length属性,不包括 rest 参数
可以将参数默认值设为undefined,表明这个参数是可以省略的
rest 参数: rest参数(形式:…变量名),用于获取函数的多余参数,利用 rest 参数,可以向该函数传入任意数目的参数,rest参数搭配的变量是一个数组 例如:…item
name 属性 函数的name属性,返回该函数的函数名
箭头函数有几个使用注意点。
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
上面四点中,第一点尤其值得注意。this对象的指向是可变的,但是在箭头函数中,它是固定的。箭头函数没有自己的this,内部的this指向外部的this
部署管道机制(pipeline),即前一个函数的输出是后一个函数的输入。
尾调用(Tail Call)指某个函数的最后一步是调用另一个函数,最终只有一个调用栈,不会递归栈溢出
在JavaScript里使用typeof判断数据类型,只能区分基本类型,即:number、string、undefined、boolean、object。
对于null、array、function、object来说,使用typeof都会统一返回object字符串。
要想区分对象、数组、函数、单纯使用typeof是不行的。在JS中,可以通过Object.prototype.toString方法,判断某个对象之属于哪种内置类型。
分为null、string、boolean、number、undefined、array、function、object、date、math
在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法
扩展运算符(…):将一个数组转为用逗号分隔的参数序列 ,如果扩展运算符后面是一个空数组,则不产生任何效果,只有函数调用时,扩展运算符才可以放在圆括号中,否则会报错
js中call()、apply()、bind() 都是用来重定义 this 这个对象的
apply 方法传入两个参数:一个是作为函数上下文的对象,另外一个是作为函数参数所组成的数组 例如:func.apply(obj, [‘A’, ‘B’]);
call 方法第一个参数也是作为函数上下文的对象,但是后面传入的是一个参数列表,而不是单个数组 例如:func.call(obj, ‘C’, ‘D’);
bind 接受的参数有两部分,第一个参数是是作为函数上下文的对象,第二部分参数是个列表,可以接受多个参数 例如:var func1 = func.bind(null, ‘xixi’); func1();
apply、call 方法都会使函数立即执行,因此它们也可以用来调用函数
bind 方法不会立即执行,而是返回一个改变了上下文 this 后的函数。而原函数 func 中的 this 并没有被改变,依旧指向全局对象 window
bind 在传递参数的时候会将自己带过去的参数排在原函数参数之前
来源:CSDN
作者:一个女程序媛
链接:https://blog.csdn.net/weixin_37582804/article/details/103935997