簡體   English   中英

Function 范圍 JavaScript 變量在“非嚴格模式”上訪問

[英]Function Scoped JavaScript Variables ACCESS on a 'NON Strict Mode '

 function scoped() { var a = 150; let b = 300; const c = 500; } a = 300; // Why is it possible to access a function scoped variable? b = 600; // Same as above c = 1000; // Same as above and also why I can change value of constant? console.log(a); // Return: 300 - Why it works? console.log(b); // Return: 600 - Why it works? console.log(c); // Return: 1000 - Why it works?

我的問題:

  1. 為什么可以(在非嚴格模式下)訪問 function 范圍變量? 這不應該被允許嗎?

  2. 為什么我什至可以更改常量的值?

  3. 在這種特定情況下,scope 或吊裝如何在幕后工作?

“var”關鍵字創建全局 scope 變量,而不是在 JS 中阻止 scope 變量。 表示 function 內部的“a”,它外部或(在全局范圍內)相同的“a”。

“const,let”關鍵字創建了一個“塊作用域”變量,也就是說function里面的b,c和外面的b,Z4A8A08F09D37B73795649038408B53F是不一樣的。 有兩個 b,c 變量 1- 在 function 內部 2- 在全局 scope (函數外部)。

對不起我的英語,我希望你清楚。

暫無
暫無

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

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