ECMA 语法知识点
1、什么是 ECMA
ECMA(European Computer Manufacturers Association)中文名称为欧洲计算机制造商协会,这个组织的目标是评估、开发和认可电信和计算机标准。1994 年后该组织改名为 Ecma 国际。什么是 ECMAScript :ECMAScript 是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言。为什么要学习 ES6 ,ES6 的版本变动内容最多,具有里程碑意义,ES6 加入许多新的语法特性,编程实现更简单、高效 ,ES6 是前端发展趋势,就业必备技能。
2、ECMASript 6 新特性
let 关键字:let 关键字用来声明变量,使用 let 声明的变量有几个特点:不允许重复声明,块儿级作用域,不存在变量提升,不影响作用域链。const 关键字:const关键字用来声明常量,const 声明有以下特点:声明必须赋初始值,标识符一般为大写,不允许重复声明,值不允许修改,块儿级作用域,变量的解构赋值 。
3、ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构赋值。4、模板字符串:模板字符串(template string)是增强版的字符串,用反引号(`)标识,特点: 字符串中可以出现换行符,可以使用 ${xxx} 形式输出变量
5、简化对象写法
ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。
6、箭头函数
ES6 允许使用「箭头」(=>)定义函数。
/**

    1. 通用写法
      */
      let fn = (arg1, arg2, arg3) => {
      return arg1 + arg2 + arg3;
      }
      箭头函数的注意点: 如果形参只有一个,则小括号可以省略,函数体如果只有一条语句,则花括号可以省略,函数的返回值为该条语句的,执行结果:箭头函数 this 指向声明时所在作用域下 this 的值,箭头函数不能作为构造函数实例化,不能使用 arguments,rest 参数
      ES6 引入 rest 参数,用于获取函数的实参,用来代替 arguments
      7、spread 扩展运算符
      扩展运算符(spread)也是三个点(…)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列,对数组进行解包。
      8、Symbol
      Symbol 基本使用:ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,是一种类似于字符串的数据类型。Symbol 特点:Symbol 的值是唯一的,用来解决命名冲突的问题,Symbol 值不能与其他数据进行运算,Symbol 定义 的 对象属 性 不能 使 用 for…in 循 环遍 历 ,但 是可 以 使 用Reflect.ownKeys 来获取对象的所有键名。Symbol 内置值除了定义自己使用的 Symbol 值以外,ES6 还提供了 11 个内置的 Symbol 值,指向语言内部使用的方法。可以称这些方法为魔术方法,因为它们会在特定的场景下自动执行。
      9、迭代器
      遍历器(Iterator)就是一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作。ES6 创造了一种新的遍历命令 for…of 循环,Iterator 接口主要供 for…of 消费,原生具备 iterator 接口的数据(可用 for of 遍历) ,Array:Arguments ,Set, Map ,String,TypedArray ,NodeList 。工作原理:创建一个指针对象,指向当前数据结构的起始位置,第一次调用对象的 next 方法,指针自动指向数据结构的第一个成员,接下来不断调用 next 方法,指针一直往后移动,直到指向最后一个成员每调用 next 方法返回一个包含 value 和 done 属性的对象。注: 需要自定义遍历数据的时候,要想到迭代器。
      10、生成器
      生成器函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同
      11、Promise
      Promise 是 ES6 引入的异步编程的新解决方案。语法上 Promise 是一个构造函数,用来封装异步操作并可以获取其成功或失败的结果。Promise 构造函数: Promise (excutor) {} , Promise.prototype.then 方法,Promise.prototype.catch 方法
      12、Set
      ES6 提供了新的数据结构 Set(集合)。它类似于数组,但成员的值都是唯一的,集合实现了 iterator 接口,所以可以使用『扩展运算符』和『for…of…』进行遍历,集合的属性和方法:size:返回集合的元素个数, add:增加一个新元素,返回当前集合,delete 删除元素,返回 boolean 值,has:检测集合中是否包含某个元素,返回 boolean 值。clear清空集合,返回 undefined。
      13、Map
      ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合。但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。Map 也实现了iterator 接口,所以可以使用『扩展运算符』和『for…of…』进行遍历。Map 的属性和方法:size:返回 Map 的元素个数。 set增加一个新元素,返回当前 Map, get返回键名对象的键值,has检测 Map 中是否包含某个元素,返回 boolean 值,clear清空集合,返回 undefined。
      14、class 类
      ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过 class 关键字,可以定义类。基本上,ES6 的 class 可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的 class 写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。知识点: class 声明类,constructor 定义构造函数初始化,extends 继承父类,super 调用父级构造方法,static 定义静态方法和属性,父类方法可以重写。
      15、数值扩展
      二进制和八进制:ES6 提供了二进制和八进制数值的新的写法,分别用前缀 0b 和 0o 表示。 Number.isFinite() 与 Number.isNaN() ,Number.isFinite() 用来检查一个数值是否为有限的 Number.isNaN() 用来检查一个值是否为 NaN 。Number.parseInt() 与 Number.parseFloat() ES6 将全局方法 parseInt 和 parseFloat,移植到 Number 对象上面,使用不变。Math.trunc用于去除一个数的小数部分,返回整数部分。Number.isIntegerNumber.isInteger() 用来判断一个数值是否为整数
      16、对象扩展
      ES6 新增了一些 Object 对象的方法:Object.is 比较两个值是否严格相等,与『===』行为基本一致(+0 与 NaN),Object.assign 对象的合并,将源对象的所有可枚举属性,复制到目标对象, proto、setPrototypeOf、 setPrototypeOf 可以直接设置对象的原型
      17、 模块化
      模块化是指将一个大的程序文件,拆分成许多小的文件,然后将小文件组合起来。模块化的好处:防止命名冲突,代码复用,高维护性。模块化规范产品
      ES6 之前的模块化规范有:CommonJS => NodeJS、Browserify, AMD => requireJS ,CMD => seaJS。ES6 模块化语法:块功能主要由两个命令构成:export 和 import。export 命令用于规定模块的对外接口,import 命令用于输入其他模块提供的功能
      18、ECMASript 7 新特性
      Array.prototype.includes:Includes 方法用来检测数组中是否包含某个元素,返回布尔类型值指数操作符:在 ES7 中引入指数运算符「**」,用来实现幂运算,功能与 Math.pow 结果相同
      19、ECMASript 8 新特性
      async 和 await :async 和 await 两种语法结合可以让异步代码像同步代码一样,async 函数:async 函数的返回值为 promise 对象,promise 对象的结果由 async 函数执行的返回值决定。await 表达式:await 右侧的表达式一般为 promise 对象,await 返回的是 promise 成功的值,await 的 promise 失败了, 就会抛出异常, 需要通过 try…catch 捕获处理 。Object.values 和 Object.entries ,Object.values()方法返回一个给定对象的所有可枚举属性值的数组,Object.entries()方法返回一个给定对象自身可遍历属性 [key,value] 的数组
      Object.getOwnPropertyDescriptors该方法返回指定对象所有自身属性的描述对象。
      20、ECMASript 9 新特性
      Rest/Spread 属性:Rest 参数与 spread 扩展运算符在 ES6 中已经引入,不过 ES6 中只针对于数组,在 ES9 中为对象提供了像数组一样的 rest 参数和扩展运算符,正则表达式命名捕获组 ,ES9 允许命名捕获组使用符号『?』,这样获取捕获结果可读性更强。正则表达式反向断言:ES9 支持反向断言,通过对匹配结果前面的内容进行判断,对匹配进行筛选。正则表达式 dotAll 模式:正则表达式中点.匹配除回车外的任何单字符,标记『s』改变这种行为,允许运行终止符出现。

ECMA 语法知识点相关推荐

  1. php学了基本语法后应该怎么做,PHP编程入门的基本语法知识点总结

    PHP编程入门的基本语法知识点总结 想要学好PHP,怎么能够不了解基本的语法知识呢?下面是为大家搜集出来的有关于PHP编程入门的基本语法知识点总结,一起来学习一下吧! 一.何为php PHP,即&qu ...

  2. Python入门语法知识点合集

    老袁今天主要是给新手朋友们,分享一下语法知识点的一些重要内容合集,由于内容多,文字抒写的话可鞥很多人看不懂,所以花费了点时间做了图片给大家看和学习,喜欢的可以收藏起来,或者说不清晰的可以联系我,我私发 ...

  3. 考研英语二语法知识点

    语法知识点 简单句 简单句的核心变化 主语.宾语.表语的变化 名词.代词 非谓语动词 doing 非谓语动词 to do 并列多个 简单句的扩展 词性角度的扩展 限定词 形容词.副词 形容词.副词做修 ...

  4. c语言中swith的用法,初中英语语法知识点大全+记忆口诀+易错题100道,考前复习...

    原标题:初中英语语法知识点大全+记忆口诀+易错题100道,考前复习 初中英语语法知识点大全 初中英语记忆口诀 1.be的用法口诀 我用am,你用are,is连着他,她,它: 单数名词用is,复数名词全 ...

  5. 计算机英语知识点,小学英语语法知识点汇总

    语法学习是小学英语学习中的重要内容之一,也是对学生英语学习比较重要的阶段.那么小学生需要掌握的英语语法知识都有哪些呢?下面沪江小编就为大家总结一些,一起来看看吧! 一.名词复数规则 1.一般情况下,直 ...

  6. Phython基础语法知识点汇集

    Phython基础语法知识点汇集 原创 辰兮要努力 最后发布于2020-03-29 18:42:24 阅读数 3506 收藏 原力计划 发布于2020-03-29 18:42:24 分类专栏: Phy ...

  7. python初中必背语法_初中英语语法知识点总结 中考必背重点知识归纳

    初中英语语法知识点总结 中考必背重点知识归纳 很多人想知道初中英语有哪些重要的语法知识点,中考有哪些必背的知 识点呢 ? 下面小编为大家整理一下 ! 初中英语语法重点知识归纳名词的所有格 : 表所有关 ...

  8. 【Java】面向对象编程语法知识点总结

    快速导航 1.继承 2. super和this的区别: 2.1 二者的区别 2.2 注意点: 3 重写和重载的区别 4 访问修饰限定符 4.1 private 4.2包访问权限 4.2 protect ...

  9. 考研英语二语法知识点 1.1简单句的核心构成

    知识点 简单句 简单句的核心构成 语法详解 1. `主谓 = 主语 + 不及物动词(vi.)` 2. `主谓宾 = 主语 + 及物动词(vt.) + 宾语` 3. `主谓双宾 = 主语 + 及物动词( ...

最新文章

  1. asp.net[web.config] httphandlers 与实现自由定义访问地址
  2. 《Div+CSS 3.0网页布局案例精粹》扫描版[PDF]
  3. python functools.wraps functools.partial实例解析
  4. java logfaction_Java调试的变迁:从System.out.println到log4j
  5. 用EnumProcesses()枚举进程
  6. pcb二次钻孔_作为一名合格的PCB设计工程师,了解生产制造很重要
  7. 如果地球突然停止转动,那么接下来会发生什么?
  8. HBase的RowKey设计
  9. arduino upload程序时 出现can't open device /dev/ttyUSB0
  10. SSD+caffe︱Single Shot MultiBox Detector 目标检测(一)
  11. 全国信息技术水平计算机程序设计c,2010年(上)全国信息技术水平考试计算机程序设计技术水平证书(C语言)考试试卷...
  12. Maven ojdbc错误:Cannot resolve com.oracle:ojdbc6:11.2.0.1.0
  13. 现代优化算法 之 模拟退火
  14. JAVA之进制转换(全)
  15. 每日一记:win10无法设置上网代理
  16. vscode、windows快捷键
  17. 分享ZKEYS公有云分销系统部署详细教程
  18. auto.js 基于控件的操作
  19. spark on k8s:apache YuniKorn(Incubating)的助力
  20. 微信网页授权问题记录

热门文章

  1. android 点击跳转应用市场评分页面
  2. python抠图_Python用5行代码实现批量抠图的示例代码
  3. 程序设计入门—Python
  4. HTML+CSS(详细版)
  5. BSR(bootstrap router自举路由器协议)
  6. 【转】OS6.1.2完美越狱
  7. Linux 环境变量详解
  8. docker容器部署wordpress,使用原有nginx代理并开启https
  9. PyTorch中Variable变量
  10. c++Windows【鼠标乱飞病毒】