在IF Javascript中分配变量

时间:2013-11-01 18:27:48

标签: javascript variable-assignment

我有以下代码:

if (images[i].parentNode) {
 var parent = images[i].parentNode;
}

执行此操作时,我将访问parentNode两次。我想知道这样做是否可能/正确:

if (var parent = images[i].parentNode) {
 // here I can access parent.
}

3 个答案:

答案 0 :(得分:0)

简答:否。

答案很长:你试过吗? :)你拥有的不是合法的JavaScript而且解释器不会接受它,因为那里不接受var关键字。

如果您不想两次访问parentNode,只需将其分配给变量:

var parent = images[i].parentNode;
if(parent) {
    ...
}

定义了哪个块parent并不重要,因为JavaScript没有块级范围。

可以但是,这样做:

if(parent = images[i].parentNode) {
   ...
}

但问题是parent将属于全局命名空间(如果您之前没有定义过它)。所以你可以这样做:

var parent;
if(parent = images[i].parentNode) {
    ...
}

但正如你所看到的那样,它与我之前建议的并没有太大的不同,所以你并没有真正用这种方式购买自己的东西,它也容易引起任何人阅读你的代码(甚至是你!)的混淆,因为它是一个不熟悉的结构。

答案 1 :(得分:0)

您可以为变量创建本地范围:

(function(){
   var parent = images[i].parentNode;
   // here I can access parent.

   console.log(parent); //logs parent variable
})();

console.log(parent); //ERROR parent not defined

答案 2 :(得分:0)

您可以随时执行以下操作:

var parent = images[i].parentNode;
if (parent) {
    // Do Stuff
}