打通JavaScript任督二脉【上】
快来白嫖【也曾感同身受那种看得晦涩难懂就很受挫想放弃的煎熬,菜狗会尽量整理的简单接地气一些,每位喜欢前端的道友都能有或多或少的收获】
咩咩羊10
微光·炬火
展开
-
JS字面量-最简单的理解方式
快速区分字面量 理解字面量,我们可以结合变量去理解。可以理解为用来为变量赋值时的常数量。 例如 let a = 1 那么a是变量,1是数字字面量。 那么在看到一个值时,如何判断是否字面量呢? 首先这个量可以作为一个合格的表达式,并且执行结果等于其自身。例如: 字面量分为字符串字面量(string literal )、数组字面量(array literal)和对象字面量(object literal)、函数字面量(function literal)等等。 Exercise–判断如下代码的字面量与变量: le原创 2020-12-25 17:27:42 · 1080 阅读 · 0 评论 -
【8期】JavaScript ——老哥,缺对象不?
定义一个对象 声明形式 var obj = { key: value, key1: value1, ... } 构造形式 var obj = new Object(); obj.key = value; ... 区别 构造形式需要逐个添加属性,声明形式可以一次性添加多个属性。 对象类型 tips:Javascript的7中基本语言类型是:string,number,boolean,null,undefined,symbol,object. 内置对象 JS中的一些.原创 2020-09-15 18:52:36 · 106 阅读 · 0 评论 -
【7期】彻底搞懂JS原型继承之——new 关键字都干了啥
实例化构造函数,获取对象 新建了一个对象 obj 这个新对象被执行[[prototype]]连接,即将obj的_proto_指向构造函数的prototype对象 将构造函数的作用域赋值给obj,即将构造函数this指向obj 执行构造函数中的代码(为新对象obj添加属性) 如果函数没有返回其他对象,那么返回新对象 obj // 定义构造函数 function Fa (attr1, attr2) { this.attr1 = attr1 this.attr2 = attr2原创 2020-09-11 17:12:24 · 199 阅读 · 0 评论 -
【6期】彻底搞懂JS原型继承之——typeof与instanceof
本文结合代码讲解,争取一次理解透,前提是需要掌握__proto__ 和prototype。__proto__ 和prototype关系转换可以参考上一片文章《__proto__、prototype、constructor》 typeof 用途:typeof operand || typeof(operand),返回一个字符串,表示未经计算的操作数的类型。 区分范围: number、undefined、symbol、string、function、boolean、object这七种数据类型 无法区.原创 2020-09-10 11:48:44 · 255 阅读 · 0 评论 -
【5期】彻底搞懂JS原型继承之——函数对象和普通对象
JS对象分为函数对象与普通对象 函数对象,其实就是 JavaScript 的用函数来模拟的类实现。 所有 Function 的实例都是函数对象,其他的均为普通对象,其中包括 Function 实例的实例。 Function.__proto__ === Function.prototype//true function fun1(){}; const fun2 = function(){}; const fun3 = new Function('name','console.log(name)'); con原创 2020-09-09 19:42:59 · 1118 阅读 · 0 评论 -
【4期】彻底搞懂JS原型继承之——__proto__、prototype、constructor
__proto__ __proto__属性指向原型对象,也可以理解为父类对象。 prototype 函数的原型对象,给其它对象提供共享属性,函数所独有的。所有对象,都可以作为另一个对象的 prototype。 原型链 当你在访问一个对象属性的时候,如果该对象内部不存在这个属性,那么就回去它的__proto__属性所指向的对象(父类对象)上查找,如果父类对象依旧不存在这个属性,那么就回去其父类的__proto__属性所指向的父类的父类上去查找。以此类推,知道找到 null。而这个查找的过程,也.原创 2020-09-09 19:28:16 · 561 阅读 · 0 评论 -
【3期】javascript的this指向-完整场景
目录 默认绑定 隐式绑定 显式绑定 new绑定 默认绑定 全局环境中,this默认绑定到window 在控制台中分别执行以下代码,注意,全局变量相当于window对象的属性 <1> console.log(this==window) // true <2> var a={ foo:"123", bar:"456", that:this } a.that // window <3> this // window 函数独立调用或者被嵌套函数独立调用时.原创 2020-09-08 17:16:26 · 355 阅读 · 0 评论 -
【2期】JS 执行机制+code讲解
tips js是单线程,异步是用同步方法模拟实现的。 event loop 是js的执行机制 任务 |````宏任务:整体代码script、setTimeout、setInterval、 I/O 操作、UI 渲染等 任务-| |__微任务: Promise.then、process.nextTick、catch、finally 一个event loop有一个或者多个task队列。当用户代理安排一个任务,必...原创 2020-09-07 16:31:59 · 339 阅读 · 0 评论 -
【1期】作用域链干货梳理,配套面试题练习
注:本文仅总结本人觉得相关容易混淆的点,关于作用域链完整的描述网上很容易找到大量资源哈。 末尾附有相关易错练习题,有兴趣可以一起探讨解题思路 1.编译原理 : 分词/词法分析, 解析/语法分析, 代码生成 2.JS执行: 引擎, 编译器, 作用域 3.词法作用域(静态作用域): 无论函数在哪里被调用,也无论他如何被调用,他的词法作用域只由函数被声明位置决定。 两个欺骗行为:eval(), with() //可在代码动态执行时修改或新增作用域;降低性能 4.作用域链(...原创 2020-09-07 16:24:56 · 238 阅读 · 0 评论