【发布时间】:2017-12-05 00:00:38
【问题描述】:
我的理解是,静态类型语言在运行时之前会“检查”变量类型。
我认为这意味着 int 类型的 var 永远不能是字符串类型?这是否意味着变量类型不能在整个程序(在静态类型语言中)更改(在同一范围内)?
有人提到“可变阴影”,但我很确定这只适用于不同的范围。
var i = 'hi';
function foo() {
var i = 1;
}
我对 var 阴影的理解是,全局范围内的 i 与 foo 函数范围内的 i 是不同的变量,因此它们的类型是永久且不相关的(在静态语言中,JS 不是)。对吗?
【问题讨论】:
-
“静态”不就是这个意思吗?如,不是“动态的”?