[转帖]分享ES6 常用的几个方法
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
1.什么是ES6 ?ESMAscript 6.0(以下简称 2.了解Babel转码器Babel是一个广泛使用的 // 转码前 input.map(item => item + 1); // 转码后 input.map(function(item){ return item + 1; }) 上面的原始代码用了箭头函数, 我们也可以通过官方提供的REPL在线编译器来体验 3.变量的解构赋值
3.1 数组的解构赋值在之前;我们给变量赋值只能直接指定一个变量值 let a = 12; let b = 11; let c = 10; 在 let [a, b, c] = [1, 2, 3]; 上面的代码表示,可以从数组中提取数值,按照对应的位置,对变量赋值。本质上,这种写法属于"匹配模式",只要等号两边的模式相同,左边的变量就会被赋予对应的值,而解构赋值允许指定的默认值。 3.2 对象的解构赋值对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值: 语法: const JsonData = { name: "小彭", id: 727, status: "OK", data: [867, 5309], otherData1: 18, otherData2: ['www', 'itsource', 'cn'], otherData3: { a: 1 } } console.log(JsonData.name,JsonData.id); 3.3 函数参数的解构赋值函数的参数也可以使用解构赋值;并且也一样可以使用默认值。函数 function sum([a,b]){ return a + b; } sum([1,7]); 4.展开运算符展开运算符也叫扩展运算符。 语法: (...); 除此之外,扩展运算符也可以展开数组和对象;并且可以对数组和对象进行浅拷贝、合并的功能;也可以将伪数组转换为真数组。 5.模板字符串对于传统的 $('#result').append( 'There are <b>' + basket.count + '</b> ' + 'items in your basket, ' + '<em>' + basket.onSale + '</em> are on sale!' ); 这种写法相当的繁琐,所以在ES6引入了模板字符串来解决繁琐等的诸多问题。 $('#result').append(` There are <b>${basket.count}</b> items in your basket, <em>${basket.onSale}</em> are on sale! `); 模板字符串是增强版的字符串,用反引号 6.对象的简洁写法ES6中对象的属性和方法都有简写形式。 它的写法就是如果键名和键值的属性名是一样时,可以只写一个。对于函数来说;可以省略 let name = "小彭"; let age = 22; let gender = "male"; let person = { name, age, gender, // 省略 冒号(:)和function hobby () { console.log("爱好和平"); }, color () { console.log("蓝色"); } } console.log(person); 7.class7.1 class的由来在 // 类(构造函数) function Person(name, age){ // 定义实例属性 this.name = name; this.age = age; } // 添加原型方法 Person.prototype.show = function () { console.log("我是原型方法"); } // 创建实例对象 let per = new Person("花开富贵", 22); // 添加静态方法。静态方法是属于类自己的,实例对象调用不了。 Person.say = function (){ console.log("我是静态方法"); } 7.2 class的写法
class Test{ // 一般固定的属性会放在外层 eye = 2; leg = 2; constructor(name, age, gender){ this.name = name; this.age = age; this.gender = gender; } show () { console.log("原型方法"); } // 静态方法 static () { console.log("静态方法"); } } // 实例化对象 let obj = new Test("小彭", 22, "male"); console.log(obj); 7.3 class 继承使用 继承中的属性或者方法查找原则:就近原则;先看自身有没有这个属性或者方法,有则用;如果没有,则查找父类,若有,则用。 // 狗狗继承动物 class Animal { //构造器 eye = 2; constructor(name, age){ this.name = name; this.age = age; }
color () { console.log("毛发细润呈白"); } static hobby() { console.log("躺平"); } }
class Dog extends Animal { // 构造器 // ES6 要求,子类的构造函数必须执行一次super函数。 constructor(name,age) { super(name,age); } } let dogs = new Dog("富贵", 2); console.log(dogs); 8.ES6 模块化什么是模块化 ? 一个 模块功能主要由两个命令构成:
8.1 语法一导出/暴露:
导入:
步骤 :
8.2 语法二语法二的引用过程和语法是一模一样的。 导出: 导入: 使用 8.3 ES6 模块化的优势写法之外,相较于 静态加载,也叫编译时加载,它的好处是: (1)编译时就能完成模块加载,加载效率要比运行时高得多; (2)使得「静态分析」成为可能。有了它,就能进一步拓宽 ————————————————————————— 该文章在 2023/5/25 17:24:34 编辑过 |
关键字查询
相关文章
正在查询... |