关于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 相关文章推荐
javascript开发技术大全-第3章 js数据类型
Jul 03 Javascript
js实现addClass,removeClass,hasClass的函数代码
Jul 13 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
Jan 16 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
Jan 03 Javascript
js动态删除div元素基本思路及实现代码
May 08 Javascript
js实现DOM走马灯特效的方法
Jan 21 Javascript
JavaScript中数组的合并以及排序实现示例
Oct 24 Javascript
轻松实现js图片预览功能
Jan 18 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
Jan 11 Javascript
js实现随机抽选效果、随机抽选红色球效果
Jan 13 Javascript
详解vue中this.$emit()的返回值是什么
Apr 07 Javascript
vue实现移动端省市区选择
Sep 27 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绘制圆形的方法
2015/01/24 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
python关于变量名的基础知识点
2020/03/03 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
web字体加载方案优化小结
2019/11/29 HTML / CSS
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
自荐信封面
2013/12/04 职场文书
毕业生的自我评价
2013/12/30 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
2014公司年终工作总结
2014/12/19 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
golang 实现并发求和
2021/05/08 Golang
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python