1.let命令:
相当于var,声明的变量只在所在的代码块内有效,eg:
{
let a = 1;
var b =2;
console.log(a) //1
}
console.log(a) //not defined
console.log(b) //2
let变量在域解析的时候不会被提升,eg:
console.log(a) //undefined
var a = 1;
console.log(b) //not defined报错
let b = 2;
let不允许在同一个作用域下申明已经存在的变量
2.const同let
只是const还有2条特殊的特点:
const申明的时候必须赋值
const申明的数据类型是基本数据类型的时候,它的值是不可变的,如果存储的是对象,那么引用不可以被改变,数据变化是不影响的。
3.变量的解构赋值:本质上是匹配模式,等号两边的模式相同,那么左边的变量就可以被赋予对应的值。eg:
let a = 1;
let b = 2;
let c = 3;
let [a,b,c]=[1,2,3]
数组的解构赋值,eg:
let [a,[[b],c]] = [1,[2],3]
console.log(a,b,c) //1 2 3
let [, ,c] = [1,2,3]
console.log(c) //3
let [a] = []; // let a;
console.log(a); //undefined
let [y=1] = [];
console.log(y); //1
对象的解构赋值:
let {a,b} = {b:bbb",a:aaa"}
console.log(a,b) // aaa bbb
let {a:b} = {a=1};
console.log(b); //1
console.log(a); //not defined
基本类型的解构赋值:eg:
字符串的解构赋值:
let {a,b,c,d}={1,2,3,4};
console.log(a,b,c,d); //1 2 3 4 (字符串被转换为类数组对象)
属性的解构赋值:
let {length:len} = {'miaov'};
console.log(len); //5
还可以对数值和布尔值解构赋值
null和undefined不可以解构赋值
set数据结构:唯一的值
set数组去重:
var arr = [1,2,2,3,4]
var set = new Set(arr) //{1,2,3,4}
var newArr = Array.from(set)
console.log(newArr) //[1,2,3,4]
浙公网安备 33010602011771号