js中 var、let、const的区别
var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。
在es6中,引入了let和const关键字;
let关键字是用来取代var的;
let作用,与var类似,用于声明一个变量;
1.const定义的变量不可以修改,而且必须初始化。
如下如果声明const变量但是没有初始化
如图所示:
运行页面会直接报错:
如图所示:
如果声明了const变量并初始化后要修改const,运行直接报错
如图所示:
2.let是块级作用域,函数内部使用let定义后,对函数外部无影响。
结果如图所示:
3.不能重复声明
{
let a='http://javaxl.com';
let a= "http://baidu.com";
var b='小礼';
var b = "百度";
console.log(b);
console.log(a);
}
console.log(b);
console.log(a);
如图所示:
4.不存在变量提升
{
let a='http://javaxl.com';
// let a= "http://baidu.com";
var b='小礼';
// var b = "百度";
console.log(b);
console.log(a);
}
console.log(b);
// console.log(a);
console.log(c);
var c = "老师";
console.log(d);
let d = '学生';
如图所示:
5.const关键字用来定义常量
<script type="text/javascript">
{
let a='http://javaxl.com';
// let a= "http://baidu.com";
var b='小礼';
// var b = "百度";
console.log(b);
console.log(a);
}
console.log(b);
// console.log(a);
console.log(c);
var c = "老师";
// console.log(d);
// let d = '学生';
const e = 5;
console.log(e);
e = 6;
</script>
如图所示:
const定义的变量,不可改变,其他特性和let一样;
6.var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
如图所示:
结果如图所示:
谢谢大家,多多指教!!!