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

发布时间 - 2026-01-10 23:10:01    点击率:

前言

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

总结

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


# es6的新特性  # es6新特性  # es6特性  # ES6新特性之模块Module用法详解  # ES6新特性之解构、参数、模块和记号用法示例  # ES6中非常实用的新特性介绍  # 简单谈谈ES6的六个小特性  # ES6的新特性概览  # ES6新特性之字符串的扩展实例分析  # ES6新特性之函数的扩展实例详解  # ES6新特性之Symbol类型用法分析  # ES6(ECMAScript 6)新特性之模板字符串用法分析  # ES6新特性之变量和字符串用法示例  # ES6中module模块化开发实例浅析  # 我们可以  # 将会  # 不需要  # 每个人  # 不久以后  # 一切都  # 会在  # 这部  # 线上  # 我再  # 不支持  # 这篇文章  # 上一篇  # 但你  # 能为  # 将不  # 曾有  # 最棒  # 可以减少  # 更有效 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用VPS主机快速搭建个人网站?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  网站页面设计需要考虑到这些问题  详解Android图表 MPAndroidChart折线图  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel怎么使用Intervention Image库处理图片上传和缩放  如何自定义建站之星模板颜色并下载新样式?  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  nginx修改上传文件大小限制的方法  高端建站三要素:定制模板、企业官网与响应式设计优化  青岛网站建设如何选择本地服务器?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  在线制作视频的网站有哪些,电脑如何制作视频短片?  Laravel如何实现API版本控制_Laravel版本化API设计方案  网站建设要注意的标准 促进网站用户好感度!  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  魔方云NAT建站如何实现端口转发?  如何在Windows服务器上快速搭建网站?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Android中AutoCompleteTextView自动提示  Laravel如何实现用户密码重置功能?(完整流程代码)  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  javascript中闭包概念与用法深入理解  JavaScript模板引擎Template.js使用详解  如何快速查询网站的真实建站时间?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  在centOS 7安装mysql 5.7的详细教程  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  如何快速搭建高效简练网站?  如何在建站主机中优化服务器配置?  实例解析angularjs的filter过滤器  如何在服务器上三步完成建站并提升流量?  Laravel如何创建自定义Artisan命令?(代码示例)  如何制作一个表白网站视频,关于勇敢表白的小标题?  C++时间戳转换成日期时间的步骤和示例代码  百度浏览器如何管理插件 百度浏览器插件管理方法  历史网站制作软件,华为如何找回被删除的网站?  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel安装步骤详细教程_Laravel环境搭建指南  JS中对数组元素进行增删改移的方法总结  微信小程序 闭包写法详细介绍  新三国志曹操传主线渭水交兵攻略  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何实现javascript表单验证_正则表达式有哪些实用技巧  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  三星网站视频制作教程下载,三星w23网页如何全屏?