定义
const指定基本数据类型,不能修改。指定引用数据类型,代表的是指针,属性值可以修改。
- 定义时一定要赋初值
- 命名多用大写字母表示
- 已定义的值不可修改
- 块儿级作用域
- 对于数组和对象的元素修改,不算做对常量的修改,不会报错(因为指针指向的地址没有修改,只是改变地址内存放的数据)
<script>
//const 声明常量
const SCHOOL = 'xx学院';
//1. 定义时一定要赋初值
const A;
//2. 命名时大多使用大写
//3、常量的值不能修改
SCHOOL = 'yy'; //会报错
//4、块儿级作用域
{
const PLAYER = 'UZI';
}
console.log(PLAYER); //报错未defined
//5、对于数组和对象的元素修改,不算做对常量的修改,不会报错
const TEAM = ['1','2','3'];
TEAM.push('4');
//可以运行,因为TEAM的地址未被改变
</script>
var let const三者对比
let 关键字笔记
修改值:见上定义第五点
声明提升:var执行前会先收集,但let,const不支持
va rHoisting:使用var在函数或全局内任何地方声明变量相当于在其内部最顶上声明它,这种行为称为Hoisting(提升)。
console.log(song); //正常打印:恋爱达人
//var代码执行前先会收集
var song = '恋爱达人';
JS中作用域有:全局作用域、函数作用域。没有块作用域的概念。ECMAScript 6(简称ES6)中新增了块儿级作用域。
块儿作用域由 { } 包括,if语句和for语句里面的{ }也属于块作用域。
块儿级作用域:var 可以跨块访问,但不能跨函数访问;
在function内用var 定义的变量,为局部变量,只在function内生效