简介
Symbol
是一种基本数据类型。Symbol()
会返回一个唯一的值。不是new Symbol()
。
let s1 = Symbol();
let s2 = Symbol("a");
let s3 = Symbol("a");
console.log(s1 == s2); //false
console.log(s2 == s3); //false
console.log(s1); //[object Symbol]
判断数据类型
javascript 的数据类型有如下几种:
基本类型:
Number
String
Boolean
Null
Undefined
Symbol
引用类型:
object
:其中又有function
,Array
,Date
,Map
Set
WeakMap
WeakSet
json
等
使用 typeof
判断数据类型:
function printType(ele) {
console.log(typeof ele);
}
let group = {
"1": 1,
str: "str",
true: true,
null: null,
undefined: undefined,
symbol: Symbol(),
"[1,2,3]": [1, 2, 3],
Date: new Date(),
json: { a: "aaa" },
};
for (i in group) {
console.log(i + " " + typeof group[i]);
}
function f() {
return true;
}
console.log("function " + typeof f);
// 1 number
// str string
// true boolean
// null object
// undefined undefined
// symbol symbol
// [1,2,3] object
// Date object
// json object
// function function
奇异的是 null
会被判断成 object
。经查是历史性 bug。
使用 instanceof
判断数据类型
function f() {
return true;
}
console.log(new Date() instanceof Date); //true
console.log([1, 2, 3] instanceof Array); //true
console.log([1, 2, 3] instanceof Function); //false
console.log(f instanceof Function); //true