MDN's documentation声明如下:
JavaScript是松散类型的或动态语言。这意味着您不必提前声明变量的类型。在处理程序时,将自动确定类型。
这意味着,除其他外,我们可以编写更少的代码,因为JS在初始化变量时会自动检测数据类型。例如:
let amount = 0; // since 0 is a number, this variable is of type "number"
amount += 1; // which makes it real easy to add another number to it
console.log(amount); // returns 1
在做了一些研究之后,我认为修改第二句可能更准确:
这意味着你不能提前声明变量的类型。
例如:
let amount; // without initialization, this variable is of type "undefined"
amount += 1; // which makes it impossible to add a number to it
console.log(amount); // returns NaN
如果有一种方法可以在变量初始化之前声明变量的数据类型,请在答案中提供详细信息。
答案 0 :(得分:3)
无法在普通Javascript中声明变量的类型,即使在最新的规范(ES7)中也是如此。也没有静态类型检查。
您在此处观察到的行为:
let amount;
amount += 1;
console.log(amount);
...是由于undefined + 1
评估NaN
,这可能是有意义的,也可能没有意义,但是JS的工作方式。
您可以使用任何类型重新分配变量:
let a = 1;
a = 'asdf';
console.log(b);
Flow和Typescript等项目会对Javascript进行静态类型检查。