1. undefined
var a1;
console.log(a1 == undefined) // true
console.log(typeof a1) // undefined
console.log(typeof a2) // undefined
2. boolean
true,false
3. string
表示0或多个16位Unicode字符组成的字符序列
\n 换行
\t 制表
\b 空格
\r 回车
4. number
var a1 = 3.1415e4 // 31415
isFinite判断是否在极大值和极小值区间内
var a1 = Number.MAX_VALUE * 2
console.log(a1) // Infinity
console.log(isFinite(a1)) // false
var a2 = Number.MAX_VALUE + 1 // var a2 = Number.MAX_VALUE + 100000000000
console.log(a2) // 1.7976931348623157e+308
console.log(isFinite(a2)) // true
NaN和isNaN
// 一个特殊的数值(Not a Number)。用于表示一个本要返回数值的未返回的情况
console.log(NaN == NaN) // false
// 用来判断当前值是不是NaN
console.log(isNaN(NaN)) // true
console.log(isNaN(10)) // false
console.log(isNaN('10')) // false
数值转换
// 先调用valueOf方法,没有再调用toString方法
let a1 = {
a: 12,
valueOf(){
return this.a + 5
}
}
console.log(Number(a1)) // 17
5. object (对象 || null)
null
空对象指针。undefined值派生自null值
console.log(null == undefined) // true
console.log(null === undefined) // false
let a1 = Number(00012) // 10。严格模式下报错
let a2 = Number('12ab') // NaN
let a4 = Number(' 4 ') // 4
let a5 = Number(1.1) // 1.1
let a6 = Number(true) // 1
let a7 = Number(NaN) // NaN
let a8 = Number(null) // 0
let a9 = Number(undefined) // NaN
console.log(a1,a2,a4,a5,a6,a7,a8, a9)
// parseFloat一样,第二位参数是转成什么进制
let a0 = parseInt('AF',16) // 10
let a01 = parseInt('AF') // NaN
let a1 = parseInt(012) // 10。严格模式下报错
let a2 = parseInt('12ab') // 12
let a3 = parseInt('a12b') // NaN
let a4 = parseInt(' 4 ') // 4
let a5 = parseInt(1.1) // 1
let a6 = parseInt(true) // NaN
let a7 = parseInt(NaN) // NaN
let a8 = parseInt(null) // NaN
let a9 = parseInt(undefined) // NaN
console.log(a1,a2,a3, a4,a5,a6,a7,a8, a9)
###加粗样式 6. function