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条)