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
- (八)高性能服务器架构设计总结4——以flamigo服务器代码为例
- SQL员工部门表综合查询60题
- 如何对Scala中集合(Collections)进行排序
- 小白教程——安装和使用PyCharm
- 如何在 Scala 中科学地操作 collection(一)集合类型与操作
- Redis 一二事(2) - 在spring中使用jedis 连接调试单机redis以及集群redis
- 用 Python 制作微信好友个性签名词云图
- 用 Python 查看微信好友位置信息
- 用 Python 分析微信好友性别比例
- FreeMarker静态模板结合spring展示
- 源码阅读之Vector
- 用 Python 实现聊天机器人
- 用 Python 实现雪花效果
- CentOS6.8_Spark单机部署
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法