变量声明的三种方法:
1.var 2.let 3.const
const声明的是一个常量,不能被修改;
var与let的区别:
1.var是函数作用域,let是块作用域。
在函数中声明了var,整个函数内都是有效的,比如说在for循环内定义的一个var变量,实 际上其在for循环以外也是可以访问的
而let由于是块作用域,所以如果在块作用域内定义的变量,比如说在for循环内,在其外面是不可被访问的,所以for循环推荐用let
2、let不能在定义之前访问该变量,但是var可以。因为var会进行变量提升,而var不会。
let必须先声明,再使用。而var先使用后声明也行,只不过直接使用但没有定义的时候,其值是undefined。var有一个变量提升的过程,当整个函数作用域被创建的时候,实际上var定义的变量都会被创建,并且如果此时没有初始化的话,则默认为初始化一个undefined
3、let不能被重新定义,但是var是可以的
解构
定义:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。
ES6可以这样为给变量赋值
只要等号两边的模式相同,左边的变量就会被赋予对应的值;
分类:数组的解构
字符串的解构:
函数的解构:
对象的解构
变量名必须和对象的键名保持一致
字符串方法
str.includes('x')检测该数组是否包含这个元素
strstartsWidth('x')检测该数组是否以该元素开头
str.endsWidth('x')检测该数组是否以该元素结尾
填充:str.padstart(3,"0") 意思是将字符串补齐三位数,不够的用0补。
移出空白:trim:移出全部空白;trimLeft移出左边空白;trimRight移出右边空白
数组方法
arr.find():查找符合条件的元素;
arr.findIndex():查找符合条件元素的下标
arr.forEach(function(item,index)):遍历数组
arr.map(item=>item*2)映射,将以前的数组元素都放大2倍;
arr.some();只要有一个条件符合就返回true;
arr.every();必须全部符合条件才返回true;
arr.filter();过滤符合条件的元素,返回的是一个新的数组
对象方法
Object.creat()通过现有的对象创建一个新的对象
Object.keys() 获取对象所有键的集合成为一个数组
Object.values() 获取值的集合
Object.assign(obj1,obj2) 合并对象