栈内存和堆内存
栈内存:简单数据类型 string number boolean null undefined
堆内存:复杂数据类型 object array。。。
注意...
浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块区域
深拷贝会创建一个一摸一样的对象,新对象和原对象不共享内存,修改新对象不会改变原对象
什么是闭包?
闭包就是能够读取其他函数内部变量的函数
var const let 关键字
暂时性死区 简称TDZ
使用es6的变量声明方法声明的变量,不可在声明前使用访问,否则就报错,es6声明代码之前的区域,叫做暂时性死区
模块字符串和结构赋值
模块字符串
对象解构
数组解构
ES6对象方法
commonJS
Amd
Cmd
-
Object.assign ()
通过复制一个或多个对象来创建一个新的对象。
-
Object.create ()
使用指定的原型对象和属性创建一个新对象。
-
Object.defineProperty ()
prototype
给对象添加一个属性并指定该属性的配置。
-
Object.defineProperties ()
给对象添加多个属性并分别指定它们的配置。
-
Object.entries ()
返回给定对象自身可枚举属性的 [key, value] 数组。
-
Object.freeze()
冻结对象:其他代码不能删除或更改任何属性。
-
Object.getOwnPropertyDescriptor()
返回对象指定的属性配置。
-
Object.getOwnPropertyNames()
返回一个数组,它包含了指定对象所有的可枚举或不可枚举的属性名。
-
Object.getOwnPropertySymbols()
返回一个数组,它包含了指定对象自身所有的符号属性。
-
Object.getPrototypeOf()
返回指定对象的原型对象。
-
Object.is()
比较两个值是否相同。所有 NaN 值都相等(这与==和===不同)。
-
Object.isExtensible()
判断对象是否可扩展。
-
Object.isFrozen()
判断对象是否已经冻结。
-
Object.isSealed()
判断对象是否已经密封。
-
Object.keys()
-
Object.values()
ES6字符串方法
新方法
- includes():返回布尔值,判断是否找到参数字符串。
- startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
- endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。
- repeat():返回新的字符串,表示将字符串重复指定次数返回。
- padStart(length,newStr):返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。
- padEnd(length,newStr):返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。
- 模板字符串
练习题
- 字符串转化成驼峰式写法
原字符串:xiaoshuo-ss-sfff-fe ===>效果:Xiaoshuo-Ss-Sfff-Fe
-
字符串去重
var str2 = "asdasdfghajgh";
-
统计字符串中最多的字符
var str2 = "asdasdfghajghg";
-
字符串反序
var str="qwertyu";