ECMAScript
文章平均质量分 64
JavaScript学习内容
皮蛋很白
没有什么难点是一觉醒来解决不了的
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
为什么要搞懂 JavaScript 的事件循环机制
为什么要搞懂 JavaScript 的事件循环机制起初学习事件循环只是单纯的去理解,不知道也没有去思考为什么都在讲这个,只知道在解释异步任务执行顺序时会用它作为依据。经过一段时间的沉淀,个人对理解事件循环机制的意义开始做一些总结,在这里记录一下。理解 JavaScript 单线程特性如何运行程序理解 JavaScript 任务的执行顺序理解 JavaScript 单线程特性如何运行程序首先要区分异步和并发:异步是关于现在和将来的时间间隙,异步任务是相对于当前任务经过一些时间后执行的任务。原创 2021-05-10 07:16:50 · 268 阅读 · 0 评论 -
JavaScript 原型和原型链(__proto__和prototype)
JavaScript 原型的使用原型的英文名是:prototype每个JS对象都有原型(即内部的[[Prototype]]属性)。无法通过key的方式直接访问这个属性,也无法在控制台显示这个属性。访问 [[Prototype]] 的方式访问对象原型的方式有3个:(浏览器提供的)非标准属性__propto__var proto = {age: 18}var person = Object.create(proto)console.log(person.__proto__ === prot原创 2020-08-25 14:44:40 · 837 阅读 · 0 评论 -
ES6学习之模块简单编写
// 模块管理const MyModule = (function(){ const module = []; function define(name, deps, callback) { let prevModule = []; deps.forEach((m,i) => { prevModule[i] = module[m]; }) module[name] = callback.apply原创 2020-05-20 10:40:27 · 189 阅读 · 0 评论 -
ES6学习之提升
错误提示参考编译阶段报错提示ReferenceError运行阶段报错提示TypeError声明变量声明变量假设理解为包括创建、初始化、赋值。var a; // 创建、初始化为undefinedvar b = 1; // 创建、初始化、赋值创建会在编译阶段分析并提升。赋值在运行阶段执行。变量提升编译阶段JS引擎的编译器会将var声明变量的创建和初始化提升到作用域顶部,并忽略重复的声明。console.log(a);var a = 1;var a = 2;会被引擎理解为:var原创 2020-05-18 19:30:30 · 260 阅读 · 0 评论 -
ES6学习之继承和原型链
每个函数和实例对象都有一个属性指向自己的原型对象。函数指向原型对象的属性是prototype。实例对象指向原型对象的属性是 __proto__。实例对象的 __proto__指向它的构造函数的原型对象prototype。构造函数的原型对象 prototype 也有一个自己的原型对象 __proto__。层层向上直到一个对象的原型对象为null。根据定义,null 没有原型,并作为这个原型...原创 2020-04-27 00:45:09 · 478 阅读 · 0 评论 -
ES6学习之对象、类&原型
script标签属性async 当引入的外部脚本无需等待页面解析,又不依赖其他脚本独立运行,使用async异步加载。defer 当引入的外部脚本无需等待页面,但是以来其他脚本,使用defer将关联的脚本按顺序加载。...原创 2020-04-26 19:35:25 · 413 阅读 · 0 评论 -
ES6学习之Set WeakSet
带键(key)的集合Map、WeakMap(映射) 和 Set(集合) 对象承载的数据元素可以按照插入时的顺序被迭代遍历。SetSet对象是一组不可重复的、唯一的值的集合,可根据插入顺序遍历。与Array的比较数组中用于判断元素是否存在的indexOf 函数效率低下。Set对象允许根据值删除元素,而数组中必须使用基于下标的 splice 方法。数组的indexOf方法无法找到NaN值...原创 2020-04-26 16:35:17 · 261 阅读 · 0 评论 -
ES6学习之Map WeakMap
带键(key)的集合Map、WeakMap(映射) 和 Set(集合) 对象承载的数据元素可以按照插入时的顺序被迭代遍历。Map与Object的比较Map的key值可以是任意类型(可以将原始值(字面量)存储为键),Object只能是字符串或Symbol。Map可通过size获取数量(length=0),Object只能手动计算。Map遍历遵循数据的插入顺序,Object自动排序。Ma...原创 2020-04-26 15:35:59 · 295 阅读 · 0 评论 -
ES6学习之this 指向
正常函数声明中this指向调用函数的对象var name = '乔峰';function show() { console.log(this.name);}show(); // 此处调用函数的对象是全局(window),所以输出:乔峰var person = { name: '虚竹', show: function() { console.log(this.name) }...原创 2020-04-24 21:37:51 · 191 阅读 · 0 评论 -
ES6学习之数据类型、变量提升、严格模式、let const、script标签异步加载
数据类型简单数据/基本数据/原始类型:String Number Boolean null undefined Symbol复杂数据:Object对象类型/引用类型/Object:Object Array Function Date对象方法String对象toString valueOf toLowerCase toUpperCase toLocaleLowerCase toLocal...原创 2020-04-23 18:20:46 · 200 阅读 · 0 评论 -
ES6学习之async/await
async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。async 函数中可能会有 await 表达式,async 函数执行时,如果遇到 await 就会先暂停执行 ,等到触发的异步操作完成后,恢复 async 函数的执行并返回解析值。await 操作符用于等待一个 Promise 对象或者任何要等待的值,仅在 async function 中有效。如果在 as...原创 2020-04-22 20:31:41 · 277 阅读 · 0 评论 -
ES6学习之更优的异步编程方案 Promise
打印Promise对象:Promise {<状态>[: 回调传参]}1.三种状态:pending(初始状态),resolved(成功),rejected(失败)promise对象创建即执行传入的函数,执行函数中的回调即变更promise的状态// pendingvar p1 = new Promise(function(resolve, reject){ setTimeout...原创 2020-04-22 14:20:51 · 218 阅读 · 0 评论
分享