sailei1 / blog

1 stars 0 forks source link

你不知道的JS 类型-笔记 #75

Closed sailei1 closed 5 years ago

sailei1 commented 5 years ago

JavaScript 有七种内置类型:null、undefined、boolean、number、string、object、symbol。 除object之外,其他统称为“基本类型”。

typeof undefined === "undefined"; // true
typeof true === "boolean"; // true
typeof 42 === "number";   // true
typeof "42" === "string";  // true
typeof { life: 42 }  === "object"; // true
// ES6中新加入的类型
typeof Symbol() === "symbol"; // true

//typeof null 比较特殊
typeof null === "object"; // true

//判断null 
var a = null;
(!a && typeof a === "object"); // true

typeof function a(){ /* .. */ } === "function"; // true
typeof [1,2,3] === "object"; // true 数组也是对象

JavaScript 中的变量是没有类型的,只有值才有。变量可以随时持有任何类型的值。 变量在未持有值的时候为 undefined 已在作用域中声明但还没有赋值的变量,是 undefined 的。相反,还没有在作用域中声明过的变量,是 undeclared 的。

var a;
typeof a ==='undefined'
typeof Undeclared===‘undefined'

如何在程序中检查全局变量 DEBUG 才不会出现 ReferenceError 错误。这时 typeof 的 安全防范机制就成了我们的好帮手:

// 这样会抛出错误 
   if (DEBUG) {
         console.log( "Debugging is starting" );
     }
// 这样是安全的
if (typeof DEBUG !== "undefined") {
         console.log( "Debugging is starting" );
     }