前端ES6的语法整理

这个东东出很久了,一直没时间完整的学习整理一下。
加上现在前端的更新又特别的快,新的前端框架的东西,都需要用这个语法了,不然很多东西甚至就开始看不懂了。

2022-05-15 小杭

参考资料

  • ES6:https://blog.csdn.net/qq_40298902/article/details/107335464
  • w3school.:https://www.w3school.com.cn/js/js_es6.asp
  • 文档:https://es6.ruanyifeng.com/#docs/destructuring 这个文档相当的官方的
  • React :https://dvajs.com/knowledgemap/ 实际操作可以看这个文档,很实用

简介说明

ES全称ECMAScript,ES6是它的第六个版本(以下简称ES6),已经在2015年6月正式发布了,所以ES6也称为ES2015。

**关于ES6和javascript:**ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现。所以ES6是JavaScript的一个实现标准。更准确来说JavaScript由核心(ESMAScript)、文档对象模型(DOM)和浏览器对象模型(BOM)三部分组成。


新语法记录 【仅我觉得可能常用的】

变量 - let和Const

略过了,这个就是尽量使用这两个定义变量。他们是块级作用域

解构赋值 - 点点点 【重点】

官方名称:解构赋值 小名:点点点写法

本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。下面是一些使用嵌套数组进行解构的例子。

let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3let [ , , third] = ["foo", "bar", "baz"];
third // "baz"let [x, , y] = [1, 2, 3];
x // 1
y // 3let [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]let [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []

以上的栗子比较的方法的解释,而我们常用的一种就是页面去更新数据表单的写法;

下面这个对比写法,用来更新整个表单对象,避免页面数据没有重新刷新渲染

// 旧的仅更新对象下的一个属性值,不刷新整个对象,页面可能不会重新渲染 this.rateTemplateOptions = response.data;this.reportForm.rateTemplateId=this.rateTemplateOptions[0].id;// 使用这个写法,则是重新拼装整个的表单对象,刷新了整个对象,保证页面会重新渲染到。
// 这里,相当于,拆解原始数据之后,后面的参数覆盖了 相同key 的值this.depositConfigOptions = response.data;const reportForm = this.reportForm;this.reportForm = {...reportForm, depositConfigId: this.depositConfigOptions[0].id}

箭头函数 - 各种小箭头

立即执行函数可以写成箭头函数的形式。

(() => {console.log('Welcome to the Internet.');
})();// ES5
var x = function(x, y) {return x * y;
}// ES6
const x = (x, y) => x * y;

那些使用匿名函数当作参数的场合,尽量用箭头函数代替。因为这样更简洁,而且绑定了 this。

// bad
const self = this;
const boundMethod = function(...params) {return method.apply(self, params);
}// acceptable
const boundMethod = method.bind(this);// best
const boundMethod = (...params) => method.apply(this, params);

支持面向对象

ES6对对象(object)进行了重大升级,本身是JavaScript 最重要的数据结构。

提供的新的内容较多,简单列一下:

  • ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法
  • 支持操作函数name属性,支持属性遍历,支持super关键字。

再其他的,就碰到在去查看文档了。

一些ES6支持的新的扩展方法等

各种的对象多新加了好多的方法,这里稍微整理一下。

  • isNaN() 方法 :如果参数是 NaN,则全局 isNaN() 方法返回 true。否则返回 false:
  • isFinite() 方法:如果参数为 Infinity 或 NaN,则全局 isFinite() 方法返回 false。
  • 数字Number的方法:
    • Number.isInteger() 方法:如果参数是整数,则 Number.isInteger() 方法返回 true。
    • Number.isSafeInteger() 方法:如果参数是安全整数(双精度数的整数),则 Number.isSafeInteger() 方法返回 true。
    • 支持2进制,8进制写法;支持数值分割符;
    • Number.parseInt(), Number.parseFloat(),Number.isInteger()
    • 还有各种Math数学方法的扩展。【等等不列举】
  • 字符串的扩展
    • 简单说一下:支持遍历,模板字符串,模板编译等
  • 数组的扩展
    • 简单说一下:支持复制数组,合并与结构赋值结合,Array.from(),Array.of(),Array.prototype.copyWithin() 等等
    • 新增数据结构 Set 和 Map
  • Iterator 和 for…of 循环
  • Generator 函数的语法:异步编程解决方案:Promise
  • 支持模块化:Module 的语法
  • 等等。。。太多了

小记一些写法

Promises-处理异步请求

Promise 用于更优雅地处理异步请求。比如发起异步请求:

fetch('/api/todos').then(res => res.json()).then(data => ({ data })).catch(err => ({ err }));

定义 Promise 。

const delay = (timeout) => {return new Promise(resolve => {setTimeout(resolve, timeout);});
};delay(1000).then(_ => {console.log('executed');
});

async - 异步转同步写法

const asyncReadFile = async function () {const f1 = await readFile('/etc/fstab');const f2 = await readFile('/etc/shells');console.log(f1.toString());console.log(f2.toString());
};

小结一下吧

简单了解整理了一下东西,发现ES6的官方之后,Javascript基本支持了高级语言的各种东东了。

不论是语法糖,对象作用域,常用数组map等的各种操作支持,函数编程风格,异步同步操作,模块化,面向对象等等。都是妥妥的了。

所以,以后碰到前端的代码的时候,不论是看还是写,都可以边查查各种花里胡哨的写法【高级的写法,不要太局限于很早之前的写法了,老早都过时了】

这个标准,很多React,VUE等的主流框架都是支持的,所以使用这些也是会用到这些的。

**然后在这ES6(2015)之后的每年版本都有所更新的样子 (╯‵□′)╯︵┻━┻ **

前端ES6的语法整理相关推荐

  1. 前端面试知识点目录整理

    前端面试知识点目录整理 基本功考察 1.关于Html 1.html语义化标签的理解.结构化的理解:能否写出简洁的html结构:SEO优化. 2.h5中新增的属性,如自定义属性data.类名classN ...

  2. es6基本语法,vue基本语法

    一.es6基本语法 0.es6参考网站 http://es6.ruanyifeng.com/#README 1.let 和 const (1)const特点: 只在局部作用域起作用 不存在变量提升 不 ...

  3. 前端常见图片格式整理

    前端常见图片格式整理 PNG (Portable Network Graphics,便携式网络图形,1996) PNG有8位.24位.32位三种形式,其中8位PNG支持两种不同的透明形式(索引透明和a ...

  4. JavaScript 精选:哪些能提高开发效率的es6 新语法糖

    文章目录 一 ECMAScript 相关介绍 1 什么是 ECMA 2 什么是 ECMAScript 3 什么是 ECMA-262 4 谁在维护 ECMA-262 5 为什么要学习 ES6 6 ES6 ...

  5. ES6新语法及vue基础

    https://www.angularjs.net.cn/ es6新语法:(多看多用) 1 字符串方法 //字符串方法 includes包含// let str="ijahsdjkhasd& ...

  6. 各式 Web 前端開發工具整理

    各式 Web 前端開發工具整理 這裡收集了一系列各式各樣與「網頁前端」相關的開發工具.函式庫與參考文件,這些工具僅針對一般桌上型/筆記型電腦的顯示環境為主 (不含平板或手機等行動版網頁相關工具). 程 ...

  7. 前端开发学习书籍整理,拥有此书,如有神助!

    一. html + css 这部分建议在 w3school 在线教程 上学习,边学边练,每个属性后还有在线测试. 然后过一遍之后可以模仿一些网站做些页面.记住这个一定要多练 多练 多练 ,最重要的事儿 ...

  8. WEB前端ES6知识点【笔记】

    目录 前言 声明变量 let变量 const声明变量 变量的解构赋值 ES6新引入字符串 简化对象写法 ES6箭头函数及声明特点 案例 前言 自学尚硅谷前端ES6 web前端自学ES6部分,简单记一点 ...

  9. 尚硅谷Web前端ES6教程详细笔记,涵盖ES6-ES11

    1 ES介绍 2 ES6的新特性 2.1 let关键字 2.1.1 声明变量 let a; let b,c,d; let e=100; let f=521,g="iloveyou" ...

最新文章

  1. 多线程模式之MasterWorker模式
  2. 关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法
  3. SpringBoot(2)之自定义配置
  4. java中io与nio复制文件性能对比
  5. React开发(164):React中this.props.children续集
  6. Python 3 实现冒泡排序
  7. 数据库系统概论第五版(王珊)-基础篇(三)
  8. ARM-LINUX平台下的文本文件打印机打印
  9. 【读书笔记】【未】杀死一只知更鸟
  10. java 支付宝转账_支付宝api实现转账到单个账号
  11. 低代码真的是“行业毒瘤”?
  12. 大力呼吁国内Fil厂商利用IPFS技术赋能实体经济,实现数据安全存储,已十分重要且紧迫了
  13. 设计模式:设配器模式
  14. Android——基本组件-2
  15. 如何制作一个高转化的广告落地页(文末有福利)
  16. [旋转卡壳]最大土地面积 AcWing2617
  17. OpenGL 环境配置教程-库文件汇总【glfw/glew/glad/glm/std_img】
  18. 【论文翻译】 BMN: Boundary-Matching Network for Temporal Action Proposal Generation
  19. 高质量捕捉动态场景的Photoneo 3D相机
  20. 手机锂电池充电什么时候好?

热门文章

  1. pythonic 代码_15个Pythonic的代码示例(值得收藏)
  2. 分析软件——ADS-B和雷达覆盖分析软件
  3. UVA 537 解题报告
  4. 计算机常见竞赛大盘点!
  5. 万字综述梳理ChatGPT----一文搞懂弄潮儿ChatGPT技术原理、行业现状、投资前景
  6. 阅读文献Evaluation of dynamic route planning impact on vehicular communications with SUMO
  7. Android Studio 快捷键--MAC版详解
  8. vue+elementUI实战之网易云音乐--半月总结!!!
  9. fastadmin 子账号看不到菜单,菜单没有查看,编辑等选项
  10. Word文档在线翻译使用的软件