JS数据类型转换

开篇一张图,剩下全靠编。😂

image

上图来自JavaScript权威指南,可以说是几乎把所有的类型转换相关的问题都列出来了。

下面是我从书中以及其他资料总结出的一些规律。

  • 任意JavaScript的值都可以转换成布尔值,undefined null -0 0 NaN "" 会被转换成false,除此之外包括对象(数组)的其他值都会被转换成true。

  • 原始值转字符串直接在原值的基础上加上引号。

  • 以数字表示的字符串可以直接转换为数字,且该字符串前后可以有空格;前后有任意非数字字符会导致转换结果为NaN。

  • 奇怪但只能记住的转换:Number(true) Number(false) Number("")的值分别为1 0 0。

  • 原始值通过调用String() Number() Boolean() 函数可以转换为他们各自的包装对象。

  • undefined和null转为对象会造成类型错误。

  • 除undefined和null外的任何值都具有toString()方法,这个方法的执行结果通常和String()方法的返回结果一致。

  • 如果“ + ”运算符的一个操作数是字符串,他将会把另一个操作数转换为字符串。

  • 一元“ + ”运算符将其操作符转换为数字。

  • 一元“ ! ”运算符将其操作数转换为布尔值并取反

  • 一些例子:

    • x + " " //等价于String(x)

    • +x //等价于Number(x),也可以写成x-0

    • !!X //等价于 Boolean(x),注意是双叹号

  • 对象转为字符串和数字,简单来讲通过toString() valueOf() 就可以完成。首先使用toString()方法,如果没有得到期望的结果,再更换使用valueOf()方法。再不行便是抛错。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 2,548评论 1 17
  • 1. 转字符串 1.1 String(x) String函数可以将任意类型的值转化成字符串。 数值:转化为相应的字...
    sxfshdf阅读 595评论 0 50
  • JavaScript 是一种弱类型的语言,也就是没有类型限制,变量可以随时被赋予任意值。同时,在程序运行过程中,类...
    胡小胖_阅读 239评论 0 0
  • 从前,有两个原始人,他们拔一个巨大的萝卜,非常非常费力。原始人“嗨哟嗨哟”地一起喘气,当同步呼吸的时候,萝卜一下子...
    邹泽江阅读 1,016评论 0 0