# ES6-ES11-demo **Repository Path**: CandyPop/es6-es11-demo ## Basic Information - **Project Name**: ES6-ES11-demo - **Description**: es6-es11 语法特性 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-30 - **Last Updated**: 2022-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ###### ESMAScript ES 全程 ESCMScript ,是脚本语言的规范,而平时经常编写的JavaScirpt是EcmaScript的一种实现,所以ES新特性其实指就是JavaScript的新特性。 ###### Symbol symbol有些特殊的属性,可以附加在对象上,当对象调用某些方法,会自动触发这些定义了Symbol的方法 ```javascript class Person{ static [Symbol.hasInstance](param){ return false; } } let o = {}; // 自动调用 console.log(o instanceof Person); ``` ![1661917795649](./img/1661917795649.png) ![1661917738412](./img/1661917738412.png) ![1661917830685](./img/1661917830685.png) ###### 迭代器 对于js而言,接口就是他里面的属性方法,在这里就是被定义了Symbol.iterator的方法。 ![1661935255739](./img/1661935255739.png) 只要你对象总存在Symbol.iterator属性,就可以参与for...of的方法使用。 ###### 模块化的好处 模块化的优势有以下几点 * 防止命名冲突 * 代码复用 * 高维护性 模块化规范产品 ES6 之前的模块化规范有 * CommonJs -> NodeJs Browerify * AMD -> requireJS * CMD -> seaJS ###### 针对不支持es6语法的浏览器的解决方案 ![1662293090844](./img/1662293090844.png) ###### 正则的doAll模式 ![1662297740372](./img/1662297740372.png) 当你希望匹配诸如换行之类的字符的时候,无须写s+的符号,只需要在模式下加上s,就可以启动doAll模式