JS里的类型

JS里的类型

类型转换
  • 基本类型
    number string boolean symbol null undefined
  • 复砸类型
    object
转字符串string
  • 方法1:使用toString()转换字符串,如图


上图中可以看到,使用toString()方法把数据类型转换字符串,只有number boolean 可以转换成功,而nullundefined 则返回了一条Cannot read property 'toString' of null ,说明nullundefined无法使用toString()转换字符串,那么只能使用其它方法。

  • 方法2:使用 + '''' + 转换字符串(推荐用此法来转换字符串),如图

图中可以看到,不管是哪一种类型,即使是用toString()转换失败的nullundefined,只要用+ '''' +,都可以把所有的类型都转换成字符串。+号的作用是:如果发现左右任意一边有字符串,它就会自动把另一边也变成字符串。
其实这种方法还有一种经常我们会碰见的奇怪现象,如图中最后几行:
在运行1+1的时候,运行结果等于2,而运行1+'1'的时候,结果为"11",其实1+'1'等价于(1).toString()+'1',运行出来的结果即为''11''。

  • 方法3:使用全局方法window.String(),如图

这三种方法都是可以使用的,但是我比较推荐用第二种,方便很多。

转boolean(记住五个falsy值)
  • 方法1,一般用法,直接使用boolean转换,如图


-方法2,推荐用法,直接用!!转换,如图


在js里面,其它的值转换成布尔的时候,有五个特殊的值需要记住的,分别为:

  • number

0=false
NaN=false

number除了这两个值为false外,其余均为true

  • string

' ' =false

' ' 为空字符串

  • null

null=false

null本身就为false

  • undefined

undefined=false

undefined本身就为false

0 NaN '' null undefined 这五个值均为falsy值(关于falsy可以查阅MDN文档了解),除了这五个值以外,其余的值转成boolean都为true.
还有一个object类型,这个类型的boolean值全部都是true,包括array和function,都为true.

转number
  • number('1')===1
  • parseInt('1',10) 全局函数
  • parsefloat('1.23')===1.23
  • '1'-0===1 推荐此法
  • +'1' === 1 或 + '-1' === -1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。