1. 数据类型
数据类型主要分为两大类
@基本类型:5种
@引用类型:3种
1.1 Number
JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型:
123; // 整数123
0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
唯一能判断NaN的方法是通过isNaN()函数:
isNaN(NaN); // true
1.2 String
字符串是以单引号'或双引号"括起来的任意文本,
'abc' //字符串abc
"xyz" //字符串xyz
'123' //字符串123
1.3 boolean
一个布尔值只有true、false两种值
true
false
1.4 undefined
undefined表示值未定义
1.5 null
null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。
1.6 数组
用[]
声明一个数组
var a = []
1.7. 对象
对象是一组由键-值组成的无序集合
var person = {
name: 'Bob',
age: 20,
tags: ['js', 'web', 'mobile'],
city: 'Beijing',
hasCar: true,
zipcode: null
};
2. 判断
typeof
instanceof
===/==
- typeof :
可以判断:undifined、number、string、boolean、function,
不可判断:null与object, Array与object
返回数据类型的字符串小写表示 - instanceof: 专门用来判断对象的具体类型
- ===: 可判断undifined、null
== 它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果
=== 它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。
var a
console.log(typeof a) // 'undifined'
var a
console.log(typeof a==='undefined') //true
a = 3
console.log(typeof a==='number') //true
a = 'sdf'
console.log(typeof a==='string') //true
a = true
console.log(typeof a==='boolean') //true
var b1 ={
b2:[1, 'abc', console.log],
b3:function () {
console.log('b3')
}
}
console.log(b1 instanceof Object, b1 instanceof Array); //true false
console.log(b1.b2 instanceof Array, b1.b2 instanceof Array); //true true
console.log(b1.b3 instanceof Function, b1.b3 instanceof Function); //true true