[英]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.