簡體   English   中英

在IF Javascript中分配變量

[英]Assign variable in IF Javascript

我有以下代碼:

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

在執行此操作時,我要訪問parentNode兩次。 我想知道這樣做是否可能/正確:

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

簡短答案:不可以。

長答案:您嘗試過嗎? :)您擁有的不是合法的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) {
    ...
}

但是正如您所看到的,它與我之前所建議的並沒有太大不同,因此您並沒有真正購買自己的東西,而且它也很容易引起任何閱讀您的代碼的人(甚至您!)的困惑,因為它是一個陌生的結構。

您可以為變量創建本地作用域:

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

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

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

您始終可以執行以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM