问题标签 [javascript-scope]
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 变量范围
我有一个关于变量值是否在不同调用之间持续存在的问题。
我有一个名为 shared.ts 的文件,其中包含一个变量 isSignIn 和一个函数 signIn,如下所示:
此登录函数由其他文件调用。在测试期间,似乎 isSignIn 的值在不同的调用之间持续存在。我想知道为什么。
javascript - 如何在 Javascript 中使用超出其范围的变量?
我想使用超出其范围的“标签”变量,我该怎么做?我知道这不是一个好习惯,但我仍然想使用标签数组中的值。我尝试克隆变量,但范围问题仍然存在
编辑1: 我想以这种方式使用标签
但控制台显示错误“Cannot use undefined for forEach”
typescript - 在 TypeScript 中为微信小程序定义全局变量
亲爱的 StackOverflow 用户,
我为浏览器和微信小程序制作了一个模块。该模块是用多个 TypeScript 编写的,并被编译成一个缩小的文件。在该模块中,我需要使用 DOM/BOM API,例如document
'window , 'navigator
. 在浏览器上,加载和使用编译好的单文件没有问题。
但是在微信小程序上,没有global
Node上的对象。也没有浏览器上的document
全局window
对象。为了解决这个问题,我为每个环境做了两个构建命令。
grunt build
, 浏览器的标准 TS 编译grunt wx_build
,标准TS编译并附加微信小程序补丁代码
修补后的 js 文件如下所示:
在微信小程序项目中,我将mymodule-bundle.min.js
和miniapp-adapter
放在同一个文件夹中。结果,我可以将我的 HTML5 应用程序移植到微信小程序中。
但我想要一种更聪明的方法来做到这一点。
微信小程序运行时如何声明
window
ordocument
全局变量?mymodule.ts
谢谢你。
geolocation - 如何使用 geolocation.getCurrentPosition 设置变量
这与这篇文章有关,但不同之处在于我试图理解为什么我不能从 geolocation.getCurrentPosition 内部设置外部变量
我似乎无法从中获得任何类型的返回值,也无法从中设置值。我只能从里面访问位置对象。我试过传入this
。
我叉了derek-朕会功夫的小提琴并修改了它: https ://jsfiddle.net/TwoFistedJustice/c3qr29L7/1/
这是基于这篇文章的另一个小提琴:
https://jsfiddle.net/TwoFistedJustice/yu8Lzjvx/4/
我很困惑。
有人可以帮我:
- 了解幕后发生的事情,使其以这种方式运行。
- 了解如何从 getCurrentPosition() 内部设置外部范围内的变量。
jquery - JQUERY 应用程序中的多个文件管理
如何使用多个文件拆分 JQUERY 或在一个文件中访问变量
文件1.js
文件2.js
html中包含顺序,file1.js file2.js
它不工作,我想让它工作,我该怎么做。
javascript - 使用 let 关键字在块内重新声明变量并在它之前访问但给出错误
ReferenceError: a 未定义
为什么即使 a 是使用 var 声明的,它也应该在块内有它的范围,它也会给出参考错误?
javascript - Javascript 经典脚本与模块范围
我的 javascript 前端代码中有一些奇怪的行为,所以我要问一个回归基础的问题。首先,我将设置一些示例。
script1.js
script2.js
模块1.js
模块2.js
test_page1.html
test_page2.html
以下是我的问题:
- 在运行时,由于
test_page1.html
布局方式,我认为script2.js
可以在script1.js
不需要任何导入 的情况下script1.js
调用函数,但可以在script2.js
? 基本上顺序重要吗?我很肯定它确实如此。 test_page2.html
函数从和module1.js
可module2.js
见到script1.js
和script2.js
?如果不是,如何使它们对他们可见?- 在不使用导入的情况下,
test_page2.html
函数是否从module1.js
可见到?module2.js
基本上我的问题归结为,如何在模块中使用经典脚本(其中没有导出)?以及如何在经典脚本中使用模块。将经典脚本转换为模块在这里不是一个选项,因为有很多代码依赖于将其用作经典脚本。模块也是如此,它们不能转换为经典脚本,因为有其他代码将它们用作模块。
谢谢您的帮助
javascript - JS| 初始化对象在访问它的函数多次运行后未定义
我正在尝试减少 Chrome 扩展程序中的全局变量,以减少 JavaScript 中的“意大利面”或歧义。
我试图通过使用一个 init 函数来尝试此操作,该函数在可能多次触发的 mousedown eventListener 回调函数中声明这些否则为全局变量。
这样我就可以将这些变量 + 事件作为此类回调的参数传递给其他 eventListener 回调(即 mouseup 回调)。
我已将问题分解为一个单独的文件:
索引.html
测试.js
我用来控制执行的方法initVariables()
是一个全局布尔变量,isVarsInitOnce
它在初始化变量和设置对象以在executesMoreThanOnce()
函数中使用一次时是有效的。
在循环中调用函数的第一个实例中可以访问for
对象,但是undefined
当尝试在for
循环中调用函数的辅助实例中访问对象时。
这在控制台输出中相当清楚地表示:
我不确定为什么会发生这种情况。
谁能帮我理解为什么这不能正常工作?
关于我的案例,有没有人对减少全局变量有更好的建议?
非常感谢。
javascript - Javascript变量未在函数内部更新
上面的代码输出 100,而
输出 1000
有人可以解释为什么当参数名称也是“数字”时数字没有在函数内更新其值