当前位置:首页 > 技术分析 > 正文内容

ES6 新增了哪些新特性 (二)(es6新增了哪些东西)

ruisui885个月前 (02-03)技术分析27

关于 ES6规范及新特性

对象字面量申明增强

ES6 之前,申明对象字面量方式其实就是直接定义一个json对象.存在的仅仅是对象的属性和值.

ES6 之后,对象字面量被扩展支持直接设置原型,简洁属性赋值和方法,超类调用,这也让对象字面量和类声明的关系更密切,并让基于对象的设计更便利

ES6之前:

var obj = {

__proto__: theProtoObj,

// 下面的写法不会设置内部原型

'__proto__': theProtoObj,

// 方法

toString() {

// 调用父对象的方法

return "d " + super.toString();

},

// 属性名是一个表达式

[ "prop_" + (() => 42)() ]: 42

};

proto: theProtoObjproto属性需要原生支持,这一属性在ECMAScript前一个版本中一度被废弃,目前 ES6 再度使用起来.

'proto': theProtoObj上面这种设置内部原型的方法不会被支持, proto 并不是一个字符串,所以这种字符串设置方式不会被支持.

对象字面量支持方法调用:toString(){//调用父级对象的方法return "d " + super.toString();}

//属性名支持表达式[ “prop_” + (() => 42)() ]

模版字符串

允许对字符串构建的定制化,避免注入攻击或其他需求

// 普通字符串

`This is a string.`

// 多行字符串

`This is

a string.`

// 字符串中嵌入变量

var name = "world", time = "today";

`Hello ${name}, how are you ${time}?`

// 模版标签

String.raw`In ES5 "\n" is a line-feed.`

// 下面构造一个HTTP请求头,来解释差值替换和构造

GET`http://foo.org/bar?a=${a}&b=${b}

Content-Type: application/json

X-Credentials: ${credentials}

{ "foo": ${foo},

"bar": ${bar}}`(myOnReadyStateChangeHandler);

函数默认参数

ES6 终于支持参数默认值了

function f(x, y=12) {

// 如果不传递y或传递undefined,y的值为12

return x + y;

}

f(3) == 15

Let

它的功能是定义变量,当时和 var 有很大区别.let 定义的变量只有在它所在的代码块内有效.它解决了一个问题,javascript 存在很大的缺陷就是没有作用域,所以定义的变量互相覆盖.

Let 的出现成功解决了这个问题.

function test() {

{

let m{

m=100;

}

// let变量可以再次赋值

m=200;

// 在块作用域中重复声明将会报错,如下

let x = 300;

}

}

Const

const也用来声明变量的关键字,但是它声明的是常量.在 let 代码块中不能使用 Const 申明常量

如下代码是不允许的:

function test() {

{

let x;

{

// 块作用域

const x = "test"; //不允许这样代码块中的常量定义

}

}

}

支持换行

如果没有模板字符串,对于一个长字符串,你大概要写成这样的:

var sql =

"SELECT * FROM Users " +

"WHERE FirstName='Mike' " +

"LIMIT 5;"

当然也可以这样通过数组的形式实现:

var sql = [

"SELECT * FROM Users",

"WHERE FirstName='Mike'",

"LIMIT 5;"

].join(' ')

现在 ES6 支持这样的方式实现换行:

let sql = `

SELECT * FROM Users

WHERE FirstName='Mike'

LIMIT 5;

`

出自:一介布衣博客

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/695.html

分享给朋友:

“ES6 新增了哪些新特性 (二)(es6新增了哪些东西)” 的相关文章

「干货」Vue+Element前端导入导出Excel

作者:xrkffgg转发链接:https://segmentfault.com/a/11900000189936191 前言1.1 业务场景由前台导入Excel表格,获取批量数据。根据一个数组导出Excel表格。2 实现原理2.1 引入工具库file-saver、xlsx、script-loader...

thinkphp8+vue3微信小程序商城,发布公众号App+SAAS+多商户

项目介绍三勾小程序商城基于thinkphp8+vue3+element-ui+uniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。支持主题色+自定义头部导航+自定义...

快来看看重构了 365 天的 vue3.5 这次到底更新了啥

新人求关注?,点击右上角 ↗? 关注,博主日更,全年无休,您的关注是我的最大的更新的动力~ 感谢大家了 就在 9 月 1 号,迭代了一年多的 Vue 3.5 终于发布了,这次发布的代号是 "天元突破 红莲螺岩"。这是一个机器人动画片的名字,相信喜欢看动漫的小伙伴应该很熟悉从更新的 C...

微信将研发“应用号”体系 或成为App大杂烩应用

Akiha发表于 2016-01-11 18:11微信正在探讨一种新的公众号形态,即在现有的订阅号、服务号之外,再研发新的“应用号”体系。让用户不必去装各种 App,在微信里就能实现各种服务、功能;关注后,“应用号”平时不向用户发送消息,需要时,用户再去点开“应用号”等。目前,微信钱包内已有的服务,...

2022年甘肃特岗、三支一扶、西部计划报名通知

报名时间2022年6月7日9:00至6月11日18:00报名网站甘肃省人力资源考试中心(http://ks.rst.gansu.gov.cn)准考证打印时间2022年6月27日9∶00至7月2日9∶00考试时间和地点2022年7月2日考试地点以准考证上指定的地点为准成绩查询时间7月22日左右点击下方...

「go商城」gin+vue跨域问题

什么是跨域?浏览器有一个安全机制叫同源策略。同源就是指协议、域名、端口都一样,如果任意一项不一致就是不同源。简单点说就是,你的网页URL和你调用的接口URL不是一个地方的,浏览器觉得有安全风险,不想让你使用这个接口的数据。跨域的现象当我们在本地启动前、后端代码进行调试时,如果使用postman等类似...