null 和 undefined 的区别

undeclared 与 undefined 的区别?

var a; // undefined
b;    // b is not defined

⭐ {} 和 [] 的 valueOf 和 toString 的结果是什么?

{} 的 valueOf 结果为 {} ,toString 的结果为 "[object Object]"
[] 的 valueOf 结果为 [] ,toString 的结果为 ""

⭐ typof 没定义的变量会报错吗?typeof let 定义了的呢?

未声明的变量使用 typeof 返回字符串 "undefined"

typeof 一个 let 定义的变量会因为暂时性死区报错 ReferenceError(前提:let/const未声明之前赋值或使用)

var tmp = 123;
if (true) {
  tmp = 'abc'; // ReferenceError: tmp is not defined
  let tmp;
}

console.log(typeof tmp); // ReferenceError: tmp is not defined
let tmp;

let tmp;
console.log(typeof tmp); // undefind 不会报错

typeof 能判断哪些类型 ?

typeof 能判断的类型有:string、number、boolean、undefined、symbol、function、bigint、object