作为从一开始接触C、C++、C#的程序员而言,JavaScript的语法对我来说有些古怪,通过最近一年的接触,对它有了一定的了解,于是想把它的一些语法要点记录下来。
1. Block Scope vs. Function Scope
JavaScript第一点与C不同的是变量的作用范围。我们都知道,C风格的编程语言中,变量的作用范围是两个大括号之间,变量在两个大括号之外是不可见的,我们称之为Block Scope。
而JavaScript则不然 - 变量在真个函数内以及此函数的内嵌函数中均可见,我们称之为Function Scope。比如:
function test(o){
var i = 0;
if (typeof o == "object"){
var j = 0;
for (var k = 0; k < 10; k++){
console.log(k);
}
console.log(k); // k = 10, k虽然在for循环中定义,可是在for循环之外的整个函数体依然可见。
}
console.log(j); // j =0 或者j = undefined,j虽然在if块中声明并定义,可是它在整个函数体中依然可见。
}