2012-09-18 30 views

回答

1

大多数情况下,当您看到该模式时,他们确保'未定义'确实是未定义的。看看他们在底部如何不通过任何论点。

这是一个自动执行功能,您可以传递参数给它。

(function(undefined) { // no parameters are passed in so undefined is undefined. 
"use strict"; 

})(/*no parameters passed*/) 

如果您的代码使用不确定的,你需要确保一些其他的JavaScript库不会改变的不确定的含义,那么你可能需要使用这种模式。然而,这不是一般的情况,它只是一个安全网。由于某种原因,在javascript'undefined'中可以像设置其他变量一样设置一个值。

+0

感谢您的回答。无论如何,我的问题是应该总是使用未定义的参数。如果不是当? –

+1

@LorraineBernard - 取决于你是多么偏执。在我的网站上,我不使用随机的第三方代码,我使用的一些库的表现非常好,所以我不使用这种模式。如果您正在编写可能包含在不受您控制的随机页面中的JS的snippits,那么您可能需要更高级别的编码偏执狂。 –

2

在Javascript中,undefined不是一个特殊关键字。这是一个常规的全球变量。

如果undefined被外部代码改变,它可能会导致奇怪的错误。有些人在其undefined的函数声明中声明了一个未使用的参数,因此该函数将具有一个名为undefined的变量,其已知值为undefined

var undefined在函数体中做同样的事情,但需要多一些字节。

+0

感谢您的回答。无论如何,我的问题是应该总是使用未定义的参数。如果不是当? –

+0

每当你担心有人可能用'undefined.'取代它,这取决于你是否完全控制了你的代码,或者你的代码是否与可能破坏/敌对的代码混合并匹配。 –