JS笔记《变量》

168 阅读2分钟

变量

  • 变量(variable)是用于存放数据的容器,通过变量名获取数据、修改数据。
  • 本质:变量是程序在内存中申请的一块用来存放数据的空间。

声明

  • 只声明未赋值的变量,默认值为undefined
var age;  // 声明一个名称为age的变量   
age;  // undefined

赋值

var age;
age = 10;   // 给age这个变量赋值为10

初始化

  • 如果变量未经var声明直接赋值,则会创建为一个全局变量。
 var age = 10; // 声明的时候直接赋值
 
 name = '张三'  // 全局变量 相当于在全局环境下 var name = '张三';

更新

  • 重新赋值后原有的值会被覆盖,以最后一次赋值为准。
var age = 10;
age = 20;   

单一var模式

  • 只写一个var,通知内存一次申请多个内存空间。
var a = 10,
    b = 20,
    x = a + b;  // , 运算符优先级大于赋值

var声明变量情况汇总

变量使用
var a; (只声明,不赋值)undefined
不声明不赋值报错
a = 10; (不var声明,只赋值)正常(默认提升为全局变量)

变量声明提升

  • js引擎的工作方式是,先解析代码获取所有被声明的变量,然后再一行一行的执行。这就会导致所有变量的声明语句都会提升到代码头部,这种方式叫做变量声明提升。
console.log(a);   
var a = 1;

// 上面代码相当于
var a;
console.log(a);
a = 1;

变量 a 的声明被默认提升到了头部,相当于 a 以声明,但未赋值。所以是 undefined。

区块

  • js使用大括号{...}将多个相关的语句组合在一起,称为区块。
{
    var a = 1;
}
console.log(a);   // 1 区块外部依然可以访问

1.区块对于使用 var声明的变量不构成单独的作用域,与不使用区块没有任何区别。
2.变量只有在函数中被声明的才是局部变量,否则一律是全局变量。