JS变量
变量,就是用于引用内存中存储的一个值。
1声明变量
在JavaScript中声明变量的方式有3种: var, let ,const
const和let的区别在于,
const 所声明的变量如果是简单数据类型,那么是不能够再改变的。
let所声明的变量无论是简单数据类型还是复杂数据类型,在后面是可以改变的。var声明变量:重复声明,遗漏声明,变量提升。
1)重复声明:使用var关键字来声明的变量,允许重复声明的,后面覆盖前面;var test = 3;var test = 5;
console. log(test);//5
重复声明带有不赋值操作,JS引擎会自动忽略后面的变量声明
var test = 3;var test;
console. log(test);//3
2)遗漏声明:JS允许遗漏声明,即直接对变量赋值而无需事先声明,赋值操作会自动声明该变量a= 5; console. log(a);//5
示例如下:
const声明变量
const name = 'Bill';name = 'Lucy';
//TypeError: Assignment to constant variable.
let声明变量
Let name = 'Bill';name = 'Lucy';
console. log(name);
2变量的赋值与初始化
给变量第一-次赋值的过程,叫做变量的初始化。
我们也可以一次性初始化多个变量,将其写在- -行里面。let X = 3,y =4,z =5;
如果声明变量时没有赋予初值,那么默认值为undefined
3作用域
所谓作用域,就是变量在程序中能够被访问到的区域。
1、 全局作用域:在全局作用域的中所声明变量称之为全局变量。全局变量的特点在于变量在任何地方都能被访问。
let a = 5;//这是一个全局变量
2.局部作用域
只能在这个局部的作用域里面能访问到,外部是访问不到的。
{leti=10;
console. log(i);//10}
1)在大括号中用var声明的变量不是局部变量,而是一个全局变量。
2)在局部作用域里面,如果变量名和全局作用域里面的变量名冲突,优先使用局部作用域里面的变量。
leti=10;
{let i = 100;
console. log(i);//100}
console. log(i);//10
3)如果在局部作用域里面声明变量时没有书写关键字,那么会声明一个全局变量
Let i=1;
{i=10;}
console. log(i);//10