理解 JavaScript 中的 macrotask 和 microtask 前言在实现 Promise/A+ 库的过程中,第一次听说了 JavaScript 中的 macrotask 和 microtask 的概念。然后 Google 搜索到了以下的资料:difference-between-microtask-and-macrotask-within-an-event-loop-contextTasks, microtasks, queues ...
微信小程序之转盘抽奖 公司需求要做转盘抽奖,刚开始也是踩了好几个坑,跟大家一起来分享下。刚开始搞微信小程序的转盘抽奖,用CSS3+定时器写的。在微信开发工具中没有问题,但是真机测试时发现动画卡的要死,完全是木偶人的感觉。不得已,开始用微信的wx.createAnimation写,废话不多说,直接上代码 ~(我用的是wepy工具开发的,所以要是不用wepy的话,要分开写.js .wxss .w...
Set 数据结构 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 不能提供的则是索引。let set = new Set();set.add({});set.size // 1set.add({});set.size // 2 两个空对象不相等,所以它们被视为两个值。Set支持下列操作:1、new ...
js实现深拷贝 js的数据类型分为基本数据类型和引用数据类型。基本数据类型是直接赋值,引用数据类型分为浅拷贝和深拷贝。浅拷贝是复制对象的指针,深拷贝是复制对象所有属性再内存中独立存在。 浅拷贝如下:var obj = {a: 'test', b: {c: 0}}var obj1 = objvar obj2 = shallowCopy(obj);function shallo...
JavaScript:面向对象与原型 一、什么是面向对象 对象并不是计算机领域凭空造出来的概念,它是顺着人类思维模式产生的一种抽象,面向对象编程也被认为是:更接近人类思维模式的一种编程范式。 对象有如下几个特征:对象具有唯一标识性:即使完全相同的两个对象,也并非同一个对象。各种语言的对象唯一标识性都是用内存地址来体现的对象有状态:同一对象可能处于不同状态之下。对象具有行为:对象的状态,可能因为它的...
迭代器和 for-of 循环 1.、for循环(支持break;continue;return等)for (var index = 0; index < myArray.length; index++) { console.log(myArray[index]);}2、forEach(不支持break;continue;return false相当于continue;)...
JavaScript中defer和async的区别 把 JavaScript 插入到 HTML 页面中要使用<script>元素,该元素有两个属性defer(延迟脚本)和async(异步脚本)。 defer是表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。浏览器渲染页面,读取到包含defer属性的外部<script>标签时不会停止DOM渲染,而是异步下载,加载完整个...
js数据类型及检测 ECMAScript 变量可能包含两种不同数据类型的值:基本类型值(基本数据类型)和引用类型值(复杂数据类型)。 基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。 基本数据类型包括 Undefined、 Null、 Boolean、 Number 和 String。这 5 种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。 引用类型的...
Promise相比callback解决了什么问题 1、可靠性 Promise是原生支持的API,它已经被加到了JS的规范里面,在各大浏览器中的运行机制是相同的。这样就保证了它的可靠。2、可读性 Promise的应用相当于给了你一张可以把解题思路清晰记录下来的草稿纸,你不在需要用脑子去记忆执行顺序。3、信任问题 Promise与普通的回调的方式的区别在于:普通的方式,回调成功之后的操作直接写在了回调函数里面,而这...
JavaScript中Array类型的检测和方法 instanceof 操作符可以检测对象的具体类型,如下:if (value instanceof Array){//对数组执行某些操作} 但问题是instanceof 判断的依据是基于原型链去查找Array()构造函数。若只有一个全局执行环境,instanceof 确实可以判断。若网页包含多个框架,实际上存在多个全局执行环境,不同框架之间传入数组,判断的...
ECMAScript与JavaScript JavaScript是一种专门与网页交互而设计的脚本语言。ECMAScript就是JavaScript吗?并不是,JavaScript的含义要比ECMAScript要多很多。JavaScript由三个部分组成:ECMAscript(核心)、DOM(文档对象模型)、BOM(浏览器对象模型)。 ECMAScript 只是定义这门语言的基础,规定了JavaScript的语法、类型、语...