关于ES6的六个小特性(二)


Posted in Javascript onFebruary 20, 2017

前言

Javascript 团体的每个人都喜欢新的API,语法更新以及特性,它们提供了更好的,更智能,更有效的方式以完成重要的任务。

继上一篇的 《简单谈谈ES6的六个小特性》,这次我再分享6个可以减少代码和最大化效率的方法。

1.Object Shorthand

新的对象声明方法允许我们可以不声明对象的 key :

var x = 12;
var y = yes;
var z = {one:'1',two:'2'};

// The old way
var obj = {
 x:x,
 y:y,
 z:z
}
// The new way
var obj = {x,y,z};

2.Method Properties

避免 function 关键字声明函数:

var davidwalsh = {
 makeItHappen(param){
 // do stuff
 }
}

必须承认去除掉 function 关键字确实使代码简洁、更好维护。

3.Blocks vs Immediately Executed Functions

下面创建立即执行方法的模式有点难看:

(function(){
 // do stuff
})();

通过ES6我们可以通过 {} 和 let 来创建块级作用于,完成立即执行函数的作用:

{
 let j = 12;
 let divs = document.querySelectorAll('div');

 // do stuff
}

j; // ReferenceError: j is not defined...

如果在 Block 内部声明函数,它将会被外部访问到。但你如果使用 let 关键字声明函数自变量,将不使用括号的情况下实现 IEF 的功能。

4. for loops and let

因为在JS里面会存在变量提升,我们经常会在作用域前面声明一些”无用”的迭代变量,例如(for var x = …)。ES6 使用 let 解决了此恼人的问题:

for(let x = 0; x < len; i++){
 //do stuff
}

x; // ReferenceError: x is not defined

不久以后 let 会被应用的更多。

5.get and set for Classes

class Cart{
 constructor(total){
 this._total = total;
 }
 get total(){return this._total;}
 set total(v){this._total = Number(v);}
}

var cart = new Cart(100);

cart.total // 100

能为属性设置 get、set 是这部分最棒的。不需要使用函数来进行特殊的设定?当执行 obj.prop = {value} 时,一切都会自动执行。

6.startsWith,endsWith and includes

"MooTools".startsWith("Moo"); // true;
"MooTools".startsWith("moo"); // false;

"MooTools".endsWith("Tools"); // true;

"MooTools".includes("oo"); // true;

注:includes 方法兼容性还是很多,曾有一个线上bug,就是因为不支持此方法导致的。

原文:https://davidwalsh.name/es6-features-ii/amp

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
JQuery性能优化的几点建议
May 14 Javascript
JavaScript中九种常用排序算法
Sep 02 Javascript
Javascript中的作用域和上下文深入理解
Jul 03 Javascript
Javascript实现前端简单的路由实例
Sep 11 Javascript
JQuery ZTree使用方法详解
Jan 07 Javascript
详解网站中图片日常使用以及优化手法
Jan 09 Javascript
bootstrap suggest搜索建议插件使用详解
Mar 25 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
Jul 27 Javascript
Vue.js实现实例搜索应用功能详细代码
Aug 24 Javascript
微信小程序实现搜索指定景点周边美食、酒店
May 18 Javascript
layui使用label标签的方法
Sep 14 Javascript
Vue computed 计算属性代码实例
Apr 22 Javascript
JavaScript 总结几个提高性能知识点(推荐)
Feb 20 #Javascript
JS批量替换内容中关键词为超链接
Feb 20 #Javascript
网页中右键功能的实现方法之contextMenu的使用
Feb 20 #Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
Feb 20 #Javascript
Angular.js跨controller实现参数传递的两种方法
Feb 20 #Javascript
Bootstrap table右键功能实现方法
Feb 20 #Javascript
BootstrapTable refresh 方法使用实例简单介绍
Feb 20 #Javascript
You might like
ASP知识讲座四
2006/10/09 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
批量实现面向对象的实例代码
2013/07/01 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
js选项卡的制作方法
2017/01/23 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
Python GUI编程完整示例
2019/04/04 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
深入浅析Python代码规范性检测
2020/07/31 Python
Foreo国际站:Foreo International
2018/10/29 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
自我反省检讨书
2014/01/23 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
供应链金融服务方案
2014/05/25 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
村干部任职承诺书
2015/01/21 职场文书
PL350与SW11的比较
2021/04/22 无线电