理解 JavaScript call()/apply()/bind()

2019-01-03
阅读 6 分钟
4.2k
理解 JavaScript this 文章中已经比较全面的分析了 this 在 JavaScript 中的指向问题,用一句话来总结就是:this 的指向一定是在执行时决定的,指向被调用函数的对象。当然,上篇文章也指出可以通过 call() / apply() / bind() 这些内置的函数方法来指定 this 的指向,以达到开发者的预期,而这篇文章将进一步来讨论这个...

理解 JavaScript this

2018-12-19
阅读 6 分钟
2.5k
这是本系列的第 5 篇文章。 还记得上一篇文章中的闭包吗?点击查看文章 理解 JavaScript 闭包 。 在聊 this 之前,先来复习一下闭包: {代码...} 上一篇文章说,我们可以把闭包简单地理解为函数返回函数。所以这里的闭包结构是: {代码...} 但是你有没有发现,这个函数执行的结果是 “Hi! My name is Neil” 。等等,我不...

理解 JavaScript 闭包

2018-12-17
阅读 3 分钟
4.8k
这是本系列的第 4 篇文章。 作为 JS 初学者,第一次接触闭包的概念是因为写出了类似下面的代码: {代码...} 给列表项循环添加事件处理程序。当你点击列表项时不会有任何反应。如何在初学就理解闭包?你需要接着读下去。 § 什么是闭包 说闭包前,你还记得词法作用域吗? {代码...} 执行上面的代码打印出 1。 bar 函数是 f...

理解 JavaScript 执行栈

2018-12-12
阅读 2 分钟
7.1k
这是 JavaScript 系列的第 3 篇。 引例 首先来看一个引例: {代码...} 这段代码将从上往下依次执行,并输出 '1', '2', '3'。 我们可以看到,bar 函数的执行顺序似乎和它定义的顺序没有关系。为什么呢?这你就得弄懂执行栈了。 执行栈 所有的 JS 代码在运行时都是在执行上下文中进行的。执行上下文是一个抽象的概念,JS ...

理解 JavaScript 作用域

2018-11-27
阅读 2 分钟
2.8k
上一篇文章中分析了 JS 中的数据类型和变量。这一篇文章将分析作用域,以及回答上一篇文章中变量提升的原因。 什么是作用域 作用域是一套规则,保存着变量,等待被引擎所查找。 {代码...} 当打印 a 时,引擎就去作用域中查找 a,找到把结果返回。如果查找失败,那么就会报错。 词法作用域 JS 采用的词法作用域,也可以说...

前端 | 每天一个 LeetCode

2018-11-26
阅读 6 分钟
6.6k
这篇文章记录我练习的 LeetCode 题目,语言 JavaScript。 在线网站:[链接] GitHub 地址:[链接]我的微信公众号: 完整题目列表 从 2018 年 11 月 11 日起,每天更新一题,顺序从易到难,目前已更新 138 个题。(下表不再更新) 题目 源码 公众号原文解析 难度 830 较大分组的位置 Positions of Large Groups ↗ Easy 766...

分析 JavaScript 的数据类型与变量

2018-11-14
阅读 6 分钟
5.6k
这篇文章,来聊聊 JS 中的数据类型与变量。这是在学习 JS 时最基础的一类问题,但却很重要。希望我的分享有帮助到你。 文章开头,我先提几个面试中遇到的问题: 比如:如何理解参数的按值传递? 什么是暂时性死区? 什么是变量提升? 全局变量和 window 的属性有什么区别?为什么? ... ... 这篇文章的风格,在分析知识...