iwowen的博客
iwowen
记录和分享技术
  1. 首页
  2. 前端
  3. 正文

js数据类型和数据转换

2020年04月25日 138点热度 0人点赞 0条评论

数据类型

  1. 原始数据类型
    Boolean String Number Symbol Null Undefined
  2. 对象
    Object

显式类型转换

  1. String 函数

    • 原始类型转换
      数值:转换为相应的字符串
      字符串:转换后还是原来的值
      布尔值:转换后为'true'或者'false'
      undefined: 转换后为'undefined'
      null: 转换后为'null'
    • 对象类型转换
      先调用toString方法,如果toString方法返回的是原始类型的值,则调用String函数,不在继续。
      如果toString返回的是复合类型的值,则调用valueOf方法,返回的是原始类型的值则调用String函数,不在继续。
      如果valueOf返回的是复合类型的值,则报错。
  2. Number 函数

    • 原始类型转换
      数值:转换后还是原来的值
      字符串:如果能够转换则转换为对应的数值,不能则转换为NaN,空字符串转换为0.
      布尔值:true为1,false为0
      undefined: 转换为NaN
      null:转换为0
    • 对象类型转换
      先调用对象自身的valueOf方法,如果返回的是原始类型,则调用Number函数对原始类型进行转化。
      如果valueOf返回的是复合类型的值,再调用自身的toString方法,如果toString返回的是原始类型的值,则调用Number函数转化。
      如果toString 返回的是复合类型的值,则报错
      {a: 1}.valueOf() === {a: 1}
      {a: 1}.toString() === '[object Object]'
      所以{a: 1}调用Number函数最终结果为NaN
  3. Boolean 函数

    • 原始类型转换
      undefined、null、+0、-0、NaN、'' -> false
      其他的都返回true

隐式类型转换

四则运算 + - * /等
判断语句
Native调用 比如console.log会将变量转换为字符串

typeOf类型转换

undefined -> 'undefined'

Null => 'null'

Boolean -> 'boolean'

Number -> 'number'

String -> 'string'

Symbol -> 'symbol'

Host Object -> implamentation-dependent

Function Object -> 'function'

Any Other Obejct -> 'object'

常见题目

  1. [] + []

  2. [] + {}

  3. {} + []

  4. {} + {}

  5. true + true

  6. 1 + {a: 1}

标签: js
最后更新:2020年11月22日

什码

保持饥渴的专注,追求最佳的品质

点赞
< 上一篇
下一篇 >

文章评论

取消回复

最新 热点 随机
最新 热点 随机
使用rollup和typescript搭建自己的函数库 前端关于性能优化方面的记录 关于前端BFC相关笔记 js数据类型和数据转换 dom事件笔记 css盒模型
关于前端BFC相关笔记前端关于性能优化方面的记录前端使用canvas实现贪吃蛇小游戏前端css实现左中右布局如何在react项目中使用redux?使用create-react-app打造多页面应用
使用rollup和typescript搭建自己的函数库 在vue中使用mock css盒模型 前端css实现左中右布局 js中new的过程是什么? 前端关于性能优化方面的记录
分类目录
  • react
  • vue
  • 前端
  • 工具
文章归档
  • 2020年12月 (1)
  • 2020年5月 (2)
  • 2020年4月 (3)
  • 2020年3月 (1)
  • 2020年2月 (1)
  • 2020年1月 (2)
  • 2019年12月 (1)
  • 2019年11月 (3)
  • 2019年10月 (1)

COPYRIGHT © 2020 iwowen的博客. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

蜀ICP备19037276号-1