一段时间以来,我已经使用const
声明了大多数变量。
如果我不能绝对确定新变量将始终保持相同的值,我将使用let
声明新变量。
我几乎从不使用var
。
是我。
但是,其他任何使用JavaScript的个人都将拥有自己的首选变量声明约定,并且,如果我接受User Written ES6 Modules]之类的user-generation-content,则无法自信地预测那些惯例可能是。
暂时不留const
...
var
可以被var
覆盖:我知道以下内容:
var myString = 'My String declared with var';
var myFunction = function() {console.log('My Function declared with var')};
可以用用var
声明的同名变量覆盖。
示例:
var myString = 'My String declared with var';
var myFunction = function() {console.log('My Function declared with var')};
var myString = 'My Overwriting String declared with var';
var myFunction = function() {console.log('My Overwriting Function declared with var')};
console.log(myString);
myFunction();
let
无法var
覆盖:我也知道如果myString
和myFunction
用let
声明
let myString = 'My String declared with let';
let myFunction = function() {console.log('My Function declared with let')};
它们随后无法用var
,let
或const
覆盖。
示例:
let myString = 'My String declared with let';
let myFunction = function() {console.log('My Function declared with let')};
var myString = 'My Overwriting String declared with var';
var myFunction = function() {console.log('My Overwriting Function declared with var')};
console.log(myString);
myFunction();
因此,了解了这两件事,在所有用户提交的ES6模块
var
声明转换为let
声明(在编译时还是在运行时)是否合理?[ES6模块中是否有任何可能的上下文/情况,无法将var
更新为let
?
一段时间以来,我使用const来声明大多数变量。如果我不能绝对确定一个新变量将始终保持相同的值,我将使用let声明新变量。我...
如果用户编写了这样的函数,将var更改为let将失败: