ES6—01—子棉量增强;let\const;块级作用域;模板字符串;箭头函数;数值的表示;Symbol;

js高级其实就是js的重点或难点,es6-es12的一些重难点其实在js高级也已经讲过了,所以就不赘述。这里主要是讲一些es6-es12中前面不是重难点的东西;

整理这个,整理好了之后,把以前看其他老师课程记得笔记和这里的笔记都整合下,把以前的笔记删除了吧;

一、字面量增强

1.属性的简写

2.方法的简写

3.计算属性的简写:

const obj = {};
obj[name + 123] = 'james';
console.log(obj); //{ kobe123: 'james' }

3.计算属性的简写:
const obj2 = {
  [name + 123]: 'james'
};
console.log(obj2);  //{ kobe123: 'james' }

二、解构

2.1数组按照顺序结构

es6转变到es5的源码:

 2.2对象按照key解构

给对象结构出来的属性重新命名为newAddress,并赋一个默认值;

三、let、const、var

let、const、var的简单区别:

  • let、const不能重复赋值;var可以,只是会覆盖而已;
  • const不能修改传过来的值;var可以;

let、const、var的作用域区别:

let、const有没有作用域提升?即能否定义之前访问?

v8不实现wondow对象,window对象是浏览器实现的;

以前只有var的时候, 全局上下文的vo等于go等于window;

现在有了let和const,不一样了;let、const、var定义的变量会添加到执行上下文(全局执行上下文和函数执行上下文)的变量环境ve ,这个ve不等于go也不等于window了,是一个加VariableMap的hashMap,这里面保存了所有的变量声明和函数声明,并且由var定义的变量会同步到window对象中;

let 、const的作用域提升 

 

window添加属性

 

 

四、块级作用域

块和声明对象的字面量;这不一样的!!!

 块级作用域对var声明的变量无效;

 块级作用域对let、const、function、clas声明的有效;

但是我们有是否发现function定义的变量也是没有块级作用域的,这是为什么?

ecma规定了function有跨级作用用,但是大部分浏览器在实现的时候,为了兼容以前的代码,还是让functon没有块级作用域;

五、模板字符串 

 标签模板字符串,这个在react中用的多;

 

六、函数的补充

6.1参数默认值

 

 6.2函数的剩余参数

七、箭头函数

箭头函数没有this外,还没有显式原型,所以不能通过new来构造一个箭头函数;

八、展开运算符

虽然对象没有迭代器,但是es9强制要求所有浏览器支持; 

 

 展开运算符是浅拷贝;

九、数值的表示

100 4 64 256

 


十、Symbol

1.没有symbol的弊端

2.symbol作为对象的key时使用的三种方式

3.对象如何获取自己的symbol键

使用Objecg.keys()和OBject.getOwnPropertyNames无法获取是Symbol类型的键;

所以我们要使用Object.getOwnPropertySymbols();

4.如何创建两个相同的symbol值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值