JavaScript
文章平均质量分 89
JavaScript
wei-vivian
这个作者很懒,什么都没留下…
展开
-
Promise
总结:Promise 是同步代码,Promise.then 是 微任务then 的执行时机是在前面函数执行完成并且 Promise 状态变更以后才会被添加到微任务队列中等待执行then 的 onFulfilled 不是函数,则无效then 的 onFulfilled 是函数,则除了 throw error 其他返回值都会转为 Promise 对象thenable 是微任务thenable 中如果没有执行 resolve(),则 thenable 后面如果还有 then,则不执行。原创 2024-05-17 00:07:45 · 858 阅读 · 0 评论 -
闭包 closure
闭包也是一个对象。原创 2024-04-29 19:18:39 · 716 阅读 · 1 评论 -
作用域 scope 和作用域链 scopes
var 会变量提升;函数声明提升作用域就是变量的可用范围(scope)。目的是防止不同范围的变量之间互相干扰。作用域有 词法作用域、全局作用域、函数作用域、块作用域(ES6)全局变量(可重复使用,会污染)和局部变量(不可重复使用,不会污染)局部变量:1. 函数内var出来的 2. 函数的形参变量JavaScript 作用域链是由词法作用域决定的。如果内外层作用域链存在相同命名的变量,内层作用域的变量值修改不会影响外层相同命名变量的值。JS 中,作用域和作用域链都是对象结构。原创 2024-04-29 15:00:53 · 965 阅读 · 1 评论 -
JavaScript 的设计缺陷
2、嵌套函数中的this不会继承外层函数的this值,this指向参考上一句“普通函数中的this指向window,严格模式下指向undefined”变量提升:使用var声明的变量会自动提升到开头位置,在声明之前使用变量不报错且结果为undefined。恒等运算符,不会自动转换数据类型,如果数据不一致,返回 false,如果一致,返回true。相等运算符,会自动转换数据类型再比较,很多时候,会得到比较诡异的结果。原因:js引擎编译阶段会进行如下编译。原因:js引擎编译阶段会进行如下编译。原创 2024-04-30 15:05:00 · 137 阅读 · 0 评论