js的类型转换

时间:2019-11-27
本文章向大家介绍js的类型转换,主要包括js的类型转换使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

js常见的类型转换有3种,
1. 转为string类型
2.转为boolean类型
3.转为number类型
这三种转换也是隐式转换中的所有转换类型


toString()转换为字符串

原始值转化为字符串

(2).toString() //”2″

(true).toString() //”true”

(false).toString() //”false”

(null).toString() //报错,没有toString这个属性

(undefined).toString() //报错,没有toString这个属性

引用值 转化为字符串

  • 对象变成[object Object]

({}).toString() //”[object Object]”

({name:”lion”}).toString() //”[object Object]”

  • function对象变成字符串的function

(function(){}).toSring() //”function(){}”

(function(){console.log(123)}).toString() //”function(){console.log(123)}”

  • 将数组转换为字符串

(“[ 1,2,3 ]”).toString() //’1,2,3′

(“”).toString() //”

([1,[1,2],[1,2,3]]).toString //’1,1,2,1,2,3′

这里如果设置

1
2
3
var a =2;
a.toString();
console.log(typeof a);      //"number"
这里就会涉及到另外一个知识包装对象,在之后会讲这里先不说

Boolean转为布尔类型

只有一下是会转为false,其余数据类型都为true

Boolean(0) //false 数字0

Boolean(NaN) //flase

Boolean(”) //false

Boolean(undefined) //false

Boolean(null) //false

Boolean(false) //false

取反运算符!

取反操作符就是对布尔值取反

!true -> false

!false -> true

对其他类型怎么取反呢

先将其他类型转换为布尔类型利用Boolean()转换,再取反.这里就涉及到隐式转换,隐式转换就是自动执行Boolean函数

![] ->!true->false

!{}->!true->false

!!”->false

!!相当于Boolean()

Number()转化数字类型

原始值转化为数字类型

Number(”)->0

Number(‘ ‘)->0

Number(‘2px’) ->NaN 只要字符串有除空格外的非数字都是NaN

Number(10) -> 10

Number(“12.5”)->12.5

Number(true)->1

Number(false)->0

Number(null)->0

Number(undefined)->NaN

归纳一下Number()转化为0的数据类型
” 空字符串
‘ ‘ 含一个空格字符串
false boolean的false
null null

转化为NaN的数据类型
只要字符串有除空格外的非数字都是NaN
undefined

转引用值为数字分为两步

1.先转为字符串
2.在把字符串转为数字

Number({})->Number([object Object])->NaN

Number(function(){})->Number(‘function(){}’)->NaN

Number([])->Number(”)->0

Number([1,2])->Number(‘1,2’)->NaN

判断是不是NaN的函数isNaN()

<isNaN(0) //是不是NaN,不是

>false

<isNaN(NaN) //是不是NaN,是的

>ture

当判断其他的数据类型的时候,isNaN() ,先转为数字再判断,如果碰上引用类型是先将引用类型转为字符串,再转为数字,再判断是不是NaN

布尔值:

isNaN(true)->isNaN(1)->false

isNaN(false)->isNaN(0)->false

字符串:

isNaN(“12.5”)->isNaN(12.5)->false

isNaN(“12.5px”)->isNaN(NaN)->true

isNaN(“12.5 “)->isNaN(12.5)->false

isNaN(null)->isNaN(0)->false

isNaN(undefied)->isNaN(NaN)->true

引用值:

isNaN({})->isNaN(‘[object Object]’)->isNaN(NaN)->true

isNaN([])->isNaN(”)->isNaN(0)->false

isNaN([1,2])->isNaN(‘1,2’)->isNaN(NaN)->true

isNaN(function(){})->isNaN(‘function(){}’)->isNaN(NaN)->true

parseInt取整

对于数字类型

parseInt(10.2)->10

parseInt(true)->NaN

parseInt(false)->NaN

parseInt(null)->NaN

parseInt(undefined)->NaN

parseInt(”)->NaN

Number()与parseInt()对于字符串的处理

Number只要字符串中有非数字,就是NaN

parseInt(“12.5px”) 只要有从左向右,数字,会提取出来12

parseFloat(“12.5px”) 12.5


练习:

Number(‘123lion’)
>NaN

Number(typeof true)
>NaN

Number( typeof typeof true )
>NaN

Number(!NaN)
>0

parseInt(‘lion123lion’)
>NaN

Boolean([])
>true

!!null
>false

({}).toString()
>'[object Object]’

([23,false]).toString()
’23,false’

看完觉得自己对类型转化有了充分的了解

原文地址:https://www.cnblogs.com/lionli/p/11945143.html