const 是声明一个常量。只能在声明时赋值一次。声明之后不能重新赋值。也不能重复声明。
你num4函数中
const age = 22;
const age = 23;
重复声明了,产生错误
let 是声明一个块作用域变量。可以在声明之后重新赋值。但也是不能重复声明。重复声明也会产生错误。
var 是声明一个函数作用域变量。可以重复声明。重复声明会被忽略,不会产生错误。
再有就是let、const不能在声明之前被访问,否则会产生错误。
而var有声明提升的特性,就是不论var语句写在哪里,都会自动提升到当前作用域的最前面。注意:只是声明提升,变量的赋值不会提升。
比如你num2函数中
(function num2() {
console.log(age);
var age = 20;
})()
在解析时就会变成下面的形式
(function num2() {
var age;
console.log(age);
age = 20;
})()
如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮