浅谈JavaScript中3种变量定义方式
程序员文章站
2022-04-05 11:12:12
...
在ES6中新增了一些对变量名操作的语法。在以前的版本中,javascript中的变量只能由var去定义,而在ES6又增加了两种新的定义方法,ES6中新增的两个定义变量的方式都是块级作用域,下面我来说一下javascript中三种定义变量的方式const, var, let的区别?
1.var定义的变量可以修改,如果不初始化会输出undefined,可以多次定义同一变量,不会报错。
<script>
var num = 100;
var num2;
num = 200;
var num = 1000;
alert(num); //1000
</script>
2.const是块级作用域,定义的变量不可以修改,而且必须初始化。
<script>
//let和const都没有变量提升,只有var有
alert(num); //error
const NUM= 100;
// NUM = 200; //error
// const NUM2; //error
alert(NUM);
//let和const都是块级作用域
const A= 55;
function low(){
const A= 100;
alert(A); //100
}
alert(A); //50
low();
</script>
3.let是块级作用域,函数内部使用let定义后,对函数外部无影响,定义的变量可修改。
注:在ES6以前没有块级作用域,所以也就有了JavaScript变量穿透的问题。
<script>
let num = 200;
num = 300;
function number(){
//这个变量和外部变量的作用域不同
let num = 1000;
alert(num); //1000
}
alert(num); //300
//let和const都没有变量提升,只有var有
alert(num2); //error
let num2;
</script>
值的一提的是,在我以前写了一篇文章浅谈Javascript变量提升当中,我简述了一下用var定义的变量都会把变量提升上面然后赋值undefined,在ES6中新增的const和let都不存在了,这一点要注意一下。
这些就是var,const,let基本的使用,建议在开发中尽量不要使用var用定义变量,因为性能太差了,可以重复声明变量,无法限制修改,没有块级作用域。
而定义变量用let,定义常量使用const,定义常量用大写字母命名,每个单词用下划线分开。因为这两种定义变量的方式都是块级作用域,且不可以二次定义相同的变量名,大大减少了开发中变量冲突的问题。
上一篇: Javascript3
推荐阅读
-
浅谈javascript中变量作用域和内存(1)
-
Vue中定义全局变量与常量的各种方式详解
-
javascript中var let const三种变量声明方式详解
-
javascript中var let const三种变量声明方式详解
-
浅谈javascript:两种注释,声明变量,定义函数
-
JavaScript中var声明方式和变量作用域实例详解
-
如何区别javaScript中定义变量有没有var的区别实例详解
-
JavaScript中变量的存储方式
-
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)_js面向对象
-
JavaScript中声明全局变量的三种方式(包括显示和隐式)