1,变量的声明:
变量是松散类型,可以保存任何类型数据,每个变量只不过是一个用于保存任意值得命名占位符。有三个关键字可以声明变量,var const let。其中var在所有版本中都可以使用,而const和let只能在ECMAScript6以及更晚的版本中使用。
(1)var关键字:
定义个变量:var message;定义了名为message的变量,可以用它保存任何类型的值。
定义变量并设置它的值:
var message = 'js';
var 声明作用域:使用var操作符定义的变量会成为包含它的函数的局部变量,比如,使用var在一个函数内部定义个变量,该变量将在函数退出时被销毁,示例如下:
function test(){
var message = 'java';//局部变量
}
test();
console.log(message)//Uncaught TypeError: message is not a function(报错)
如果需要定义多个变量,可以在一条语句中用逗号分隔每个变量;
var message = 'java',
fd = false,
age = 18;
console.log(age);//18
在使用var时,下面的代码不会报错,因为使用这个关键字声明的变量会自动提升到函数作用域顶部:示例如下:
function ageNam(){
console.log(age);
var age = 18;
}
ageNam();//undefined
上面代码不会报错,是应为ECMAScript运行时把它看成等价于如下代码:(把所有变量声明都拉倒函数组用于的顶部,就是‘提升’)
function ageNam(){
var age;
console.log(age);
age = 18;
}
ageNam();//undefined
反复多次使用var声明同一个变量也没有问题:
function foo(){
var age = 16;
var age = 20;
var age = 18;
console.log(age);
}
foo();//18
(2)let声明:
let 和 var 有着非常重要的区别:let声明的范围是块作用域,而var声明的范围是函数作用域;示例如下:
//var 声明
if(true){
var name="java