
ES6
CaseyWei
感激每个遇见的人
展开
-
Proxy相比于defineProperty的优势
vue3.0 -- 摒弃Object.defineProperty,基于 Proxy 的观察者机制探索写在前面:11月16日早上,Vue.js的作者尤大大在 Vue Toronto 的主题演讲中预演了Vue.js 3.0的一些新特性,其中一个很重要的改变就是Vue3 将使用 ES6的Proxy 作为其观察者机制,取代之前使用的Object.defineProperty。我相信许多同学深有体会,许多面试中Object.defineProperty是vue这个框架一个出现率很高的考察点,一开始大家对这个..原创 2020-09-08 15:49:15 · 660 阅读 · 0 评论 -
(转)ES6——Set用法
语法set对象允许存储任何类型的唯一值,无论是原始值或者是对象引用;new Set([iterable]) 参数非必需, 如果传递一个可迭代对象,他的所有元素被添加到新的Set中,如果无此参数,则Set为空 返回一个新的Set对象 简述set对象是值的集合,元素只会出现一次,即Set中的元素是唯一的. 值得注意的是,NaN被Set认为是相同的,{}被认为是不同的 var set = new Set([{},{}])set //{{},{}}set原创 2020-09-01 10:30:33 · 176 阅读 · 0 评论 -
(转)ES6——暂时性死区
1、暂时性死区:只要块级作用与内存在let命令,它所声明的变量就绑定(binding)这个区域,不再受外部影响,如:var tmp = 123;if (true) { tmp = 'abc'; // ReferenceError let tmp;}上面代码中,存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后者绑定这个块级作用域,所以在let声明变量前,对tmp赋值会报错。ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明.原创 2020-09-01 10:24:22 · 437 阅读 · 0 评论 -
(转)理解 es6 class 中 constructor 方法 和 super 的作用
首先,ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的。function Point(x, y) { this.x = x; this.y = y;}Point.prototype.toString = function() { return '(' + this.x + ',' + this.y + ')';}等同于class Point { constructor(x, y) { ..原创 2020-07-02 18:14:47 · 442 阅读 · 0 评论 -
(转)ES6——super的理解
ES6 中的继承和 super 的用法大家都不会陌生,可是一问到 super 到底是什么,估计很对人都会回答不上来。在 ES6 中,super 是一个特殊的语法,而且它比 this 还要特殊,有很多用法上的限制。super类似于ES5语法中的call继承class A{ constructor(n){ console.log(n); //=>100; this.x = 100; } getX(){ console..原创 2020-07-02 16:31:14 · 326 阅读 · 0 评论 -
(转)理解和使用ES6中的Symbol
ES6中引入了一种新的基础数据类型:Symbol,不过很多开发者可能都不怎么了解它,或者觉得在实际的开发工作中并没有什么场景应用到它,那么今天我们来讲讲这个数据类型,并看看我们怎么来利用它来改进一下我们的代码。这是一种新的基础数据类型(primitive type)Symbol是由ES6规范引入的一项新特性,它的功能类似于一种标识唯一性的ID。通常情况下,我们可以通过调用Symbol()函数来创建一个Symbol实例:let s1 = Symbol()或者,你也可以在调用Symbo.原创 2020-07-01 15:24:44 · 189 阅读 · 0 评论 -
ES6——Set对象
Set对象的存储类型为唯一值,这个值与数据类型无关。set在出现重复值时,自动将重复的值删除。 <script> let mySet=new Set(); mySet.add(1); mySet.add("test"); mySet.add(3); ...原创 2019-12-27 18:01:32 · 158 阅读 · 1 评论 -
export和module.export的区别
// hello.jsfunciton hello () { console.log('hello');}1.export.hello = hello;var aaa = require('hello.js');aaa.hello(); // console.log('hello');2.module.export = hello;var aaa = req...原创 2019-12-16 18:00:23 · 151 阅读 · 0 评论 -
(转)ES6学习笔记——Object.assign()
基本用法Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。const target = { a: 1 };const source1 = { b: 2 };const source2 = { c: 3 };Object.assign(target, source1, source2);target // {...原创 2019-11-21 11:23:40 · 128 阅读 · 0 评论 -
理解和使用ES6中的Symbol(转载)
ES6中引入了一种新的基础数据类型:Symbol,不过很多开发者可能都不怎么了解它,或者觉得在实际的开发工作中并没有什么场景应用到它,那么今天我们来讲讲这个数据类型,并看看我们怎么来利用它来改进一下我们的代码。这是一种新的基础数据类型(primitive type)Symbol是由ES6规范引入的一项新特性,它的功能类似于一种标识唯一性的ID。通常情况下,我们可以通过调用Symbol()函...原创 2019-11-08 20:54:06 · 143 阅读 · 0 评论 -
ES6——import和export
export在es6中一个文件可以默认为一个模块,模块通过export向外暴露接口,实现模块间交互等功能1. export相关语法exportDemo.js文件export var m = 1;// 等价于var m = 1;export { m }// 导出多个var a = 1;var b = 2;var c = 3;export { a, b, c }/...原创 2019-08-21 10:06:36 · 348 阅读 · 0 评论 -
ES6新特性:使用export和import实现模块化
在ES6前, 前端就使用RequireJS或者seaJS实现模块化, requireJS是基于AMD规范的模块化库, 而像seaJS是基于CMD规范的模块化库, 两者都是为了为了推广前端模块化的工具, 更多有关AMD和CMD的区别, 后面参考给了几个链接; 现在ES6自带了模块化, 也是JS第一次支持module, 在很久以后 ,我们可以直接作用import和export在浏览器中导入...原创 2019-03-16 09:14:54 · 209 阅读 · 0 评论 -
require和import
ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。不把require和import整清楚,会在未来的标准编程中死的很难看。require时代的模块node编程中最重要的思想之一就是模块,而正是这个思...原创 2019-01-16 11:02:18 · 140 阅读 · 0 评论 -
ES6——let和var及const定义变量的区别
首先,一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?ECMAScript是一个国际通过的标准化脚本语言。JavaScript由ECMAScript和DOM、BOM三者组成。可以简单理解为:ECMAScript是JavaScript的语言规范,JavaScript是ECMAScript的实现和扩展。2011 年,ECMAScri...原创 2019-01-14 23:36:38 · 1351 阅读 · 0 评论