相关疑难解决方法(0)

了解jquery源代码

我最近开始深入研究JavaScript,并在JQuery中遇到了这个代码构造.

(function( window, undefined ) {
})(window)
Run Code Online (Sandbox Code Playgroud)

阅读堆栈溢出(和其他地方)我得出结论,这是相同的

function foo(window, undefined) {
    ...
}

foo(window);
Run Code Online (Sandbox Code Playgroud)

我的假设是否正确?如果是这样,前者的优势是什么?(除了令人困惑的新手)

javascript jquery

7
推荐指数
2
解决办法
3415
查看次数

跟随函数(jQuery,window,document)有什么作用; 意思?

我有以下插件:

;(function($, window, document)
{
...
...

})(jQuery, window, document);
Run Code Online (Sandbox Code Playgroud)

我能理解是什么; 是为了并且也意识到$是jQuery,但有人可以解释为什么函数后跟(jQuery,window,document);

javascript jquery

7
推荐指数
1
解决办法
6634
查看次数

为什么要重用`undefined`?

John Resig关于他如何构建jQuery 1.4 的幻灯片中,他提到了一个点,他undefined在jQuery闭包中添加了一个变量,因为"我们可以重用(变量)".

undefined 不是一个普通的变量:

> var undefined = 4
  undefined
> undefined
  undefined
Run Code Online (Sandbox Code Playgroud)

因此,我们知道undefined不是变量.那么为什么undefined在jQuery源代码中会重新定义?

幻灯片31

javascript jquery

7
推荐指数
2
解决办法
145
查看次数

以下两个javascript代码有什么区别?

在一些使用立即函数的Javascript代码中,它有参数windowdocument类似如下:

(function (window, document) {
  ...
})(window, document);
Run Code Online (Sandbox Code Playgroud)

然而,windowdocument是全局对象,可通过后续可直接访问:

(function () {
  var userAgent = window.navigator.userAgent;
  ...
  var el = document.getElementById(...)
  ...
})();
Run Code Online (Sandbox Code Playgroud)

上述两个代码之间有什么区别.哪种方式更好,为什么?

javascript function

7
推荐指数
1
解决办法
159
查看次数

为什么JavaScript文件以(函数(未定义))开头?

我发现有些地方的人正在编写带有启动功能的JavaScript(未定义).我可以知道为什么他们这样写这样的优点和缺点是使用这样的

(function(undefined) {
    /* some logic functions etc..*/
})();
Run Code Online (Sandbox Code Playgroud)

javascript iife

5
推荐指数
0
解决办法
42
查看次数

是否将窗口对象传递给IIFE可选?

以下示例之间有什么区别吗?

例1:

(function (window) {
 'use strict';
  console.log(window)
})(window);
Run Code Online (Sandbox Code Playgroud)

例2:

(function () {
 'use strict';
  console.log(window)
})();
Run Code Online (Sandbox Code Playgroud)

传递窗口对象是否可选?

javascript

4
推荐指数
1
解决办法
362
查看次数

为什么jQuery文件在其函数中有两个参数但只接收一个参数

可能重复:
这个JavaScript/JQuery语法如何工作:( function(window,undefined){})(window)?

我试图了解js范围和匿名函数.我试图读取jQuery.js文件,它看起来像这样:

(function( window, undefined ) {

...

}(window));
Run Code Online (Sandbox Code Playgroud)

undefined当执行时没有参数传递给它时,为什么它在函数参数中有?

javascript jquery

3
推荐指数
1
解决办法
109
查看次数

如何在javascript中覆盖窗口和未定义?

我见过这样的例子

(function($, window, undefined) {
  ...
  // Do awesome stuff
  ...
})(jQuery, this);
Run Code Online (Sandbox Code Playgroud)

我理解将jQuery作为参数传递并接收为$.

这样做是为了避免jquery的$和任何全局变量$(由错误或某些第三方库定义)之间的冲突.

为什么人们传递this和接受window,并得到undefined函数的参数?

我们有什么方法可以覆盖窗口和undefined?

PS:我已经在Chrome中试过了

undefined = 2; // 2
undefined == 2; // false
Run Code Online (Sandbox Code Playgroud)

它证明未定义不能被覆盖.

javascript parameters jquery function

3
推荐指数
1
解决办法
2758
查看次数

增强的Javascript for-statement可以安全使用吗?

使用jQuery for循环非常慢,这就是我考虑更频繁地使用常规for语句的原因.为了直接访问当前元素,我发现了以下语法(对于常规数组,当然不是对象):

for (var i = 0, e; e = array[i]; i++) { ... }
Run Code Online (Sandbox Code Playgroud)

e循环中的哪个位置表示当前元素.

这种语法在所有浏览器中都可以安全使用吗?


加成

好吧,我想这可行,但对于简短的符号它不再那么有用了:

for (var i = 0, e; (e = array[i]) !== void(0); i++) { ... }
Run Code Online (Sandbox Code Playgroud)

谢谢大家回答!

javascript for-loop abbreviation

1
推荐指数
1
解决办法
227
查看次数

jQuery中的下一个参数是'undefined',为什么?

在下面的代码中jQuery,为什么下一个参数是undefined

JavaScript的:

(function(a,b){
    ....
})(window)
Run Code Online (Sandbox Code Playgroud)

在这里a=window,但是b=undefined,为什么会这样?

javascript jquery

0
推荐指数
2
解决办法
2666
查看次数

标签 统计

javascript ×10

jquery ×6

function ×2

abbreviation ×1

for-loop ×1

iife ×1

parameters ×1