ES6模块中是否有任何上下文/情境,无法将var更新为让?

问题描述 投票:0回答:1

一段时间以来,我已经使用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覆盖:

我也知道如果myStringmyFunctionlet声明

  • let myString = 'My String declared with let';
  • let myFunction = function() {console.log('My Function declared with let')};
  • 它们随后无法用varletconst覆盖。

示例:

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声明新变量。我...

javascript ecmascript-6 es6-modules variable-declaration
1个回答
0
投票

如果用户编写了这样的函数,将var更改为let将失败:

© www.soinside.com 2019 - 2024. All rights reserved.