javascript中的Strict模式

简介 我们都知道javascript是一个弱类型语言,在ES5之前,javascript的程序编写具有很强的随意性,我可以称之为懒散模式(sloppy mode)。比如可以使用未定义的变量,可以给对象中的任意属性赋值并不会抛出异常等等。 在ES5中,引入了strict模式,我们可以称之为严格模式。相 ... »

避坑!js正确地使用fill()初始化二维数组

先介绍一下坑 fill()方法都知道,填充数组 比如: let a = new Array(5).fill(0); console.log(a); // 输出结果为[0, 0, 0, 0, 0] 当我们想使用fill创建一个二维数组时 let arr=new Array(5).fill(new Ar ... »

const关键字:终于拥有真正的常量声明语句

本文首发于个人网站:const关键字:终于拥有真正的常量声明语句 你好,今天大叔想和你唠扯唠扯 ES6 新增的关键字 —— const。在说 const 关键字之前,大叔先和你唠唠大叔自己对 const 的感受 —— JavaScript 尼玛终于可以声明真正的常量啦!大叔为啥会发出这样滴感叹?实在 ... »

let关键字:加强版的var关键字

本文首发于个人网站:let关键字:加强版的var关键字 你好,今天大叔想和你唠扯唠扯 ES6 新增的关键字 —— let。再说 let 的具体用法之前,大叔想先和你说说大叔自己对 let 的感受 —— let 其实就是加强版的 var。为啥这么说呢?别急,且听大叔慢慢道来。 首先,let 和 var ... »

[每日一题]面试官问:谈谈你对ES6的proxy的理解?

[每日一题]面试官问:谈谈你对ES6的proxy的理解? 关注「松宝写代码」,精选好文,每日一题 作者:saucxs | songEagle 一、前言 2020.12.23 日刚立的 flag,每日一题,题目类型不限制,可以是:算法题,面试题,阐述题等等。 本文是「每日一题」第 8 题:[每日一题] ... »

[每日一题]面试官问:for in和for of 的区别和原理?

关注「松宝写代码」,精选好文,每日一题 ​时间永远是自己的 每分每秒也都是为自己的将来铺垫和增值 作者:saucxs | songEagle 一、前言 2020.12.23 日刚立的 flag,每日一题,题目类型不限制,可以是:算法题,面试题,阐述题等等。 本文是「每日一题」第 7 题:[每日一题] ... »

ES6中的Promise和Generator详解

简介 ES6中除了上篇文章讲过的语法新特性和一些新的API之外,还有两个非常重要的新特性就是Promise和Generator,今天我们将会详细讲解一下这两个新特性。 Promise 什么是Promise Promise 是异步编程的一种解决方案,比传统的解决方案“回调函数和事件”更合理和更强大。 ... »

关于 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 提供了一个实例 ... »