JavaScript中var、let和const之间有什么区别?


本文摘自PHP中文网,作者青灯夜游,侵删。

区别:1、var变量是函数或全局作用域,let和const变量是块作用域;2、let和const变量受暂存死区的约束,var变量不受;3、var变量是可分配和声明的,letr变量是可分配、不可重新声明的,const变量则不可重新分配和声明。

相关推荐:《javascript视频教程》

我们都知道在最新的 ES6 中,新添加了两个用于变量声明的关键字 let 和 const,那么这两个和我们以前经常使用的 var 有什么区别呢?今天我们就来看一下吧。

1、const 语句

const 语句用来在 JavaScript 中声明一个变量,该变量遵守以下规则:

  • 是属于块作用域的。

  • 受到“暂存死区”的约束。

  • 它不会在 window 上创建任何全局属性。

  • 不可重新分配。

  • 不可重新声明。

const 语句定义的变量不可以修改,而且必须初始化。

1

2

3

4

5

const b = 2;//正确

// const b;//错误,必须初始化

console.log('函数外const定义b:' + b);//有输出值

// b = 5;

// console.log('函数外修改const定义b:' + b);//无法输出

2、var 语句

var 语句用来在 JavaScript 中声明一个变量,该变量遵守以下规则:

  • 作用域范围是函数作用域或全局作用域的。

  • 不受暂存死区(TDZ)的限制。

  • 它会在 window 上以相同的名称创建一个全局属性。

  • 是可重新分配的。

  • 是可重新声明的。

var定义的变量可以修改,如果不初始化会输出undefined,不会报错。

1

2

3

4

5

6

7

8

9

var a = 1;

// var a;//不会报错

console.log('函数外var定义a:' + a);//可以输出a=1

function change(){

a = 4;

console.log('函数内var定义a:' + a);//可以输出a=4

}

change();

console.log('函数调用后var定义a为函数内部修改值:' + a);//可以输出a=4

3、let 语句

let 语句在 JavaScript 中声明一个变量,该变量遵守以下规则:

  • 属于块作用域。

  • 受到暂存死区的约束。

  • 它不会在 window 上创建任何全局属性。

  • 是可分配的。

  • 不可重新声明。

let属于块级作用域,函数内部使用let定义后,对函数外部无影响。

1

2

3

4

5

6

7

8

let c = 3;

console.log('函数外let定义c:' + c);//输出c=3

function change(){

let c = 6;

console.log('函数内let定义c:' + c);//输出c=6

}

change();

console.log('函数调用后let定义c不受函数内部定义影响:' + c);//输出c=3

更多编程相关知识,请访问:编程入门!!

以上就是JavaScript中var、let和const之间有什么区别?的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript中求和的方法

javascript怎么改变文本内容

javascript怎么打印

何时在javascript中使用const关键字?

javascript是不是弱语言

javascript怎么设置src属性

react可以引入css吗?

javascript数组如何删除相同元素

javascript怎么设置图片大小

javascript的三大组成部分

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...