前提 本文并不单独讲解 ESLint 和 Prettier 如何配置和运行。 问题 想在团队中推行一定的代码规范,并给不符合规范的代码做检测和提示。 方案 代码规范校验使用 ...
前提 本文并不单独讲解 ESLint 和 Prettier 如何配置和运行。 问题 想在团队中推行一定的代码规范,并给不符合规范的代码做检测和提示。 方案 代码规范校验使用 ...
每篇都需要付费的吗
typescript 学习纲要(1): 为什么必须学
export正确用法 输出变量 输出多个变量 输出函数 输出别名 export错误用法 import用法 需要注意的是 import是在代码编辑阶段执行的 导入变量 导入别名...
最近写了个简单的Node小后台,在使用koa-router时对某些部分不是很懂,故翻译官方文档,有需要的朋友请阅读(英语菜鸡抠Jio,翻译不准请及时指出) 官方文档:Koa-...
@过去式丶 为什么说timer函数是在外层的匿名函数作用域中声明呢?
timer不是作为setTimeout的第一个参数吗?
难不成发生了变量提升??
前端基础进阶(五):闭包初学JavaScript时,我在闭包上,走了很多弯路。而这次重新回过头来对基础知识进行梳理,要讲清楚闭包,也是一个非常大的挑战。 闭包有多重要?如果你是初入前端的朋友,我没有...
曾经年少的我,不知道Commit message的重要性,以至于某次版本回退的时候,望着眼前的一个个Commit message,一脸懵逼。 不跟你多BB,接下来说下正确的书...
@波同学 好像有点理解了,在在IIFE环境内定义,作用域链其实也是正常的,只不过在setTimeout内执行,阻止了IIFE的垃圾回收机制,从而保留了i的值?
前端基础进阶(五):闭包初学JavaScript时,我在闭包上,走了很多弯路。而这次重新回过头来对基础知识进行梳理,要讲清楚闭包,也是一个非常大的挑战。 闭包有多重要?如果你是初入前端的朋友,我没有...
理解起来有点问题,我说下问题,麻烦看下理解的正不正确:
for(var i = 1; i <=5; i++){
setTimeout(function timer(){
console.log(i);
}, i * 1000);
}
对于上述代码的理解:
i在1000ms内早已变成了6,所以会console.log出5次6,但是此时有一个疑问,不考虑let,setTimeout是怎么记录下当前的i值呢? 为什么不会到5s的时候瞬间 console.log 5次6呢?
for(var i = 1; i <=5; i++){
(function (i){
setTimeout(function timer(){
console.log(i);
}, i * 1000);
})(i);
}
还有第二个问题:
上述代码使用IIFE,可以理解,保持i的值,但是闭包的定义严格来说应该不是IIFE而是timer函数定义在setTimeout作用域外而在该作用域内执行了? (代码未体现timer定义在作用域外。)
前端基础进阶(五):闭包初学JavaScript时,我在闭包上,走了很多弯路。而这次重新回过头来对基础知识进行梳理,要讲清楚闭包,也是一个非常大的挑战。 闭包有多重要?如果你是初入前端的朋友,我没有...
@波同学 谢谢,文章真棒!
前端基础进阶(二):执行上下文详细图解我们在JS学习初期,或者在面试的时候常常会遇到变量提升相关的思考题。 比如先来一个简单一点的。 暂时先不管这个例子,我们先引入一个JavaScript中最基础,但同时也是最重...
最后一个例子是否可以理解为?
全局作用域入栈,遇到可执行代码var result=f1();
f1()入栈,后return f2,result被赋值为function,无可执行代码,f1()出栈,再次寻找可执行代码,result()入栈,执行,后出栈。
前端基础进阶(二):执行上下文详细图解我们在JS学习初期,或者在面试的时候常常会遇到变量提升相关的思考题。 比如先来一个简单一点的。 暂时先不管这个例子,我们先引入一个JavaScript中最基础,但同时也是最重...
这里有一只小白在学习Node.js,相关大神请撤离 :) module.exports和exports的区别 首先回顾一下Js基础知识: 这里就涉及到了ES5中的引用类型,b...
在重构前端项目的过程中,需要根据主模块动态加载控制器,但Angular要求在开启服务前必须将所有控制器、服务、依赖的模块全部加载完成,下面详细说一下搭建项目过程中的解决方案。...
注:本系列文章已升级最新版本:《JavaSscript 核心进阶》第二版[https://xiaozhuanlan.com/advance] 因为JavaScript具有自动...
构造函数 JavaScript中的构造函数是创建对象时调用的函数,写法如下: 定义Person构造函数(默认构造函数首字母大写) 如上,构造函数定义了name与age属性,s...