ECMAScript
gdjlc
这个作者很懒,什么都没留下…
展开
-
深入理解ES6读书笔记10:模块
模块使用不同方式加载的JS文件。模块化分为导出(export)@与导入(import)两个模块。特点:(1)模块自动开启严格模式;(2)每一个模块内声明的变量都是局部变量;(3)模块中可以导入和导出各种类型的变量;(4)每一个模块只加载一次(是单例的),若再去加载同目录下同文件,直接从内存中读取;(5)对于需要让模块外部代码访问的内容,模块必须导出它们;基本的导出使用export关键字将已发布代码部分公开给其他模块。新建一个example.js文件,内容如下:// 导出数.原创 2021-03-22 09:08:16 · 135 阅读 · 0 评论 -
深入理解ES6读书笔记9:数组扩展
Array.of()与Array.from()方法ES6之前创建数组使用Array构造器与数组字面量写法。ES6新增了Array.of()与Array.from()方法。Array.of():创建一个包含所有传入参数的数组,不管参数的数量与类型。Array.from():将可迭代对象或者类数组对象转换为数组。let items1 = new Array(); //创建数组,使用Array构造器let items2 = new Array(3); //创建数组,只有一个参数且为整数类型.原创 2021-03-22 09:05:29 · 146 阅读 · 0 评论 -
深入理解ES6读书笔记8:类
ES6新增了类。类的创建方式有:类声明、类表达式、具名类表达式。//类声明 class PersonClass {//类表达式 let PersonClass = class{//具名类表达式 let PersonClass = class PersonClass2{class PersonClass{ //构造器 constructor(name){ this.name = name; } //方法 sayName(){ .原创 2021-03-22 09:04:22 · 119 阅读 · 0 评论 -
深入理解ES6读书笔记7:迭代器与生成器
迭代器是被设计专用于迭代的对象,带有特定接口。所有的迭代器对象都拥有 next() 方法,会返回一个结果对象。该结果对象有两个属性:对应下一个值的 value ,以及一个布尔类型的 done ,其值为 true 时表示没有更多值可供使用。ES5中创建一个迭代器function createIterator(items) { var i = 0; return { next: function() { var done = (i >.原创 2021-03-22 09:02:43 · 105 阅读 · 0 评论 -
深入理解ES6读书笔记6:Set和Map
Set 是不包含重复值的列表。Map 是键值对的有序列表,键和值都可以是任意类型。一、Set1、Set的创建、增加、删除、和数组互转等//创建Set和添加项目let set = new Set(); set.add(5);set.add(5); //多次添加相同值,只保留第一个set.add("5");console.log(set.size); // 2//使用数组来初始化一个 Setlet set2 = new Set([1, 2, 3, 4, 5, 5, 5, 5.原创 2021-03-22 09:01:11 · 108 阅读 · 0 评论 -
深入理解ES6读书笔记5:解构
解构是将一个数据结构分解为更小部分的过程。一、对象解构对象的属性值存储到本地变量。let node = { type: "Identifier", name: "foo"};let { type, name } = node;console.log(type); // "Identifier"console.log(name); // "foo"说明:使用解析配合var、let、const声明变量时,必须初始化。例如下面会报错。let { typ..原创 2021-03-22 08:58:40 · 103 阅读 · 0 评论 -
深入理解ES6读书笔记4:扩展的对象功能
一、对象字面量语法的扩展1、属性初始化器的简写ES6中函数的属性名和参数名相同时,可以省略属性名后面的冒号和值。因为当对象字面量中的属性只有名称时,JS 引擎会在周边作用域查找同名变量。//ES5及更早版本function createPerson1(name, age){ return{ name: name, age: age };}var person1 = createPerson1('张三', 20);console.lo.原创 2021-03-22 08:56:41 · 136 阅读 · 0 评论 -
深入理解ES6读书笔记3:函数
参数默认值未提供参数,或将参数值指定为undefined时,默认值会被使用。function add(a, b = 2, c = 3){ let result = a + b + c; console.log(result);}add(1); //6add(1,2); //6add(1,undefined,4); //7add(1,null,4);参数默认值表达式参数默认值除了是基本类型的值,也可以执行一个函数来产生默认值。function...原创 2021-03-22 08:55:00 · 106 阅读 · 0 评论 -
深入理解ES6读书笔记2:模板字面量
模板字面量提供了创建领域专用语言(domain-specific language,DSL)的语法,处理内容更安全。模板字面量的最简单语法,是使用反引号( ` )来包裹普通字符串。字符串中包含反引号,使用反斜杠( \ )转义。let message = `Hello world!`;console.log(message); // "Hello world!"console.log(typeof message); // "string"console.log(message.length)原创 2021-03-22 08:52:32 · 135 阅读 · 0 评论 -
深入理解ES6读书笔记1:块级绑定
var 声明与变量提升使用 var 关键字声明的变量,无论其实际声明位置在何处,都会被视为声明于所在函数的顶部(如果声明不在任意函数内,则视为在全局作用域的顶部)。这就是变量提升,不过变量的声明虽然被提升到了顶部,但初始化工作还保留在原处。function getValue(condition) { if (condition) { var value = "blue"; // 其他代码 return value; } else.原创 2021-03-21 08:53:00 · 140 阅读 · 0 评论 -
ECMAScript6中箭头函数的基本用法
箭头函数的作用是更简短的函数并且不绑定this。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。箭头函数在“=>”的左边是参数,参数可空或多个。右边的是函数体,有一个“简写体”或“块体”,在一个“简写体”中,只需要一个表达式,并附加一个隐式的返回值。在“块体”中,必须使用明确的return语句。语法://没有参数,使用一对圆括号() => { statements }//只有一个参数,圆括号可选(singleParam) => { .原创 2021-03-21 08:49:41 · 173 阅读 · 0 评论 -
ECMAScript7中async await的基本用法
async await主要功能可以简化Promise then写法,代码更简洁。async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。await命令只能用在async函数之中。例子,用Promise then实现: function f1(){ var p = new Promise(function(resolve, reject){ .原创 2021-03-21 08:47:54 · 242 阅读 · 0 评论 -
ECMAScript6中Promise对象的基本用法
Promise是处理异步代码的一种方法,避免了层层嵌套的回调函数,且支持链式操作。Promise 对象代表一个异步操作,有三种状态:pending: 初始状态,不是成功或失败状态。fulfilled: 意味着操作成功完成。rejected: 意味着操作失败。Promise 对象的状态改变,只有两种可能:从 Pending 变为 Resolved 和从 Pending 变为 Rejected。一、Promise的创建Promise的构造函数接收一个函数作为参数,该函数的两个参数:resol原创 2021-03-21 08:45:53 · 162 阅读 · 0 评论