ES6新增部分属性01学习笔记

Let和var区别

  1. 作用域不同

Let:{代码块} 只局限在当前代码块 var没有{}概念

     2.作用域不会提升

Var会提升 let不会

     3.在相同的作用域下不能声明相同的变量

Var可以 let不可以

      4.For循环体现let父子作用域

Var的for循环如果不采用闭包会加到最大再传给{代码} 同步和异步事件

Const

  1. 当前代码块中生效
  2. 不会被提升
  3. 不能重复声明
  4. 声明的常量必须赋值,赋值以后不能被改变(对象obj中的引用可以修改)

结构赋值 ES6新增的知识点 

 允许按照一定模式从数组和对象中提取值,对变量进行赋值,这被称为解构赋值

数组的解构赋值

Let [name,age,sex]=[‘李四’,18,’male’];

Let[arr1,[arr2,arr3,[arr4,arr5]]]=[1,[2,3[4,5]]]; 嵌套

Name=’fxk’;

对象解构赋值

let {name,age,sex}={name:'zhangsan',age:55,sex:'male'};

里面也可以放对象和数组

键值对要一一对应

基本类型的解构赋值

let [a,b,c,d,e]='我是中国人';

字符串可以解构赋值 数字number不行,没有构造器

ES6新增的两种数据类型

Set和Map

Set:

  1. 没有重复数据,可以用来去重,key和value都是相等的

一个属性 size

四个方法 add delete has clear

Map

更加完善的数据类型

 
const map=new Map([

    ['name','zhangsan'],

    ['age',18],

    ['sex','female'],

    [obj1,'今天天气很好'],

    [obj2,'今天天气比较差']

]);

 

具有去重性

属性:size

方法:set和let、delete、has、clear keys(),values(),entries();

对map进行遍历 forEach()

 
map.forEach(function (value,index) {

    console.log(index+": "+value);

})

 

注意事项:

map.set({},'keke');

map.set({},'xixi');

这两者是不同的

Symbol

场景 对象属性名都是字符串,容易造成属性名冲突

ES6新引入的原始数据类型Symbol,表示独一无二的值

let str1 = Symbol();

let str2 = Symbol();

console.log(str1 === str2);

console.log(typeof  str1);
obj[Symbol('name')]='zhangsan';

obj[Symbol('name')]='lisi';

 

ES6新增的语法糖class

class Person{

    constructor(name,age){

        this.name=name;

        this.age=age;

    }

    print(){

        console.log("我叫"+this.name+",今年"+this.age+"岁");

    }

}

let person=new Person('zhangsan',24);

console.log(person);

person.print();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值