ES5&ES6新特性 淡淡的烟草味﹌ 2022-04-11 12:13 342阅读 0赞 ## ES5和6的一些新特性 ## **1、let和const** var有一个问题,就是定义的变量有时会莫名奇妙的成为全局变量。 for(var i = 0; i < 5; i++){ console.log(i); } console.log("循环外:" + i) 1、let所声明的变量,只在let命令所在的代码块内有效。 2、const声明的变量是常量,不能被修改 会报错: for(let i = 0; i < 5; i++){ console.log(i); } console.log("循环外:" + i) ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nzd3F6eA_size_16_color_FFFFFF_t_70][] **2、字符串扩展** ES6为字符串扩展了几个新的API: - includes():返回布尔值,表示是否找到了参数字符串。 - startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。 - endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。 **3、解构表达式** 数组解构: let arr = [1,2,3] const [x,y,z] = arr;// x,y,z将与arr中的每个位置对应来取值 // 然后打印 console.log(x,y,z); 对象解构: const person = { name:"jack", age:21, language: ['java','js','css'] } // 解构表达式获取值 const {name,age,language} = person; // 打印 console.log(name); console.log(age); console.log(language); **4、函数优化** 现在的写法: function add(a=2 , b = 1) { return a + b; } // 传一个参数 console.log(add(10)); 箭头函数: 一个参数: let print = function (obj) { console.log(obj); } // 简写为: let print2 = obj => console.log(obj); 多个参数: // 两个参数的情况: var sum = function (a , b) { return a + b; } // 简写为: var sum2 = (a,b) => a+b; 代码不止一行,可以用`{}`括起来 var sum3 = (a,b) => { return a + b; } 对象的函数属性简写、person对象、有eat方法 let person = { name: "jack", // 以前: eat: function (food) { console.log(this.name + "在吃" + food); }, // 箭头函数版: eat2: food => console.log(person.name + "在吃" + food),// 这里拿不到this // 简写版: eat3(food){ console.log(this.name + "在吃" + food); } } 箭头函索结合解构表达式: const person = { name:"jack", age:21, language: ['java','js','css'] } function hello(person) { console.log("hello," + person.name) } 或写成 var hi = ({name}) => console.log("hello,"+ name); **5、map和reduce** map():接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。 reduce():接收一个函数(必须)和一个初始值(可选),该函数接收两个参数: - 第一个参数是上一次reduce处理的结果 - 第二个参数是数组中要处理的下一个元素 转为int数组 let arr = ['1','20','-5','3']; console.log(arr) arr = arr.map(s => parseInt(s)); console.log(arr) const arr = [1,2,-3,3]; arr.reduce((a,b)=> a+b) 显示:3 **6、promise** 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。 **7、set和map** Set,本质与数组类似。不同在于Set中只能保存不同元素,如果元素相同会被忽略。 map,本质是与Object类似的结构。不同在于,Object强制规定key只能是字符串。而Map结构的key可以是任意对象。即: * object是 <string,object>集合 * map是<object,object>集合 * // map接收一个数组,数组中的元素是键值对数组 const map = new Map([ ['key1','value1'], ['key2','value2'], ]) // 或者接收一个set const set = new Set([ ['key1','value1'], ['key2','value2'], ]) const map2 = new Map(set) // 或者其它map const map3 = new Map(map); **8、模块化** 模块化就是把代码进行拆分,方便重复利用 、模块功能主要由两个命令构成:`export`和`import`。 * `export`命令用于规定模块的对外接口, * `import`命令用于导入其他模块提供的功能。 定义一个对象: const util = { sum(a,b){ return a + b; } } 使用export将这个对象导出: const util = { sum(a,b){ return a + b; } } export util; 可简写: export const util = { sum(a,b){ return a + b; } } 导出多个值时 var name = "jack" var age = 21 export {name,age} 可简写 // 无需声明对象的名字 export default { sum(a,b){ return a + b; } } 导入上面的util // 导入util import util from 'hello.js' // 调用util中的属性 util.sum(1,2) 导放name和age属性 import {name, age} from 'user.js' console.log(name + " , 今年"+ age +"岁了") **9、对象扩展** - keys(obj):获取对象的所有key形成的数组 - values(obj):获取对象的所有value形成的数组 **10、数组扩展** find(callback):把数组中的元素逐个传递给函数callback执行,如果返回true,则返回该元素 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nzd3F6eA_size_16_color_FFFFFF_t_70]: /images/20220411/5b5d03f969a14ed5ad24cf694ac3cc34.png
相关 ES6新特性 文章目录 一、ECMASript 介绍 二、ES6 新特性 2.1 let、const 关键字 2.2 变量的解构赋值 ゝ一世哀愁。/ 2022年09月06日 15:27/ 0 赞/ 282 阅读
相关 ES5&ES6新特性 ES5和6的一些新特性 1、let和const var有一个问题,就是定义的变量有时会莫名奇妙的成为全局变量。 for(var i = 0; i < 淡淡的烟草味﹌/ 2022年04月11日 12:13/ 0 赞/ 343 阅读
相关 ES5或ES6常用的一些新特性 ECMAscript5或ECMAscript6的常用新特性: let 相较于 var ,let是块级别的: for (var i = 0 ; i<3 ; i++ 不念不忘少年蓝@/ 2022年03月27日 01:28/ 0 赞/ 266 阅读
相关 es6新特性 1.let && const •都是块级作用域 •不能重复定义 •避免了变量提升 ① let命令也用于声明对象,但是作用域为局部。 ![在这里插入图片描述][ 红太狼/ 2022年03月07日 21:24/ 0 赞/ 374 阅读
相关 es6新特性 es6语法 > es6语法用起来是十分方便的,但是有些浏览器还是不支持,但是做大型项目中基本上要用到转码器(babel转码器),可以把es6语法转为es5直接使用。 T 落日映苍穹つ/ 2022年01月25日 15:30/ 0 赞/ 374 阅读
相关 ES6新特性 转:[https://www.jianshu.com/p/87008f4f8513][https_www.jianshu.com_p_87008f4f8513] co Bertha 。/ 2022年01月12日 02:19/ 0 赞/ 346 阅读
相关 ES6新特性 转自:[https://www.jianshu.com/p/87008f4f8513][https_www.jianshu.com_p_87008f4f8513] 1.con 冷不防/ 2021年12月18日 07:07/ 0 赞/ 351 阅读
相关 es6新特性 https://www.cnblogs.com/minghui007/p/8177925.html 转载于:https://www.cnblogs.com/LWWTT/p/1 野性酷女/ 2021年11月02日 14:58/ 0 赞/ 512 阅读
相关 ES6新特性 1.变量声明let和const 在ES6以前,var关键字声明变量。无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。这就是函数变量提升例如: 我会带着你远行/ 2021年10月29日 07:08/ 0 赞/ 523 阅读
相关 ES6新特性 1.声明变量的关键字:const 和 let JavaScript ES6中引入了另外两个声明变量的关键字:const和let。在ES6中,我们将很少能看到var了。 co 电玩女神/ 2021年09月17日 01:12/ 0 赞/ 510 阅读
还没有评论,来说两句吧...