变量就是对底层数据的引用,并不是数据本身;比如:一个人叫张三,张三只是他的名字,并不是他这个人本身。
java script中的变量分为三种:let(块级变量)、var(函数级变量)、const(常量,块级引用不可变)
let作用于块级,var作用于函数级
let声明的变量作用于块级,如下代码,能够正常输出
将代码改成
就会报错说name is not defined
var是函数级变量,作用于整个函数
将之前这段代码改成如下
可以正常输出,说明var
声明的变量作用于整个函数
var声明的变量会提升到函数顶部,而let声明的变量不会提升
如下代码
在程序内部就相当于这样,所以在上面用var
声明的变量可以正常输出
而let
声明的变量不会这样提升
const的作用域和let一样都是作用域块级,也不存在变量提升,但是const声明的相当于常量,它声明后引用是不可变的。
比如先声明name
为abc,然后改成def
这样就会报错Assignment to constant variable.
,这里改变了引用。
如下例子
可以正常输出,这里只是改变了值,并没有改变引用。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。