Javascript 表达式中使用的未声明、未初始化的变量:怎么想?
我正在努力理解以下代码片段(位于名为Javascript 表达式中使用的未声明、未初始化的变量:怎么想?,javascript,variables,scope,initialization,variable-declaration,Javascript,Variables,Scope,Initialization,Variable Declaration,我正在努力理解以下代码片段(位于名为program.js的文件中)。 我的问题是,我找不到此文件中声明和/或初始化CODERBOT\u PROG\u SAVEONRUN的位置。 似乎没有导入任何外部代码或库 我在其他很多地方也遇到了同样的问题。 这是JavaScript的一个古怪特性,还是我应该去别的地方看看 如果在给定的JavaScript文件中使用了一个变量,但没有初始化和声明,我应该怎么想 如果没有明显的“导入”语句,它从何而来 function runProg() { var b
program.js
的文件中)。
我的问题是,我找不到此文件中声明和/或初始化CODERBOT\u PROG\u SAVEONRUN
的位置。
似乎没有导入任何外部代码或库
我在其他很多地方也遇到了同样的问题。
这是JavaScript的一个古怪特性,还是我应该去别的地方看看
如果在给定的JavaScript文件中使用了一个变量,但没有初始化和声明,我应该怎么想
如果没有明显的“导入”语句,它从何而来
function runProg() {
var bot = new CoderBot();
// Generate JavaScript code and run it.
window.LoopTrap = 1000;
Blockly.Python.INFINITE_LOOP_TRAP = ' get_prog_eng().check_end()\n';
var code = Blockly.Python.workspaceToCode();
if(CODERBOT_PROG_SAVEONRUN) {
Blockly.Python.INFINITE_LOOP_TRAP = null;
var xml_code = Blockly.Xml.workspaceToDom(Blockly.mainWorkspace);
var dom_code = Blockly.Xml.domToText(xml_code);
var data = {'name': prog.name, 'dom_code': dom_code, 'code': code};
try {
$.ajax({url: '/program/save', data: data, type: "POST", success:function(){
loadProgList();
}});
}catch (e) {
alert(e);
}
}
try {
var data = {'name': prog.name, 'code': code};
$.ajax({url: '/program/exec', data: data, type: "POST"});
$("#dialogRunning").popup("open", {transition: "pop"});
setTimeout(statusProg, 1000);
} catch (e) {
alert(e);
}
}
在JavaScript中,存在由函数定义的全局上下文和局部上下文。如果函数中未定义变量,则该变量在全局上下文中定义。在浏览器中,全局上下文为
窗口
;在该窗口中运行的所有脚本共享相同的全局上下文
您要查找的变量是在
templates/config_params.html
中定义的。它和program.js
脚本都包含在templates/main.html
中,这使得在显示该页面时,每个变量的全局变量对另一个可见。它看起来像是在该文件中初始化的:
我假设模板包含在页面顶部,初始化所有常量,如
CODERBOT\u PROG\u SAVEONRUN
。这是一种将变量从服务器公开给客户端的方法。我必须等待4分钟才能接受这个答案。你怎么这么快就解决了?XD我一直在挠头第二段,使用GitHub的搜索功能。:)