区分大小写
松散类型的变量,只会存值不会标记变量类型,关键字var
变量类型:Undefined, Null, String, Number, Boolean, Object
typeof
返回:undefined, object, string, number, boolean, function
typeof
是操作符,并不是函数,typeof null
和typeof(null)
都可以,null
是空的对象指针,返回object
;未定义的变量使用typeof
并不会报错
var message
console.log(message) //undefined
console.log(age) //undefined
Undefined
类型只有一个值:undefined
,没有初始化的变量都会保存undefined
值
Null
类型只有一个值:null
,如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null
而不是其他值;'undefined'派生自'null'
console.log(undefined == null) //true
Boolean
:true
, false
(注意区分大小写,True
和False
就只是普通的标识符);可以使用Boolean()
将任意类型的值转换为Boolean
值,列举出false
的情况如下
//String
console.log('') //false
//Number
console.log(0) //fasle
console.log(NaN) //false
//Object
console.log(null) //false
//Undefined
console.log(undefined) //false
if
判断自动执行Boolean
转换
var message = 'message'
if(message) {//true}
Number
:数字首位为0
表示八进制(严格模式不支持),类似078
会当做十进制数值;0x
表示十六进制,a-f
可大写也可小写;浮点数精度为17
位小数,永远不要测试某个特定的浮点数值(0.1+0.2 != 0.3
);最大值Number.MAX_VALUE
,最小值Number.MIN_VALUE
,如果超出范围将自动转换成正无穷Infinity
(Number.POSITIVE_INFINITY
,不能参与计算)或负无穷-Infinity
(Number.NEGATIVE_INFINITY
,不能参与计算),判断数值是否超出范围使用isFinite()
,超出范围返回false
;NaN
与任何值都不相等,包括他自己
console.log(NaN == NaN) //false
判断是否不是数值,使用isNaN()
,不能转换为数值返回true