关于 ECMAScript、JavaScript、ES6、ECMAScript 2015

ECMAScript 是一种规范,而 JavaScript 是对规范的实现。ECMA 是标准化组织。 最早的 JavaScript 是由 Netscape 公司开发的,并提交给 ECMA 标准化组织,制定了最早的 ECMAScript 1.0 (简称ES1,以下同)标准。 此后,又陆续制定了后续其他... ... »

JavaScript 中的模块化

JavaScript 中的模块化 最早的基于立即执行函数,闭包的模块化 const MountClickModule = function(){ let num = 0; const handleClick = ()=>{ console.log(++num); } return { countCl ... »

01模块化简介

模块简介 1.1什么是模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 当项目功能越来越多,代码量便也会越来越多,后期的维护难度会增大,此时在JS方面就会考虑使用模块化规范去管理 为了编写可维护的代码,我们把很多函数(实现某个功能)分组,分别放到 ... »

ES6 新特性

ES6, 全称 ECMAScript 6.0 ,2015.06 发版。ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。 平时 ... »

ES6语法--导入、导出

一、export 导出export default 是默认导出export const 是命名导出 module.exports与exports,export与export default之间的关系和区别Node应用由模块组成,采用CommonJS模块规范。根据这个规范,每个文件就是一个模块,有自己 ... »

es6---let和const

在es6之前,只有全局作用域与函数作用,变量只能用var来声明。而es6中新增了块级作用域,变量可以用let、const来声明变量。 内容概述 •var和let const的区别 •块级作用域与函数声明 1、var和let const的区别 1.1:let const声明的变量只在代码块作用域内有效 ... »

JavaScript数据结构——图的实现

在计算机科学中,图是一种网络结构的抽象模型,它是一组由边连接的顶点组成。一个图G = (V, E)由以下元素组成: V:一组顶点 E:一组边,连接V中的顶点 下图表示了一个图的结构: 在介绍如何用JavaScript实现图之前,我们先介绍一些和图相关的术语。 如上图所示,由一条边连接在一起的顶点称为 ... »

JavaScript数据结构——字典和散列表的实现

在前一篇文章中,我们介绍了如何在JavaScript中实现集合。字典和集合的主要区别就在于,集合中数据是以[值,值]的形式保存的,我们只关心值本身;而在字典和散列表中数据是以[键,值]的形式保存的,键不能重复,我们不仅关心键,也关心键所对应的值。 我们也可以把字典称之为映射表。由于字典和集合很相似, ... »

JavaScript数据结构——集合的实现与应用

与数学中的集合概念类似,集合由一组无序的元素组成,且集合中的每个元素都是唯一存在的。可以回顾一下中学数学中集合的概念,我们这里所要定义的集合也具有空集(即集合的内容为空)、交集、并集、差集、子集的特性。 在ES6中,原生的Set类已经实现了集合的全部特性,稍后我们会介绍它的用法。 我们使用JavaS ... »

ES6 symbol 以及symbol的简单应用

前置 1.ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。 2.Symbol 值通过Symbol函数生成。 3.Symbol 函数可以接受一个字符串作为参数,表示对 Symbol 实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。 4.ES2019 提供了一个实例 ... »

ES6

前言 我一定是一个傻子,昨天这篇文章其实我已经写好了一半了,但是我没有保存 这是学习ES6的过程,我没有系统的看完阮大大的书。零零散散的,很多功能知道,但是没有实际的用过 看了几遍,总是看前面几章,所以这次我要立下flag 一定从头到尾学一遍ES6(有点讽刺 现在好像都有ES9了) ES5与ES6 ... »

面试题:实现call、apply、bind

面试题:实现call、apply、bind 实现bind 实现call 在实现了bind后,只需要将call转换给bind处理就可以了 实现apply 实现了call后,只需要处理下参数,转换给call处理就可以了 使用 在挂载到原型上后,就可以正常使用了 测试 1、bind的测试 2、call的测 ... »

export default与export的区别

1.export default 和export都可以用于导出常量,函数,文件,模块等; 2.可以在模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用 3.在一个文件或者模块中,export,import可以有多个,但是export default ... »

简单聊聊ES6-Promise和Async

前言 本篇博文出至于我的 仓库: "web study" ,如果你觉得对你有帮助欢迎star,你们的点赞是我持续更新的动力,谢谢! 异步编程在前端开发中尤为常见,从最早的 ,到后来的各种封装 ,再到 事件触发的回调,无不涉及异步编程。今天咱们来聊聊 中新提出的异步解决方案: 和`async/awai ... »

彻底弄懂ES6中的Map和Set

Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。构造函数 可以接受一个数组作为参数。 Map和Object的区别 一个 的键只能是字符串或者 ,但一个 的键可以是任意值。 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。 的键值对个数可以从 size 属性获 ... »

简单说说JavaScript的Generator 实现(ES6)

Generator 是 ES6 中新增的语法,和 Promise 一样,都可以用来异步编程 从以上代码可以发现,加上 * 的函数执行后拥有了 next 函数,也就是说函数执行后返回了一个对象。每次调用 next 函数可以继续执行被暂停的代码。以下是 Generator 函数的简单实现 ... »

ES6--浅析Promise内部结构

一、前言 什么是promise?promsie的核心是什么?promise如何解决回调地狱的?等问题 1、什么是promise?promise是表示异步操作的最终结果;可以用来解决回调地狱和并发IO操作的问题 A promise represents the eventual result of a ... »