1.js的变量声明
在js程序代码中,变量是用var关键字声明的。
①变量声明
var a;//声明单个
var a,b,c;//声明多个
②变量声明+初始赋值
var a = 1;//声明赋值单个
var a = 1, b = 2, c = 3;//声明赋值多个
当变量声明没有初始化时,变量的值为undefined;
如果在顶层代码中使用var语句定义,那么他声明的就是全局变量(全局变量就是全局对象的属性),值得注意的是,var声明的变量无法通过delete删除
2.js的函数声明
在js程序代码中,变量是用function关键字声明的。
function fn(){
alert(1);
}
值得只注意的是,函数声明存在声明提前或变量提升
即在一个作用域范围内,无论变量在该作用域的那个位置声明,JavaScript引擎都会将这个声明提升的范围的顶部(不涉及赋值)。也就是说变量的初始化留在原来的位置,看看下面的例子:
//声明提前
(function test(){
console.log(k);//undefined
var k = 10;
console.log(k);//10
})();
(fumction(){})();这种写法,表示立即执行函数代码,我们会发现值一次为undefined,10;
函数声明语句并非真正的语句,它们不能出现在循环,条件判断,或者try/cache/finally语句中。循环体,条件判断体等中可以出现。