JavaScript 数据类型与数据类型转换
数据类型:
-
数字类型:(Number)
1 , 2 , -1 ,0 -
字符串类型(String) 用一组单引号或者一组双引号包裹的数组
‘1’ ,“1” ,“string” -
布尔类型(Boolean)
true false -
undefined 类型
undefined 未定义的 -
null 类型
null 空对象 -
数组(array)
-
对象
数据类型的分类
-
原始值
数字类型(number),字符串类型(string),布尔类型(boolean),undefined类型,null类型 -
引用值
1)普通对象
{ },{name:小明}2)数组对象
[ ],[1,2,3,4,5]3)函数对象
function auto(){ console.log(“我是一个函数”) };
数据类型的检查:typeof
作用:
1.可以检测出JS数据的类型
2.检测出的结果是一个字符串类型的数据
- typeof 数字 结果:number
- typeof 字符串 结果: string
- typeof 布尔类型 结果:boolean
- typeof undefined类型 结果:undefined
- typeof nul类型 结果:object (特例)
- typeof 普通对象 结果:object
- typeof 数组对象 结果:object
- typefo 函数对象 结果: function
数据类型转换
toString()
toString函数能够把js的数据类型转换成字符串
1)原始值
数字类型转换成字符串类型 2 ----> “2”
布尔类型转换成字符串类型 true ---->“true”
null / undefined 不能使用toString函数变成字符串
2)引用值
普通对象 {} —>"[object Object]"
数组对象 [1,2,3,4]—>“1,2,3,4”
函数对象 function(){}—>“function(){}”
Number()
Number函数能够将其他JS数据类型转换成数字类型
数字类型:0,-1,1,1.0,0.5 ,NaN(not a number)
1)原始值
字符串中只要含有非数字(除了数字,符号和小数点之外的)在使用Number函数转成数字类型时都是NaN
Number("") —> 0
Number(" ") —> 0
布尔类型使用Number函数转换成数字类型
Number(true) —>1
Number(false) —>0
null类型使用Number函数转换成数字类型
Number(null) —> 0
undefined类型使用Number函数转换成数字类型
Number(undefined) —>NaN
2)引用值
引用值使用Number函数转换成数字类型有两步
<1> 先把引用值隐式转换成字符串
<2>再把隐式转换好的字符串放到Number函数中
Number([1]) —> Number(“1”) —> 1
Number([1,2,3]) —> Number(“1,2,3”) —> NaN
Number({name:“xiaoming”}) —>Number([object,Object]) —> NaN
Number(function(){}) —>Number(“function(){}”) —> NaN
Boolean()
Boolean函数能够把JS的其他数据类型转换成布尔值
只有 0,NaN,undefined,null,false," "(空字符串)转换成布尔值是fasle,其他的所有JS数据转成布尔值时都是true
取反运算符:! 作用:对布尔值取反
!ture —> false
!false —> true
如果!后面跟的不是布尔值 则
1.先把 ! 后面的js数据转成布尔值
2.再取反
!0 —> ! false —> true
!!的作用和Boolean函数的作用是一样的,都是把JS的数据转换成布尔值
!! 0 —> !! 0 --> !! false —> ! true —> false
parseInt()
parseInt 函数作用:
从左向右提取数字,如果遇到数字之外(空格,小数点)的就会停止提取
parseFloat()
parseFloat函数作用
从左向右提取数字,如果遇到数字和小数点之外的(空格)的就会停止提取
isNaN()
isNaN函数作用
这个函数可以判断一个数字是不是NaN ,如果是怎结果就是true反之false
如果使用isNaN函数来判断其他JS的数据,则会
1.先隐式转换成数字
2.再把隐式转换好的数字放到isNaN函数中
isNaN(true) —> isNaN(1) —> false (1是一个数字,返回fasle)
isNaN(function(){}) —> isNaN(NaN) —> true (function转为数字时先转为字符串:“function(){}”,然后转为数字 :NaN,结果为true)
isNaN(null) —> isNaN(0) —> false (null转为数字的0)
isNaN(undefined) —> isNaN(NaN) —> true