![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
你不知道的js
Lomon6
Talk is cheap ...
展开
-
(五-1)this相关例题
注意:以下代码全基于浏览器非严格模式运行咱先定义一个全局变量a,后面所有的示例都假定此全局变量已存在:var a = 0;案例一 :执行环境// demo1var obj = { a: 1, b1: this.a, b2: () => this.a,};console.log(obj.b1); console.log(obj.b2()); 【要知道的】JS代码有三种运行环境Global Code : JavaScript代码开始运行的默认环境 this原创 2020-08-25 11:20:31 · 466 阅读 · 0 评论 -
(六)this绑定的例外
文章目录原创 2020-08-22 11:42:18 · 119 阅读 · 0 评论 -
(五)this全面解析
文章目录this的误解this指向函数自身this指向函数作用域this到底是什么this的全面解析默认绑定隐式绑定隐式丢失显示绑定call、apply硬绑定new绑定四种绑定的优先级this的误解this指向函数自身大多数人会根据this的字面意思将它理解为【指向函数自身】。什么情况下,this会指向自身呢?递归 。也就是从函数本身的内部调用自己当我们写一个第一次调用后,自己解除绑定的事件处理器时,这个时候也需要使用到函数自身但是this真的就是指向函数自身吗?function f原创 2020-08-21 21:34:08 · 309 阅读 · 0 评论 -
(四)作用域闭包
傻大个原创 2020-08-20 12:21:21 · 150 阅读 · 0 评论 -
(三)函数作用域和块作用域
文章目录函数作用域隐藏内部实现规避冲突函数表达式函数表达式和函数声明的区别匿名和具名立即执行函数表达式块作用域函数作用域JS中具有基于函数的作用域,意味着每声明一个函数都会为其自身创建一个作用域气泡。属于这个函数的所有变量都可以在整个函数的范围内使用及复用(事实上嵌套的作用域也可以使用)。隐藏内部实现我们可以从写的代码中挑选出一个任意片段,然后用函数声明对它进行包装,实际上就是把这些代码“隐藏”起来了。此时代码中的任何声明(变量或函数)都将绑定在这个新创建的包装函数的作用域中,而不是先前所在的原创 2020-08-19 21:34:09 · 239 阅读 · 0 评论 -
(二) 词法作用域
文章目录词法阶段词法作用域欺骗词法作用域evalwith词法阶段【要知道的】:大部分标准语言编译器的第一个工作阶段就叫词法化(也称为单词化)在这个过程中,编译器会对源码中的字符进行检查,如果是有状态的解析过程,还会赋予单词语义词法作用域词法作用域就是定义在词法阶段的作用域换句话说,词法作用域就是你在写代码时,将变量和块作用域写在哪里的位置决定的function foo(a){ var b = a * 2; function bar(c){ console.log(a,原创 2020-08-19 11:49:13 · 174 阅读 · 0 评论 -
(一)编译器+引擎+作用域的关系
文章目录要知道的传统编译语言的流程分词/词法分析解析/语法分析代码生成js引擎中的编译器三个搭档引擎编译器作用域var a = 2 发生了什么编译器的小术语要知道的我们通常将JavaScript归类为“动态”或“解释执行”语言,但事实上它是一门编译语言与传统的编译语言不同,js不是提前编译的,编译结果也不可以在分布式系统中进行移植,尽管如此,js引擎进行编译的步骤和传统的编译语言还是非常的相似,但他在某些环节可能会更复杂传统编译语言的流程在传统编译语言的流程中,如果程序中的一段源代码需要执行,原创 2020-08-18 18:40:00 · 412 阅读 · 0 评论