问题标签 [hoisting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1454 浏览

javascript - 需要了解Javascript函数吊装示例

我阅读了 Javascript Hoisting 的概念。它非常令人困惑,但我看到了一些示例并了解了提升的实际作用。

所以基本上“提升是 JavaScript 将所有声明移动到当前范围的顶部(到当前脚本或当前函数的顶部)的默认行为。

但我无法理解以下实现:

输出在警告框中显示“我不是 Android ”。

我想知道为什么foo()即使is_androidvalue 为 true 也会从 else 块中调用。

任何帮助将不胜感激。

0 投票
3 回答
49 浏览

javascript - 匿名函数中的javascript奇怪行为

我有以下java脚本代码

它警报为 5 且未定义。我不明白为什么它也未定义警报。谁能告诉我为什么会发生这种行为?

0 投票
2 回答
7832 浏览

javascript - 如何为 setInterval 启动计数器

我有这个代码工作,但我想改进它:

我想使用一个外部函数以备将来使用,但是当我更改我拥有的代码时,存在一个提升问题,我不知道如何在不一直覆盖它的情况下获取 rotar() 函数内部的计数器:

我知道第一个有效,因为它们是嵌套的,而在第二个示例中则不是。如何在不使用 GLOBAL VARIABLE的情况下为 setInterval 设置计数器?(我的意思是......如果我第二次调用它,它不会从 0 开始。如果我在 animar() 函数中将它设置为 0,它会起作用,但是我需要将它设置为 0在使用计数器或使用具有不同名称的计数器的每个函数中。这两种可能性听起来不太好。)谢谢

0 投票
1 回答
4511 浏览

node.js - 为什么必须在文件底部声明模块的导出?

我有以下经过编辑的代码:

如果我在别处转到require()这个文件,它会崩溃节点并说所需的对象没有方法readwrite. 变量提升不会拉动上面的功能modules.export = { ... };吗?

0 投票
1 回答
210 浏览

javascript - 函数装饰器在没有评估的情况下重新分配提升的内部函数

我在玩功能装饰器。我想有一种方法可以轻松地装饰函数,而不必在声明函数的地方进行

我希望能够addDecorator在里面的任何地方打电话g。即在f其声明上方悬挂的顶部。

在 Chrome 的控制台中,我得到以下输出:

  1. 这可以在没有评估的情况下完成吗?
  2. addDecorator 可以移到 g 外吗?(没那么重要)
0 投票
4 回答
283 浏览

javascript - 由于某些 javascript 提升,变量显示为未定义

编辑:好的,我遇到了问题。#t01 ID 在 ajax 成功函数内无法访问,因此没有显示任何内容。它被称为 javascript 提升。但我没有找到解决这个问题的方法。当我将 document.getElementById('t01').innerHTML = content 放在 ajax 语句之外时,我得到未定义的显示

我无法让从 php 返回的 json 显示在我的 html 中。我不确定,我要去哪里错了。

索引.html

PHP 代码

JSON 响应

我正在从 mysql 获取数据到 php,并且从 php 被编码为 json 并发送到 html,但它没有显示在 html 中。

0 投票
2 回答
31 浏览

javascript - 对 Javascript 中的提升感到困惑

谁能向我解释为什么if里面的语句bar没有foo定义?

0 投票
4 回答
567 浏览

javascript - 提升没有'var'声明的JS变量

我试图了解 JavaScript 中的提升和作用域,并试图弄清楚这段代码中到底发生了什么。console.log(outside)并且console.log(local)两者都记录未定义,正如我所料,outside声明但未初始化,并且声明local被提升到函数的顶部。但是为什么typeof global等于'undefined'。在函数内部省略var与在全局范围内声明变量不同 - 在这种情况下它不会被提升吗?

http://jsfiddle.net/ffjiang/sYvbL/

0 投票
0 回答
147 浏览

javascript - JavaScript Hoisting in Repl.it

I put this code into repl.it expecting to get an undefined is not a function error.

Due to hoisting, I thought it would be interpreted as

Instead it logged "Hey foo" to the interactive interpreter.

Does hoisting only apply within the scope of a function or what's happening here?

When I wrapped the above code in a function, as below, the results were as expected, indeed undefined is not a function.

Just looking for some clarification on what's going on here. repl.it image

0 投票
2 回答
253 浏览

javascript - 使用立即调用的函数表达式时的 JavaScript 提升声明混淆

困惑了。

从我的角度来看,代码将被这样处理:

但其实它输出的是“我很酷”,这是为什么呢???