首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JavaScript 深入系列
冴羽
创建于2021-11-28
订阅专栏
旨在帮大家捋顺 JavaScript 底层知识,重点讲解如原型、作用域、执行上下文、变量对象、this、闭包、按值传递、call、apply、bind、new、继承等难点概念。
等 674 人订阅
共19篇文章
创建于2021-11-28
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
JavaScript 深入之从原型到原型链
JavaScript 深入系列的第一篇,从原型与原型链开始讲起,如果你想知道构造函数的实例的原型,原型的原型,原型的原型的原型是什么,就来看看这篇文章吧
JavaScript 深入之词法作用域和动态作用域
JavaScript 采用词法作用域,什么语言采用了动态作用域?两者的区别又是什么?还有一个略难的思考题,快来看看吧
JavaScript深入之执行上下文栈
顺序执行? 如果要问到 JavaScript 代码执行顺序的话,想必写过 JavaScript 的开发者都会有个直观的印象,那就是顺序执行,毕竟: 然而去看这段代码: 打印的结果却是两个 foo2。
JavaScript深入之变量对象
前言 在上篇《JavaScript深入之执行上下文栈》中讲到,当 JavaScript 代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution cont
JavaScript深入之作用域链
前言 在《JavaScript深入之执行上下文栈》中讲到,当JavaScript代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context)
JavaScript 深入之从 ECMAScript 规范解读 this
前言 在《JavaScript深入之执行上下文栈》中讲到,当JavaScript代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution context)
JavaScript深入之执行上下文
前言 在《JavaScript深入之执行上下文栈》中讲到,当 JavaScript 代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution contex
JavaScript深入之闭包
定义 MDN 对闭包的定义为: 那什么是自由变量呢? 由此,我们可以看出闭包共有两部分组成: 举个例子: foo 函数可以访问变量 a,但是 a 既不是 foo 函数的局部变量,也不是 foo 函数的
JavaScript深入之参数按值传递
定义 在《JavaScript高级程序设计》第三版 4.1.3,讲到传递参数: 什么是按值传递呢? 按值传递 举个简单的例子: 很好理解,当传递 value 到函数 foo 中,相当于拷贝了一份 va
JavaScript深入之call和apply的模拟实现
call 一句话介绍 call: 举个例子: 注意两点: call 改变了 this 的指向,指向到 foo bar 函数执行了 模拟实现第一步 那么我们该怎么模拟实现这两个效果呢? 试想当调用 ca
JavaScript深入之bind的模拟实现
bind 一句话介绍 bind: 由此我们可以首先得出 bind 函数的两个特点: 返回一个函数 可以传入参数 返回函数的模拟实现 从第一个特点开始,我们举个例子: 关于指定 this 的指向,我们可
JavaScript深入之new的模拟实现
new 一句话介绍 new: 也许有点难懂,我们在模拟 new 之前,先看看 new 实现了哪些功能。 举个例子: 从这个例子中,我们可以看到,实例 person 可以: 访问到 Otaku 构造函数
JavaScript 深入之类数组对象与 arguments
类数组对象 所谓的类数组对象: 举个例子: 即便如此,为什么叫做类数组对象呢? 那让我们从读写、获取长度、遍历三个方面看看这两个对象。 读写 长度 遍历 是不是很像? 那类数组对象可以使用数组的方法吗
JavaScript深入之创建对象的多种方式以及优缺点
写在前面 这篇文章讲解创建对象的各种方式,以及优缺点。 但是注意: 这篇文章更像是笔记,因为《JavaScript高级程序设计》写得真是太好了! 1. 工厂模式 缺点:对象无法识别,因为所有的实例都指
JavaScript深入之继承的多种方式和优缺点
写在前面 本文讲解JavaScript各种继承方式和优缺点。 但是注意: 这篇文章更像是笔记,哎,再让我感叹一句:《JavaScript高级程序设计》写得真是太好了! 1.原型链继承 问题: 1.引用
JavaScript深入系列15篇正式完结!
写在前面 JavaScript 深入系列共计 15 篇已经正式完结,这是一个旨在帮助大家,其实也是帮助自己捋顺 JavaScript 底层知识的系列。重点讲解了如原型、作用域、执行上下文、变量对象、t
JavaScript深入之头疼的类型转换(上)
在 JavaScript 中,有一部分内容,情况复杂,容易出错,饱受争议但又应用广泛,这便是类型转换。 将值从一种类型转换为另一种类型通常称为类型转换。 ES6 前,JavaScript 共有六种数据类型:Undefined、Null、Boolean、Number、String…
JavaScript深入之头疼的类型转换(下)
这其实是因为 JavaScript 自动的将数据类型进行了转换,我们通常称为隐式类型转换。但是我们都知道,+运算符既可以用于数字加法,也能用于字符串拼接,那在这个例子中,是将数字 1 转成字符串 '1',进行拼接运算?还是将字符串 '1' 转成数字 1,进行加法运算呢? 先卖个…
JavaScript 深入之浮点数精度
0.1 + 0.2 是否等于 0.3 作为一道经典的面试题,已经广外熟知,说起原因,大家能回答出这是浮点数精度问题导致,也能辩证的看待这并非是 ECMAScript 这门语言的问题,今天就是具体看一下背后的原因。 ECMAScript 中的 Number 类型使用 IEEE75…