JS有六种数据类型,可以大致分为以下两类:
- 基本数据类型: Number、String、Boolean、Undefined、Null;
- 复杂(引用)数据类型: Object(Array、Date、RegExp…);
Null 和 Undefined
Null
Null 表示“无”的对象,转换为数值时为0
典型用法:
- 作为函数的参数,表示该函数的参数不是对象;
- 作为对象原型链的终点。
Undefined
Undefined 表示一个“无”的原始值,转换为数值时为NaN
典型用法:
- 变量被声明,但未赋值;
- 调用函数时,应该提供的参数没有提供,该参数=undefined;
- 对象没有赋值的属性,该属性的值=undefined;
- 函数没有返回值,默认返回undefined。
Boolean
只有两个值:true 和 false;
转换函数 Boolean()
JS 所有类型的值都有与这两个Boolean值等价的值,具体的转换关系见下表:
数据类型 | 转换为true的值 | 转换为flase的值 |
---|---|---|
Boolean | true | flase |
String | 任何非空的字符串 | “”(空字符串) |
Number | 任何非0数值(包括无穷大) | 0 和 NaN |
Object | 任何对象 | null |
Undefined | 不使用 | undefined |
Number
JS 中 Number 可以表示: 整数和浮点数值,以及二进制,八进制(0开头),十六进制(0x开头)的数。
数值范围
最大/最小值:Number.MAX_VALUE,Number.MIN_VALUE;
无穷大/无穷小:infinity, -infinity;
isFinity()函数:确定一个数是不是有穷的。
NaN(Not a Number,一个特殊的数值)
用于表示本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了),在ECMAScript中,任何数除以0会返回NaN(实际上只有0除以0才会返回NaN,正数除以0返回Infinity,负数除以0返回-Infinity);
任何涉及NaN的操作都会返回NaN;
NaN与任何值都不相等,包括NaN本身;
isNaN()函数:判断接收到的参数能否转换为数值,如果不能返回true,如果能则返回false,该参数可以是任何类型。
数值转换:Number()、parseInt()、parseFloat()
String
可以由双引号(” “)或单引号(’ ‘)表示;
length属性
每个字符串都有一个length属性,返回字符串的长度;
特点
字符串是不可变的(字符串值的内容是不可改变的):要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量;
转换为字符串两种方法
toString()
- 除了 null 和 undefined (数值,对象、布尔值和字符串)都有这个方法;
- 在调用数值的toString()方法时,可以传递一个参数,作为输出数值的基数;(比如:二进制、八进制、十六进制等);
String(): 在不知道要转换的值是否为 null 和 undefined 时,可以使用
- null,返回“null”,undefined,返回“undefined”,其他返回值与 toString() 方法一样;
- 如果要转换的值有 toString() 方法,则调用该方法(没有参数)并返回相应的结果;
Object
JS 中对象是一组数据和功能的集合;
对象也可看做属性的容器,每个属性都是一个名/值对;属性的名字可以是包括空字符串在内的任意字符串。属性值可以是除undefined值之外的任何值。
对象最常见的用法是创建(create)、设置(set)、查找(query)、删除(delete)、检测(test)和枚举(enumerate)它的属性。