var a = 10; // 1
var b = 10;
function f() {
console.log(a); //2 因为在本函数内部,a 未定义,相当于是 var a;默认值是 undefined
var a =12;
console.log(a); //3 此时打印的是局部变量内部的 a
b = 13; // 前面没有 var 限定变量作用域未该函数体内,即这个是 13
console.log(b);
}
console.log(a); // 这时候打印的是 1 位置的a
f(); // undefined、12
console.log(a); // 10
console.log(b); // 因为在函数体内已经修改了全局变量b,所以值为 13
注意
var a;
console.log(a); // undefined,声明没有赋予值默认值是 undefined
var a = 10;
console.log(a); // 10
// 重新声明变量,值仍然会保存
var b = 12;
console.log(b); //12
var b;
console.log(b); // 12
// 字符串 + 数字 + 数字 == 字符串 + "数字" + "数字"
// 数字 + 数字 + 字符串 == 数字间相加减 + 字符串
console.log("9"+1+10); // 9110
console.log(1+12+"12"); //1312