<script>
//第十三章 es6语法
//es6的官方叫法 ecmascript2015
//定义变量
//ES6以前 我们定义变量使用var关键字
//es6 新增了两个定义变量的关键字
/*
.let => 定义变量
.const =>定义常量(特殊的变量)
.
.var 会进行预解析
. let/const 不会进行预解析
.var 可以声明两个重名的变量
.let/const 不能定义重名变量
.var 没有块级作用域
.let/const 有块级作用域
.
*/
/*// 1.预解析
console.log(num)//显示undefined
var num = 100
console.log(num)
/*
//定义之前使用 let 声明的变量 会报错
console.log(num2)//let 定义的变量不存在预解析 会报错
let num2 = 200
console.log(num2)
*/
*/
/*
//定义之前使用 const 声明的变量 会报错 const也不允许声明之前使用
console.log(num3)//同样会报错
const num3 = 300
console.log(num3)
*/
/* //2.重复变量名
var n1 =100
var n1=200
console.log(n1)//重复定义 报错
let n2=100
let n2=200//重复定义 报错
const n3=300
const n3=300//重复定义 报错
*/
// 3.块级作用域
//任何一个可以执行代码段的{} 都会限制该变量的使用范围
</script>
全部注释了还报错不知道是哪的问题
/*
* 里外都可以正常打印
* if (true){
var num=300
console.log(num)
}
console.log(num)
*/
/*
* let定义会报错
* if (true){
* 因为这个num 使用let 关键字定义的
* 所以只能在这个 if 的{}内使用
let num=300
console.log(num)
}
console.log(num)*/
/*
* 因为这个num 使用let 关键字定义的
* 所以只能在这个 if 的{}内使用
if (true){
const num=300
console.log(num)
}
console.log(num)
*/
// 4.定义时不赋值
/*let num
console.log(num)//不报错 只是显示 undefined
num =100
console.log(num)//正常输出100*/
/*
//使用const的时候,声明时必须赋值
const num
console.log(num)//定义时直接报错
num =100
console.log(num)
*/
//5.修改
/*let num =100
console.log(num)
num =200
console.log(num)
正常打印可以被修改
*/
const num =100
console.log(num)
//试图修改num的值,但因为是const定义的 不能修改
num =200 //重复定义时会报错
console.log(num)