es5和es6 的区别?

ES5 和 ES6 的区别

ECMAScript5,即 ES5,是 ECMAScript 的第五次修订,于 2009 年完成标准化

ECMAScript6,即 ES6,是 ECMAScript 的第六次修订,于 2015 年完成,也称 ES2015

ES6 是继 ES5 之后的一次改进,相对于 ES5 更加简洁,提高了开发效率.

ES6 的新增方法

1、新增声明命令 let 和 const

在 ES6 中通常用

let 和 const 来声明,let 表示变量、const 表示常量

1.1)特点

let 和 const

都是块级作用域。以{}代码块作为作用域范围 只能在代码块里面使用

不存在变量提升,只能先声明再使用,否则会报错。在代码块内,在声明变量之前,

该变量

都是不可用的。这在语法上,称为"暂时性死区"

(temporal dead zone,简称 TDZ,

在同一个代码块内,不允许重复声明

const 声明的是一个只读常量,在声明时就需要赋值。(如果 const 的是一个对象,对

象所包含的值是可以被修改的。抽象一点儿说,就是对象所指向的地址不能改变,而

变量成员 是可以修改的。)

2、模板字符串(Template String)

用一对反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,也可以

在字符串中嵌入变量,js 表达式或函数,变量、js 表达式或函数需要写在${ }中。

3、函数的扩展

3.1)函数的默认参数

ES6 为参数提供了默认值。在定义函数时便初始化了这个参数,以便在参数没有被传递

进去时使用。

3.2)箭头函数

在 ES6 中,提供了一种简洁的函数写法,我们称作"箭头函数"。

3.2.1)写法

函数名=(形参)=>{......}

当函数体中只有一个表达式时,{}和 return 可以省

略当函数体中形参只有一个时,()可以省略。

3.2.2)特点

箭头函数中的 this 始终指向箭头函数定义时的离 this 最近的一个函数,如果没有最

近的函数就指向 window。

4、对象的扩展

4.1)属性的简写

ES6 允许在对象之中,直接写变量。这时,属性名为变量名, 属性值为变量 的值。

java 复制代码
var foo = 'bar';
var baz = {foo};
 //等同于 var baz = {foo: foo}; 方法的简写。省略冒号与 function 关键字。
var o = { method() { return "Hello!"; } };
// 等同于
var o = { method: function() { return "Hello!"; } };
4.2)Object.keys()方法

获取对象的所有属性名或方法名(不包括原形的内容),返回一个数组。

java 复制代码
var obj={name: "john", age: "21", getName: function () { alert(this.name)}}; 
 
console.log(Object.keys(obj)); // ["name", "age", "getName"] 
 
console.log(Object.keys(obj).length); //3 
 
console.log(Object.keys(["aa", "bb", "cc"])); //["0", "1", "2"] 
 
console.log(Object.keys("abcdef")); //["0", "1", "2", "3", "4", "5"]
相关推荐
To_OC2 小时前
别再串行写 await 了,Promise.all 才是并行请求的正确打开方式
前端·javascript·promise
vipbic3 小时前
中后台越做越乱后,我用插件化把它救回来了
前端·vue.js
Hyyy3 小时前
Computer Use 适合做什么,不适合做什么——一次真实使用后的思考
前端
小和尚同志3 小时前
前端 AI 单元测试思考与落地
前端·人工智能·aigc
invicinble4 小时前
c端系统,其实更像一个信息展示平台
前端
你怎么知道我是队长5 小时前
JavaScript的变量和数据类型介绍
开发语言·javascript·ecmascript
李姆斯5 小时前
管理是否可以被完全量化
前端·产品经理·团队管理
名字还没想好☜6 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司6 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能
江华森7 小时前
Web 开发基础:HTTP 与 REST
前端·网络协议·http