JS中常用的数据类型
- 基本数据类型
- Number和NaN、Infinity
JavaScript不区分整数和浮点数,统一用Number表示。
// NaN表示Not a Number也叫非有效数字,当无法计算结果时用NaN表示, NaN和任何值(包括自己)都不相等。
// Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
- Number和NaN、Infinity
`isNaN`
检测一个值是否为非有效数字,如果为非有效数字返回TRUE,反之是有效数字返回FALSE
在使用isNaN进行检测的时候,首先会验证检测的值是否为数字类型,如果不是,先基于Number()这个方法,把值转换为数字类型,然后再检测。
console.log(isNaN(10)); // false,有效数字
console.log(isNaN("15")); // false,有效数字
console.log(isNaN("AA")); // true,非有效数字
console.log(isNaN(10, "15")); // false,有效数字,不会检测"15",只检测第一个
console.log(isNaN(10, "AA")); // false,有效数字,只检测第一个
console.log(isNaN("AA", 10)); // true,非有效数字,只检测第一个
console.log(isNaN(true)) // false,有效数字
console.log(isNaN(false)) // false,有效数字
`把其它类型值转换为数字类型`
- Number([val]);
- parseInt/parseFloat([val],[进制]):也是转换为数字的方法,对于字符串来说,它是从左到右依次查找有效数字字符,直到遇到非有效数字字符,停止查找(不管后面是否还有数字,都不在找了),把找到的当做数字返回
===字符串转化为数字;当把字符串转换为数字时,只要字符串中有一个非有效数字字符(第一个点除外),结果都是NaN。一个特别的是:空字符串会得到数字0。
console.log(Number("12.")); // 12
console.log(Number("12.5555")); // 12.5555
console.log(Number("12.5px")); // NaN
console.log(Number("")); // 0
console.log(Number("AA")); // NaN,非有效数字
===布尔转化为数字;
console.log(Number(true)); // 1
console.log(Number(false)); // 0
===null和undefined转化为数字;
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
===把引用数据类型转换为数字,是先把它基于toString方法转换为字符串,然后再转换为数字;
console.log(Number({name: '10'})); // NaN
console.log(Number({})); // NaN
console.log(Number([])); // 0
console.log(Number([12])); // 12
console.log(Number([12, 23])); // NaN
console.log(Number([12, 23, 'AA'])); // NaN
- String
所有用单引号、双引号、反引号(撇/)包起来的都是字符串 - Bool
true/false - null
null表示“空”。
Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。
大多数情况下,我们都应该用null。undefined仅仅在判断函数参数是否传递的情况下有用。 - undefined表示“未定义”。
- String
- 引用数据类型
- 对象数据类型object
-
{} 普通对象
对象
-
[] 数组对象
数组
-
/^[+-]?(\d|([1-9]\d+))(.\d+)?$/ 正则对象
-
Math数学函数对象
-
日期对象
-
...
-
- 函数数据类型function
- 对象数据类型object
网友评论