声明变量

1) let

let 变量名 = 值;
let a = 100;  // 初始值是 100
a = 200;      // ok, 被重新赋值为 200

2) const

const b = 300; // 初始值是 300
b = 400;       // error, 不能再次赋值
const c = [1,2,3];
c[2] = 4;             // ok, 数组内容被修改成 [1,2,4]
c = [5,6];            // error, 不能再次赋值

3) var

var 声明的变量可以被多次赋值,例如

var f = 100;
f = 200;

基本类型

1.2) undefined 和 null

console.log(1);      // **函数没有返回值,** 结果是  undefined
let a = 10;             // 表达式没有返回值, 结果是 undefined
let b = [1,2,3];
console.log(b[10]); // 数组未定义元素是 undefined
let c = {"name":"张三"};
console.log(c.age); // 对象未定义属性是 undefined
let d;
console.log(d);        // 变量未初始化是 undefined

二者共同点