Number、String、Boolean、Null、undefined、object、symbol
这种类型用来表示整数和浮点数值,还有一种特殊的数值,即NaN(非数值 Not a Number), 以及无限大 Infinity(表示数值大到js无法显示,即无限大)
// 定义一个number
const a = 1
// 打印类型 使用typeof 可以判断
console.log(typeof a) // number
Object.prototype.toString.call(123)
//"[object Number]"
//可以使用isNaN(a) 来判断a是否为NaN
console.log(isNaN(a)) // false
这种类型用来表示文本的数据类型,是由Unicode字符,数字和标点符号组成的字符串序列,通常使用单引号和双引号组成
// 定义一个字符串
const a = " 你好! "
// 打印类型 使用typeof 可以判断
console.log(typeof a) // String
Object.prototype.toString.call('str')
//"[object String]"
布尔值只有两个值,代表真的true和代表家的false,一般是用作比较区分触发条件的
// 定义一个布尔值
let a =true
// 打印类型 使用typeof 可以判断
console.log(typeof a) // boolean
Object.prototype.toString.call(true)
//"[object Boolean]"
null 是一个特俗的数据类型,表示空的意思,并非其他数据类型
// 定义一个NUll
let a = null
// 打印类型 使用typeof 不可以判断,js默认将null作为一个空对象
console.log(typeof a) // object
// 判断一个值是否为null(排除0,false,undefined)
if(!a && typeof a!="undefined" && a!=0){
console.log("is null");
}
undefined 是一个特俗的数据类型,定义一个变量而未赋值,使用一个未定义变量, 或者访问一个不存在的对象属性时返回
// 定义一个变量不赋值
let a
// 打印类型 使用typeof 可以判断
console.log(typeof a) // undefined
//不定义变量直接访问
// 打印类型 使用typeof 可以判断
console.log(typeof c) // undefined
// 定义一个对象
let a = {
name: '张三'
}
// 打印类型 使用typeof 可以判断
console.log(typeof a.age) // undefined
object 是一个复合型数据类型,比较复杂 判断方法很多
let e = {}
let g = null
let h = []
console.log(typeof e, typeof g,typeof h) //object object object
// econstructor 可以判断数组和对象
e.econstructor==Array //true
e.constructor==Object //false
// Object.prototype.toString.call() 则可以判断所有基本类型
Object.prototype.toString.call({})
//"[object Object]"
Object.prototype.toString.call([])
//"[object Array]"
表示定义一个独一无二的值
let s = Symbol();
typeof s;
//"symbol"
// 没有参数的情况
var s1 = Symbol();
var s2 = Symbol();
s1 == s2 // false
// 有参数的情况
var s1 = Symbol("foo");
var s2 = Symbol("foo");
s1 == s2 // false
//不管值是否相同,他都是独一无二的,判断一定为false