其实这是个很基础的问题 ,但也反应了代码风格习惯其实很重要。
没错,javascript确实可以不用先声明变量(很多脚本都如此)。但是,有时却会造成不必要的麻烦。
先说不预先声明的例子:
var add = function (a,b){
sum = a + b;
return sum;
};
var result = add(3,3);
console.log(sum); // 会输出 6 哦!
很邪恶吧?嘿嘿~~
原因很简单 ,sum并未使用var声明,因此会被当作全局变量看待,因此,执行过此add方法后,即使是方法外部也可以访问到。
再来看一个声明未初始化的例子:
var _a;
function start(){
for(i = 0; i< 10; i++){
_a = _a + 1;
window.console.log("来了噢" + _a); // 输出:来了噢NaN
}
}
没有输出预想中的"balabal"1~10,因为_a未被初始化,故下面使用_a+1时,得出了不是数值的结果。故而良好的写作风格,有时看似啰嗦麻烦,但该注意的地方还是不可轻视,毕竟无有规矩不成方圆嘛!
其实,各种语言没有什么差异,只是制定了各自的规章制度而已。