JS里的数据类型转换

一、转为字符串

  1. toString()方法

数值、字符串、对象、布尔;都有toString方法;这个方法唯一能做的就是返回相应的字符串;其中nullundefined没有toString()方法。

x.toString()

  1. String(x)

String()属于强制转换, null转换的结果为nullundefined转换的结果为undefined;其余的如果有toString()方法,即调用该方法,返回相应的结果。

String(x)

  1. x + ''

还有一种比较“老司机”的方法,就是任何数据类型直接 + 空字符串''就行了。如下:

x + ''

注意,如果非要将number + string,会调用number的toString方法,如下

1 + '2'    相当于
(1).toString() + '2'
// '12'

二、转为布尔

  1. Boolean()

Boolean函数可以将任意类型的值转为布尔值。
它的转换规则相对简单:除了以下五个值(5个falsy值)的转换结果为false,其他的值全部为true

  • undefined
  • null
  • -0+0
  • NaN
  • ''(空字符串)
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false

所有对象(包括空对象)的转换结果都是true,甚至连false对应的布尔对象new Boolean(false)也是true

2.!!x
还有一种比较聪明的方法就是通过!取反,这样的话两个感叹号!!就是负负得正,在一个数据类型前面加上!!就可以返回它本身的布尔值。

!true // false
!!true // true
!!1 // true
!!'' // false
!!NaN // false

三、转为数值

1.Number()

使用Number函数,可以将任意类型的值转化成数值。

Number('1') // 1
  1. parseInt() (经常有人问的)

parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数 (数学系统的基础)。能解析多少就解析多少,一旦遇到不能解析的字符串,就立马退出返回结果。

parseInt('1',10) // 1
  1. parseFloat()

parseFloat() 函数解析一个字符串参数并返回一个浮点数。

parseFloat("3.14");
parseFloat("314e-2");
parseFloat("0.0314E+2");
parseFloat("3.14more non-digit characters");
  1. x - 0 (常用也常见)

一个比较聪明的方法,也是比较骚的方法。(既有parseInt()的功能,也有parseFloat()的功能)

'12' - 0 // 12
'1.23' - 0 // 1.23
  1. +x

通过取正(取它原本的值),来得出数值。

+ '1.23' // 1.23
+ '.1' // 0.1
+ '-1' // -1
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容