javascript
文章平均质量分 88
十里八乡有名的俊后生:
这个作者很懒,什么都没留下…
展开
-
【js运算符——常见的运算符】
算数运算符、赋值运算符、比较运算符、条件运算符转载 2022-12-09 22:34:49 · 104 阅读 · 1 评论 -
【块级作用域,同名函数,同名变量命名冲突的问题】
块语句中的 var 和 命名式函数会进行预解析。但块语句中的 命名式函数,不会预赋值,它会在进入块语句后迅速赋值为函数。如果块语句中出现变量 和 函数同名时,执行语句块 最后打印的是 正常顺序赋值的 变量 结果。但是在语句块外,打印的是 是最后一个同名函数上面的 赋值变量结果。如果语句块中 变量 和 函数名相同时,且只有一个变量和一个函数,函数在变量前时,最后打印的结果是函数,变量在函数前时,最后打印的结果是变量在块语句中,不管有几个同名函数,都会被最后一个同名函数覆盖掉。由以上特点推断,如果原创 2022-12-04 00:19:01 · 298 阅读 · 0 评论 -
【js作用域】
Scope,翻译成中文就是 范围 的意思,在编程语言中一般叫作用域。《JavaScript 权威指南》(第7版)第52页,是这样表述的:变量的作用域是程序源代码中的一个区域,在这个区域内变量有意义。作用域最大的用处就是隔离变量、防止命名冲突,各个作用域之间的变量是相互独立的,互不影响即使是同名变量,只要在不同的作用域内,他们就不会有冲突,避免变量污染。对于JS 来说,有三种作用域:全局作用域、函数作用域、和 块级作用域。一个页面打开就是一个全局作用域。用来定义全局变量。在 标签中定义的变量都是全局变量。翻译 2022-12-03 12:05:16 · 96 阅读 · 0 评论 -
【js作用域链】
当一个块或函数嵌套在另一个块或函数中时,就发生了作用域的嵌套。因此,在当前作用域中无法找到某个变量时,引擎就会在外层嵌套的作用域中继续查找,直到找到该变量,或抵达最外层的作用域(也就是全局作用域)为止。注意:作用域嵌套,不是嵌套作用域也就是变量的访问机制。在某个作用域中使用,但不是在该作用域中声明的变量就是自由变量。上面的代码中,a 变量就是一个自由变量。也可以这样理解:凡是跨了自己的作用域的变量都叫自由变量。词法作用域:是指在作用域只和源代码有关,也就是说,在代码编写完毕后,变量的作用域已经确定翻译 2022-12-04 00:00:34 · 86 阅读 · 0 评论 -
【js执行上下文】
执行上下文是指 JavaScript 代码被编译和执行时所在的环境,也可以称之为执行环境;JavaScript 中运行任何的代码都是在执行上下文中运行的。执行上下文:在 ES3、ES5 中都有不同的规定。所以也就流传了多种解释。其中 ES3 的解释流传最广(《JavaScript 高级程序设计》中使用了这种解释)。虽然这几种解释不太一样,但是无论哪一种,只要能搞明白,对我们 JS 的学习都会有很大的帮助。准确来说,执行上下文有三种类型,分别是:全局执行上下文、函数执行上下文、函数执行上下文。但是由翻译 2022-12-03 12:38:31 · 628 阅读 · 0 评论 -
【js执行上下文 ES3版】
创建执行上下文,主要做了 3件事。如果我们使用伪代码模拟一下它的结构的话,大致是这样的。一、变量对象 和 活动对象变量对象 :变量对象是执行上下文的一部分,在它之中保存着当前执行上下文中的变量和函数声明。该对象是隐式的,我们无法直接访问。对于浏览器上 JS 来说 或 全局执行上下文来说,变量对象其实就是 window 对象。活动对象 :对于函数来说,如果未被调用,则不会产生执行上下文,也就没有变量对象。不过当它被调用的时候,就需要了,此时变量对象相当于被激活了,所以我们称之为活动对象。它翻译 2022-12-03 23:00:34 · 82 阅读 · 0 评论 -
【js执行上下文 ES5版】
从ES5 开始,对之前的执行上下文作了调整,变量对象和活动对象这些概念不再提了。其实就是换词儿了。用的是 Lexical Environment词法环境 和 Environment Record环境记录。也就是说,执行上下文(执行环境)还是有的,和 ES3 的基本一样,只不过执行环境的内容有些变化。创建执行上下文阶段,主要办3件事:1. this 值的决定,即咱们所熟知的 this 绑定。2. 建立 词法环境组件(Lexical Environment)。3. 建立 变量环境组件(Variable En翻译 2022-12-03 23:40:34 · 146 阅读 · 0 评论