js中var, const, let的区别
来源:互联网 发布:程氏cms 编辑:程序博客网 时间:2024/04/28 06:12
var声明的变量可以修改,初始化的时候可以不赋值,不会报错,输出结果为undefined.
var a = 0;console.log(a)//输出0function change(){ a = 1; console.log(a);//输出1}change();console.log(a);//输出1
const和let声明的变量都只在块级作用于内有效,不同的是const声明的变量不可改变,而且const在声明变量的时候必须赋初值,否则会报错,但是let声明的变量可以改变类型和变量值。
const a = 0;//const a;//这一行将会报错,必须初始化值console.log(a);const b = 0;//b = 1;//这一行将会报错,不能修改赋值console.log(b);
对于复合类型的变量,数组、对象等类型,变量名不指向值,而是指向数据所在的地址。const声明的变量,保证变量指向的地址不变,可以修改,但是必须保证对应的地址不发生改变。
const demo = [];//demo = [0, 1, 2];//这一行将报错,因为此时demo对应的地址与[]的地址不是同一个demo[0] = 0;demo[1] = 1;demo[2] = 2;console.log(demo.length);//输出3,demo指向的地址没有发生改变,改变的只是内部的数据。
let声明的变量只在块级作用域里面起作用。
let a = 0;console.log(a);//输出0function change(){ let a = 1; console.log(a);//输出1}change();console.log(a);//输出0
注意:如果想让数组、对象等类型变量的地址和数据不被修改,可以使用Object.freeze(name)对变量进行冻结,冻结以后的对象,一切修改地址和数据的操作都将不会生效,对象的地址和内部数据以及对象的属性都将会冻结。
参考文章:http://www.cnblogs.com/dupd/p/6096235.html
0 0
- js中let 、 var 、 const的区别
- js中var, const, let的区别
- js中const,var,let的区别
- js 中const, var, let的区别
- JS中const,var,let的区别
- Js中var、let、const的区别
- js中const,var,let的区别
- JS中const、var、let的区别
- js中const,var,let区别
- js中const,var,let区别
- js中const,var,let区别
- js中const,var,let区别
- js中const,var,let区别
- js中const,var,let区别
- js中const,var,let区别
- js中const,var,let区别
- JS中const,var,let区别
- js中const,var,let区别
- 磁疗是真的吗?骨科磁场治疗技术的发展历史
- matlab中mean的用法
- oracle培训第五天
- HDU5877-Weak Pair
- Map集合操作及简易底层实现
- js中var, const, let的区别
- Android InputMethod 源码分析,显示输入法流程
- p分位函数(四分位数)概念与pandas中的quantile函数
- windows API入门使用 vs2013
- CodeForces
- CF
- MySQL的常用操作命令详解
- VUE本地开发第三弹:vue-cli+nginx实现本地开发
- K-diff Pairs in an Array问题及解法