Javascript定义变量之间的区别

一、了解变量是什么

变量其实就是计算机中的一个保存数据的盒子,用最通俗的话来讲,它其实就是用一个符号来代表一个数据。定义变量实际上就是在定义空间,创建一个新的内存空间去存放数据。

二、变量的作用

变量的作用就是用来保存数据值,它们是程序里保存数据的盒子,变量可以保存各种类型的数据,如数字,字符串,布偶值等等其他类型的数据。

变量主要运用在以下几个方面:
  1. 存储临时数据:在程序运行过程中,变量可以用来暂存中间结果或其他需要的数据。
  2. 参数传递:在函数调用时,实参通过变量传递给函数的形参。
  3. 数据操作:使用变量作为操作数参与各种算术、逻辑和字符串操作。
  4. 循环控制:在循环语句中,变量可用于控制循环的次数或条件。
  5. 条件判断:在条件语句中,变量作为判断条件的一部分,决定程序的执行流向。
  6. 函数返回值:函数可以通过变量保存计算结果,并将其返回给调用者。
  7. 对象属性:变量还可以作为对象的属性,保存对象的状态信息。
  8. 事件处理:在响应用户操作时,变量可以保存事件相关的数据。

三、变量的定义

首先定义变量的方式有三种,分别是var,let,const。

用法:var(let/const )变量名 = 值。
var:ES5之前一直在使用
let:ES6提出,但是,相比较于var来说,它必须先定义后使用
const:ES6提出,它定义的变量都是常量,值不能修改并且必须附带初始值

四、定义变量的区别

定义var变量:

(1)能重复声明变量

//例如
var a = 1;
var a = 2;

(2)可以不需要初始值

//例如
var a;

(3)具有变量提升

//例如
console.log(a)       // undefined
var a = 2;

(4)具有函数作用域

// 例如
function demo1() {
    var a = 2;//局部
    console.log(a); // a=2
}
demo1()

(5)可以修改初始值

// 例如
var a = 1;
a = 2;
console.log(a)     //a = 2

(6)可以在声明变量之前使用

//例如
console.log(a)       // undefined
var a;

定义let变量:

(1)不能重复声明变量

let a = 1;
let a = 2;
console.log(a)        //Uncaught SyntaxError: Identifier 'a' has already been declared

(2)可以不需要初始值

//例如
let a;

(3)具有变量提升但是会形成暂时性死区(报错)

//例如
console.log(a)            //Uncaught ReferenceError: Cannot access 'a' before initialization
let a;

(4)具有块级作用域

//例如
if (true) {
	// 块级作用域
    let a = 1; //存在块级作用域
	console.log(a);    //a=1
}

(5)可以修改初始值

//例如
let a = 1;
a=2;
console.log(a)        //a=2;

(6)不可以在声明变量之前使用

//例如
console.log(a)            //Uncaught ReferenceError: Cannot access 'a' before initialization
let a;

定义const变量:

(1)不能重复声明变量

const a = 1;
const a = 2;
console.log(a)            //SyntaxError: Identifier 'a' has already been declared

(2)必须要初始值

//例如
const a;
console.log(a)            //Uncaught SyntaxError: Missing initializer in const declaration

(3)具有变量提升但是会形成暂时性死区(报错)

//例如
console.log(a);            //Uncaught SyntaxError: Missing initializer in const declaration
const a;

(4)具有块级作用域

//例如
if (true) {
    // 块级作用域
    const a = 1; //存在块级作用域
    console.log(a);            //a=1
}

(5)不可以修改初始值

//例如
const a = 1;
a=2;
console.log(a)            //Uncaught TypeError: Assignment to constant variable.

(6)不可以在声明变量之前使用

//例如
console.log(a)            //Uncaught SyntaxError: Missing initializer in const declaration
const a;

五、定义变量的要求

  1. 变量名必须以字母、美元符号($)或下划线(_)开头。
  2. 变量名长度不能超过255个字符。
  3. 变量名中不允许使用空格。
  4. 不要使用JavaScript中的关键字或保留字作为变量名。
  5. 变量名区分大小写

六、变量提升是什么

变量提升是JavaScript引擎在代码执行过程中的一种行为,它会将变量的声明提升到其所在作用域的最前面,也就是说,只要在这个作用域创建定义了这个变量,那么这个变量的位置不管处在哪,都会被提升到最顶部。只针对var变量,let和const是后面提出的避免变量提升污染变量。

七、函数作用域的概念

函数作用域又称局部作用域,只在当前的作用域生效,其他函数中和在函数外的地方都不能使用

八、块级作用域的概念

通过大括号{}来划分,即使用一对大括号包裹的一段代码,通过let和const定义的变量的作用域只在大括号中

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值