Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
浏览器如何读取JavaScripts,哪个应该放在第一位(设置在顶部)和#xFF1A;事件功能?或子功能_Javascript_Jquery - Fatal编程技术网

浏览器如何读取JavaScripts,哪个应该放在第一位(设置在顶部)和#xFF1A;事件功能?或子功能

浏览器如何读取JavaScripts,哪个应该放在第一位(设置在顶部)和#xFF1A;事件功能?或子功能,javascript,jquery,Javascript,Jquery,一个简单的问题 我有一个web项目,包括多个Java脚本 JS: (1) ,(2)在一个javascript文件中,哪一个应该排在第一位?如果浏览器先读取函数,它是否将函数存储在内存中,并在扫描事件时调用该函数 在某些情况下,在多javascript中定义相同的函数。e、 g prm.add_endRequest(function() { fn1(); fn2(); }); $(document).ready(.......) 我应该复制函数名并在每个js文件中定义每个组件吗

一个简单的问题

我有一个web项目,包括多个Java脚本

JS:

(1) ,(2)在一个javascript文件中,哪一个应该排在第一位?如果浏览器先读取函数,它是否将函数存储在内存中,并在扫描事件时调用该函数

在某些情况下,在多javascript中定义相同的函数。e、 g

prm.add_endRequest(function() {
    fn1();
    fn2();
});

$(document).ready(.......)
我应该复制函数名并在每个js文件中定义每个组件吗。
或者将函数声明保存在一个文件中,并调用子函数组合函数?

以以下方式定义的函数:

function fooBar(){}
被“提升”到当前范围的顶部。这意味着它们在当前范围内始终可用,即使它们是在文件末尾定义的

如果您定义了如下函数,则不成立:

 var fooBar = function(){};
这些功能未被提升,必须在使用前进行定义

应该注意的是,在您的特定示例中,
keyUpFunction
仅在触发keyup事件后才会被调用。这也意味着页面上的所有javascript都已经被计算过了,因此不管怎样,keyup函数都已经被定义(解析)了

编辑:更明确地说,第一个示例可以:

doSomething('hello world');
function doSomething(str){ 
   console.log(str);
} 
但是,这会给您带来以下问题:

doSomething('hello world');
var doSomething = function(str){ 
   console.log(str);
} 

@马特的回答很好地涵盖了这个功能

为避免多个文件中的函数名冲突,请将内容包装在立即调用的函数表达式中,例如:


其中声明的任何变量或函数都将被限制在该范围内。

我花了几分钟才记住关键字“起重机”。我一直在想-是“提升”,不是,是“提升”,不是,该死,有人会把我打败!
doSomething('hello world');
var doSomething = function(str){ 
   console.log(str);
} 
(function() {
     // put your variables functions here
     ...

     // register event handlers
})();