JS数据类型
# JS数据类型
# 1. 六种数据类型
- JS中一共分成六种数据类型 5个基本数据类型+Object
- String 字符串
- Number 数值
- Boolean 布尔值
- Null 空值
- Undefined 未定义
- Object 对象
- typeof运算符检查数据类型
# 2. String 字符串
- JS中的字符串需要使用引号引起来双引号或单引号都行
- 在字符串中使用\作为转义字符
\' ==> '
\" ==> "
\n ==> 换行
\t ==> 制表符
\\ ==> \
- 使用typeof运算符检查字符串时,会返回”string”
# 3. Number 数值
JS中所有的整数和浮点数都是Number类型
最大能表示的值:Number.MAX_VALUE= 1.7976931348623157e+308
特殊的数字:能赋值给变量
- Infinity 正无穷 a = Infinity ,能赋值
- -Infinity 负无穷
- NaN 非法数字(Not A Number)
- 其他进制的数字的表示:
- 0b 开头表示二进制,但是不是所有的浏览器都支持
- 0 开头表示八进制
- 0x 开头表示十六进制
- 使用typeof检查一个Number类型的数据时,会返回”number”(包括NaN 和 Infinity)
# 4. Boolean 布尔值
- 布尔值主要用来进行逻辑判断,布尔值只有两个
- true 逻辑的真
- false 逻辑的假
- 使用typeof检查一个布尔值时,会返回”boolean”
# 5. Null 空值
- 空值专门用来表示为空的对象,Null类型的值只有一个
- null
- 使用typeof检查一个Null类型的值时会返回”object”
# 6. Undefined 未定义
- 如果==声明==一个变量==但是没有==为变量==赋值==此时变量的值就是undefined
- 该类型的值只有一个 undefined
- 使用typeof检查一个Undefined类型的值时,会返回”undefined”
# 7. 引用数据类型
Object 对象
# 8. 类型转换
- 类型转换就是指将其他的数据类型,转换为String Number 或 Boolean
# 8.1 转换为String
# 方式一(强制类型转换)调用被转换数据的toString()方法
var a = 123;
a = a.toString();
- 注意:这个方法不适用于null和undefined
- 由于这两个类型的数据中没有方法,所以调用toString()时会报错
# 方式二(强制类型转换)调用String()函数
var a = 123;
a = String(a);
- 原理:
- 对于Number,Boolean,String都会调用他们的toString()方法来将其转换为字符串
- 对于null值,直接转换为字符串”null”
- 对于undefined直接转换为字符串”undefined”
# 方式三(隐式的类型转换)为任意的数据类型 +””
var a = true;
a = a + "";
- 原理:和String()函数一样
# 8.2 转换为Number
# 方式一(强制类型转换)调用Number()函数
var s = "123";
s = Number(s);
# 转换的情况
- 字符串 > 数字
- 如果字符串是一个合法的数字,则直接转换为对应的数字
- 如果字符串是一个非法的数字,则转换为NaN
- 如果是一个空串或纯空格的字符串,则转换为0
- 布尔值 > 数字
- true转换为1
- false转换为0
- 空值 > 数字
- null转换为0
- 未定义 > 数字
- undefined 转换为NaN
# 方式二(强制类型转换)调用parseInt()或parseFloat()
这两个函数专门用来将一个字符串转换为数字的
如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后在操作 parseInt()
可以将一个字符串中的有效的整数位提取出来,并转换为Number
var a = "123.456px";
a = parseInt(a); //123
- 如果需要可以在parseInt()中指定一个第二个参数,来指定进制
a = parseInt(a, 10) /*转换*/
- parseFloat()可以将一个字符串中的有效的小数位提取出来,并转换为Number
var a = "123.456px";
a = parseFloat(a); //123.456
# 方式三(隐式的类型转换)使用一元的+来进行隐式的类型转换(或二元的-*/)
var a = "123";
a = +a;
- 原理:和Number()函数一样
# 8.3 转换为布尔值
# 方式一(强制类型转换)使用Boolean()函数
var s = "false";
s = Boolean(s); //true
# 转换的情况
- 字符串 > 布尔
- 除了空串其余全是true
- 数值 > 布尔
- 除了0和NaN其余的全是true
- null、undefined > 布尔
- 都是false
- 对象 > 布尔
- 都是true
# 方式二(隐式类型转换)为任意的数据类型做两次非运算,即可将其转换为布尔值
var a = "hello";
a = !!a; //true
# 9. 数据类型的判断
# 9.1 typeof
- 是运算符不是函数
- 返回数据类型的字符串表达
- 可以判断:undefined / 数值 / 字符串 /布尔值 / function
- 不能判断:null与object / object和array(都返回object) typeof null ----> object
# 9.2 instanceof
- 判断对象的具体类型
# 9.3 ===
- 可以判断:undefined / null