我知道你會認爲這是一個重複,但我通過許多相關帖子發現的是,人們洪水每一個沒有受過教育的「不」的,這是我很高興還沒有發生在這裏。無論哪種方式,我想重新開放這個討論。塊級作用域訪問在JavaScript中
讓我們,例如,「非著名」 let
聲明:
function foo()
{
var bar = 5;
if(true)
{
let bar = 10;
alert(bar);
}
alert(bar);
}
此功能將第一個警報10
然後警報5
。
這是因爲bar = 5
是在功能級別範圍而bar = 10
重新分配的塊級範圍內只保留了,這要歸功於我們的小夥計let
。
這就是說,塊級範圍在JavaScript中絕對存在,但我們可以如何訪問它?
舉個例子:
var arr = [
{
label: "x"
},
{
label: "y"
},
{
label: "z"
},
];
var randIdx = Math.floor(Math.random() * 3);
for(var i = 0; i < arr.length; i++)
{
if(i === randIdx)
arr[i].value = true;
else
arr[i].value = false;
}
function foo()
{
if(arr[0] || arr[1] || arr[2])
{
alert((\*passing argument*\).label);
}
}
foo();
必須能夠訪問塊範圍目前if
聲明和檢索給定表達式的傳遞參數! 塊級範圍確實存在,所以爲什麼我不能修補它!
謝謝!
號但是,您可以輕鬆地將條件結果首先分配給變量。 –
嗯,當然,我可以@FelixKling,但那不是重點。我沒有試圖解決分配變量的問題,我在問一個問題。 – WebWanderer
當然,但正如我所說的,你想要的是不可能的,所以你必須尋找儘可能接近你想要的東西(或者只是讓它)。我只是覺得指出替代品比單純說「不」更有價值......你不覺得嗎? –