javascript基础 关于函数名和变量名不能重名的原因

function run(){
    alert(1);
}
var run = 1;
run();    //run is not a function

这个句子在火狐和谷歌里都会报错,因为以上代码在执行时都是基于 window对象(以上代码本身在其它环境除外)。也就是说他与以下代码作用是相同的。

window.run = function(){
    alert(1);
}
window.run = 1;
window.run();

这样就明白多了,由于 javascript 是弱类型语言,所以什么类型的值都可以赋给变量。

当然这是初学者可以会犯的小错误

你可能感兴趣的:(报错,错误,JavaScript基础,犯错)