分类
javascript类型分为基本类型和对象。
基本类型:
- 数字
- 布尔值
- 字符串
- null
- undefined
其他均为对象,对象与基本类型的区别为具有属性和行为。
特别注意
undefined
对于任何没有赋值(初始化)变量,将undefined赋给它。
对于很多代码中,我们要对变量是否有值进行检查,例如:
var custom = {
name: "Tom",
age: 18
};
if (custom.phonenumber == undefined) {
//
}
null
在应该提供一个对象,但是无法提供时,提供null。很多函数和方法都返回对象,我们要确定返回的为对象而不是null。
例如,使用document.getElementById()无法寻找到指定id的标签时,将返回null。
var weather = document.getElemntById("weatherDiv");
if (weather != null) {
//
}
typeof null = object;
注意,区别undefined为变量未初始化。
NaN
NaN表示无法用数值表示的结果。例如,0/0在js中用NaN表示。
注意,NaN和任何值都不想等,包括自身。即 NaN != Nan 是对的。
因为NaN和自身也不想等,所以我们不能用 NaN==myNaN 进行判断,应使用isNaN:
if (isNaN(myNaN)) {
//
}
使用isNaN进行判断:非数字则范围true
- 判断数字返回false isNaN(2) - false
- 判断NaN返回true isNaN(NaN) - true
- 判断字符串,如果字符串可以转换为数字则为true,若字符串无法转换为数字则为true
typeof null = number;
infinity
超过浮点上限的数值,使用infinity表示。
类型转换
==
js中想等判断,会进行类型转换(若不需要类型转换使用===)。
- 比较数字和字符串,会将字符串转换为数字。
- 比较布尔值和其他类型,全部转换为数字。
- 比较null和undefined, 相等。
===
严格相等,必须类型和值都相等。
+
含有字符串时,则为拼接运算。否则,为算术运算。
其他算术运算 - / *
js都将认为执行算术运算。
对象相等
对于对象的判断,只有两个对象的引用相同时,认为两个对象相等。
真假值判断
我们要注意特别类型的真假值判断,在使用if判断时特别注意。
假值:
- undefined
- null
- 0
- “” 空字符串,任何东西都没有。
- NaN
字符串
字符串在执行自带方法时,js内部自动转换为对象,具有行为操作。
属性:length
方法:
- indexof(string) 返回字符串中首次出现位置。
- substring(index1, index2) 范围两个参数(整数)只见字符串。包括第一个,不包括第二个。
- split(char) 分割字符串,返回数组。
- toLowerCase, replace, slice, match, concat, toUpperCase, trim等。