会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
hahazexia
博客园
首页
新随笔
联系
管理
订阅
随笔- 358 文章- 0 评论- 28 阅读-
47万
随笔分类 -
ECMAscript
1
2
下一页
ES6(二十三)Module 的加载实现
摘要:上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载)。 浏览器加载 传统方法 HTML 网页中,浏览器通过<script>标签加载 JavaScript 脚本。 上面代码中,由于浏览器脚本的默认语言是 JavaScript
阅读全文
posted @
2019-01-03 18:05
hahazexia
阅读(693)
评论(0)
推荐(0)
编辑
ES6(二十二)Module 的语法
摘要:概述 历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的require、Python 的import,甚至就连 CSS 都有@import,但是 JavaScript 任何这方面的支
阅读全文
posted @
2019-01-02 17:21
hahazexia
阅读(320)
评论(0)
推荐(0)
编辑
ES6(二十一)修饰器
摘要:类的修饰 许多面向对象的语言都有修饰器(Decorator)函数,用来修改类的行为。目前,有一个提案将这项功能,引入了 ECMAScript。 上面代码中,@testable就是一个修饰器。它修改了MyTestableClass这个类的行为,为它加上了静态属性isTestable。testable函
阅读全文
posted @
2018-12-10 18:17
hahazexia
阅读(1371)
评论(0)
推荐(0)
编辑
ES6(二十)Class 的继承
摘要:简介 Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。 上面代码定义了一个ColorPoint类,该类通过extends关键字,继承了Point类的所有属性和方法。但是由于没有部署任何代码,所以这两个类完全一样,等于复制了一个Point类。
阅读全文
posted @
2018-11-06 22:34
hahazexia
阅读(266)
评论(0)
推荐(0)
编辑
ES6(十九)Class 的基本语法
摘要:介绍 JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。 上面这种写法跟传统的面向对象语言(比如 C++ 和 Java)差异很大,很容易让新学习这门语言的程序员感到困惑。 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过cl
阅读全文
posted @
2018-11-05 16:31
hahazexia
阅读(280)
评论(0)
推荐(0)
编辑
ES6(十八)async 函数
摘要:含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是什么?一句话,它就是 Generator 函数的语法糖。 前文有一个 Generator 函数,依次读取两个文件。 写成async函数,就是下面这样。 一比较就会发现,async函数就是将 Generat
阅读全文
posted @
2018-10-28 21:28
hahazexia
阅读(855)
评论(0)
推荐(0)
编辑
ES6(十七)Generator 函数的异步应用
摘要:ES6 诞生以前,异步编程的方法,大概有下面四种。 回调函数事件监听发布/订阅Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个全新的阶段。 基本概念 异步 所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段,先执行第一段,然后转而
阅读全文
posted @
2018-10-23 10:28
hahazexia
阅读(214)
评论(0)
推荐(0)
编辑
ES6(十六)Generator 函数的语法
摘要:简介 基本概念 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍 Generator 函数的语法和 API,它的异步编程应用请看《Generator 函数的异步应用》一章。 Generator 函数有多种理解角度。语法上,首先可以把它理解成,G
阅读全文
posted @
2018-09-20 19:50
hahazexia
阅读(301)
评论(0)
推荐(0)
编辑
ES6(十五)Iterator 和 for...of 循环
摘要:Iterator(遍历器)的概念 JavaScript 原有的表示“集合”的数据结构,主要是数组(Array)和对象(Object),ES6 又添加了Map和Set。这样就有了四种数据集合,用户还可以组合使用它们,定义自己的数据结构,比如数组的成员是Map,Map的成员是对象。这样就需要一种统一的接
阅读全文
posted @
2018-09-16 22:23
hahazexia
阅读(212)
评论(0)
推荐(0)
编辑
ES6(十四)Promise 对象
摘要:Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个
阅读全文
posted @
2018-09-14 20:54
hahazexia
阅读(122)
评论(0)
推荐(0)
编辑
ES6(十三)Reflect
摘要:概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的有这样几个。 (1) 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。现阶段,某些方法同时在Object
阅读全文
posted @
2018-09-12 23:08
hahazexia
阅读(165)
评论(0)
推荐(0)
编辑
ES6(十二)Proxy
摘要:概述 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。 Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和
阅读全文
posted @
2018-08-11 23:27
hahazexia
阅读(348)
评论(0)
推荐(0)
编辑
ES6(十一)Set和Map
摘要:Set 基本用法 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函数,用来生成 Set 数据结构。 上面代码通过add方法向 Set 结构加入成员,结果表明 Set 结构不会添加重复的值。 Set 函数可以接受一个数组(或者具有 it
阅读全文
posted @
2018-07-23 22:54
hahazexia
阅读(165)
评论(0)
推荐(0)
编辑
ES6(十)Symbol
摘要:概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是 ES6 引入Sym
阅读全文
posted @
2018-07-04 15:51
hahazexia
阅读(219)
评论(0)
推荐(0)
编辑
ES6(九)对象的扩展
摘要:属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 const foo = 'bar'; const baz = {foo}; baz // {foo: "bar"} // 等同于 const baz = {foo: foo}; 上面代码表明,ES6 允许在
阅读全文
posted @
2018-07-03 16:55
hahazexia
阅读(681)
评论(0)
推荐(0)
编辑
ES6(八)数组的扩展
摘要:扩展运算符 含义 扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。 console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [..
阅读全文
posted @
2018-01-23 17:40
hahazexia
阅读(167)
评论(0)
推荐(0)
编辑
ES6(七)函数的扩展
摘要:函数参数的默认值 基本用法 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 上面代码检查函数log的参数y有没有赋值,如果没有,则指定默认值为World。这种写法的缺点在于,如果参数y赋值了,但是对应的布尔值为false,则该赋值不起作用。就像上面代码的最后一行,参数y等于空字符
阅读全文
posted @
2018-01-08 23:45
hahazexia
阅读(181)
评论(0)
推荐(0)
编辑
ES6(六)数值的扩展
摘要:二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)(二进制binary)和0o(或0O)(八进制octonary)表示。 从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示。 如果要将0b和0o前缀的字符串
阅读全文
posted @
2018-01-03 15:08
hahazexia
阅读(424)
评论(0)
推荐(0)
编辑
ES6(五)正则的扩展
摘要:RegExp构造函数 在 ES5 中,RegExp构造函数的参数有两种情况。 第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。 第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。 RegExp构造函数的参数是一个正则表达式的时候,ES5 不允许此时
阅读全文
posted @
2017-12-21 15:16
hahazexia
阅读(1589)
评论(0)
推荐(0)
编辑
ES6(四)字符串
摘要:字符的unicode表示法 JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点。 这种表示法只限于码点在\u0000~\uFFFF之间的字符。超出这个范围的字符,必须用两个双字节的形式表示。 如果直接在\u后面跟上超过0xFFFF的数值(比如\u
阅读全文
posted @
2017-11-08 11:57
hahazexia
阅读(603)
评论(0)
推荐(0)
编辑
1
2
下一页
公告
昵称:
hahazexia
园龄:
12年7个月
粉丝:
73
关注:
3
+加关注
<
2025年3月
>
日
一
二
三
四
五
六
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
更多链接
随笔分类
Array and Array.prototype(23)
axios-code(6)
c(8)
css(10)
data structures and algorithms(10)
ECMAscript(23)
express-code(4)
Git(1)
HTTP: The Definitive Guide(7)
js(12)
learning python(3)
lodash-code(194)
mass(1)
mint-ui-code(5)
MongoDB(3)
nodejs(7)
Object and Object.prototype(5)
Professional JavaScript for Web(11)
regular expression(8)
String and String.prototype(12)
vue-code(3)
You Don't Know JS(2)
更多
随笔档案
2020年8月(3)
2019年8月(3)
2019年4月(13)
2019年1月(34)
2018年12月(37)
2018年11月(52)
2018年10月(69)
2018年9月(14)
2018年8月(8)
2018年7月(19)
2018年6月(25)
2018年5月(5)
2018年4月(12)
2018年3月(11)
2018年2月(1)
2018年1月(9)
2017年12月(6)
2017年11月(3)
2017年10月(1)
2017年8月(2)
2017年7月(1)
2017年2月(1)
2017年1月(1)
2016年12月(2)
2016年11月(3)
2016年10月(7)
2016年9月(1)
2016年3月(4)
2015年12月(4)
2013年4月(5)
2013年3月(2)
更多
阅读排行榜
1. 给vue项目添加ESLint(63198)
2. 判断数据类型的方法(33706)
3. _.cloneDeep(value)(17038)
4. 正则表达式入门(四)选择,分组和向后引用(16371)
5. for循环里的定时器引发的思考(14739)
评论排行榜
1. for循环里的定时器引发的思考(10)
2. 判断数据类型的方法(4)
3. MessageBox(3)
4. _.clamp(number, [lower], upper)(2)
5. _.isArray(value)(2)
推荐排行榜
1. for循环里的定时器引发的思考(12)
2. 判断数据类型的方法(4)
3. 给vue项目添加ESLint(3)
4. express+gulp构建项目(二)启动项目和主文件(2)
5. _.debounce(func, [wait=0], [options={}])(1)
最新评论
1. Re:判断数据类型的方法
转载了,谢谢!
--橘子熊
2. Re:for循环里的定时器引发的思考
22年前来考古,写的非常清晰明了,循序渐进,关键字也用颜色注明,算得上18年少有的好文了。要是再美化下博客和编辑器就更完美了。
--木秀羽林
3. Re:for循环里的定时器引发的思考
博主你好! 我最近看了一下闭包的定义,是"在作用域外访问了作用域内的变量",比如下面这个,通过add,在外部形成的对counter的访问. var add = (function () { var c...
--初学者-xjr
4. Re:_.isArray(value)
@神奇的花花 这是我过去读 lodash 这个工具库的源代码的时候写的,没必要看 lodash 了,去学习其他库的源代码吧,ES6 之后 lodash 这个工具库渐渐用的少了,我现在也不维护这个博客了...
--hahazexia
5. Re:_.isArray(value)
你好,那个_.是什么东西,是你自己定义的吗?
--神奇的花花
点击右上角即可分享