关于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 text()要注意啦
Oct 30 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 Javascript
JS 树形递归实例代码
May 18 Javascript
Jquery从头学起第四讲 jquery入门教程
Aug 01 Javascript
JavaScript作用域与作用域链深入解析
Dec 06 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
简单实现jquery焦点图
Dec 12 Javascript
Javascript自定义事件详解
Jan 13 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
Dec 22 Javascript
vue.js实现标签页切换效果
Jun 07 Javascript
详解如何理解vue的key属性
Apr 14 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
PHP脚本的10个技巧(4)
2006/10/09 PHP
简单PHP上传图片、删除图片实现代码
2010/05/12 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
php实现Session存储到Redis
2015/11/11 PHP
php经典趣味算法实例代码
2020/01/21 PHP
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
原生JS实现跑马灯效果
2017/02/20 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
python函数与方法的区别总结
2019/06/23 Python
wxPython实现整点报时
2019/11/18 Python
Python列表解析操作实例总结
2020/02/26 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
Python 如何创建一个线程池
2020/07/28 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
原装进口全世界:天猫国际
2016/08/03 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
法律进机关实施方案
2014/03/12 职场文书
青春奉献演讲稿
2014/05/08 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
工作态度怎么写
2015/06/25 职场文书
初中美术教学反思
2016/02/17 职场文书
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
python3中apply函数和lambda函数的使用详解
2022/02/28 Python