问题标签 [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.
javascript - 需要了解Javascript函数吊装示例
我阅读了 Javascript Hoisting 的概念。它非常令人困惑,但我看到了一些示例并了解了提升的实际作用。
所以基本上“提升是 JavaScript 将所有声明移动到当前范围的顶部(到当前脚本或当前函数的顶部)的默认行为。 ”
但我无法理解以下实现:
输出在警告框中显示“我不是 Android ”。
我想知道为什么foo()
即使is_android
value 为 true 也会从 else 块中调用。
任何帮助将不胜感激。
javascript - 匿名函数中的javascript奇怪行为
我有以下java脚本代码
它警报为 5 且未定义。我不明白为什么它也未定义警报。谁能告诉我为什么会发生这种行为?
javascript - 如何为 setInterval 启动计数器
我有这个代码工作,但我想改进它:
我想使用一个外部函数以备将来使用,但是当我更改我拥有的代码时,存在一个提升问题,我不知道如何在不一直覆盖它的情况下获取 rotar() 函数内部的计数器:
我知道第一个有效,因为它们是嵌套的,而在第二个示例中则不是。如何在不使用 GLOBAL VARIABLE的情况下为 setInterval 设置计数器?(我的意思是......如果我第二次调用它,它不会从 0 开始。如果我在 animar() 函数中将它设置为 0,它会起作用,但是我需要将它设置为 0在使用计数器或使用具有不同名称的计数器的每个函数中。这两种可能性听起来不太好。)谢谢
node.js - 为什么必须在文件底部声明模块的导出?
我有以下经过编辑的代码:
如果我在别处转到require()
这个文件,它会崩溃节点并说所需的对象没有方法read
或write
. 变量提升不会拉动上面的功能modules.export = { ... };
吗?
javascript - 函数装饰器在没有评估的情况下重新分配提升的内部函数
我在玩功能装饰器。我想有一种方法可以轻松地装饰函数,而不必在声明函数的地方进行。
我希望能够addDecorator
在里面的任何地方打电话g
。即在f
其声明上方悬挂的顶部。
在 Chrome 的控制台中,我得到以下输出:
- 这可以在没有评估的情况下完成吗?
- addDecorator 可以移到 g 外吗?(没那么重要)
javascript - 由于某些 javascript 提升,变量显示为未定义
编辑:好的,我遇到了问题。#t01 ID 在 ajax 成功函数内无法访问,因此没有显示任何内容。它被称为 javascript 提升。但我没有找到解决这个问题的方法。当我将 document.getElementById('t01').innerHTML = content 放在 ajax 语句之外时,我得到未定义的显示
我无法让从 php 返回的 json 显示在我的 html 中。我不确定,我要去哪里错了。
索引.html
PHP 代码
JSON 响应
我正在从 mysql 获取数据到 php,并且从 php 被编码为 json 并发送到 html,但它没有显示在 html 中。
javascript - 对 Javascript 中的提升感到困惑
谁能向我解释为什么if
里面的语句bar
没有foo
定义?
javascript - 提升没有'var'声明的JS变量
我试图了解 JavaScript 中的提升和作用域,并试图弄清楚这段代码中到底发生了什么。console.log(outside)
并且console.log(local)
两者都记录未定义,正如我所料,outside
声明但未初始化,并且声明local
被提升到函数的顶部。但是为什么typeof global
等于'undefined'
。在函数内部省略var
与在全局范围内声明变量不同 - 在这种情况下它不会被提升吗?
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.
javascript - 使用立即调用的函数表达式时的 JavaScript 提升声明混淆
困惑了。
从我的角度来看,代码将被这样处理:
但其实它输出的是“我很酷”,这是为什么呢???