JavaScript 数据类型转换

1. typeof 操作符

使用typeof操作符来检测变量的数据类型。

使用方式:typeof 变量名 或者 typeof(变量名)

返回结果: number、string、boolean、object、undefined、function

typeof {}	// 返回object
typeof []	// 返回object
typeof null	// 返回object
typeof undefined	// 返回undefined
typeof(function() {})	// 返回function

注:

  • typeof返回结果的类型为string类型。
  • 在JavaScript中,数组是一种特殊的对象类型。
  • 在JavaScript中,null表示一个空对象的引用。

null和undefined的异同:

  • null和undefined的值相等,类型不同
  • undefined 表示声明的变量未赋值,默认值为undefined。
  • null 一般表示主动释放指向对象的引用,不再指向任何对象地址。

2. 显式类型转换

Number():将其它类型的参数值转换成number类型的参数值。

注:

  • 不管是否成功转换,其结果的类型都是number类型。
  • 如果一个参数值不能转换成一个数字,则返回NaN(非数字值)。
  • 空字符串和null会被转换成数字0。
  • 一元运算符“+”号,可以将变量转换成数字。
  • 布尔值可以转换为数字,true为1,false为0。
Number('3.14') // 返回 3.14
Number(' ') // 返回 0
Number(true) // 返回 1
Number(false) // 返回 0
Number('abc') // 返回 NaN
typeof( + '1') // 返回 number
Number(undefined) // 返回NaN

parseInt(): 解析一个字符串,返回一个整数。

用法:

  • 当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
  • 当忽略参数 radix , JavaScript 默认数字的基数如下:
    • 如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
    • 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

语法: parseInt(string, radix),其中string是必需项,表示要被解析的字符串,radix是可选项,表示要解析的数字的基数,该值介于2~36之间。

注:

  • 只有字符串中的第一个数字会被返回。
  • 字符串首尾存在空格是允许的。
  • 如果字符串的第一个字符不能被转换成数字,那么parseInt()会返回NaN。
parseInt('123.456')	// 返回 123
parseInt('   123.456   ')	// 返回 123
parseInt('123.456abc')	// 返回123
parseInt('1a.23')	// 返回 1
parseInt('a123.456')	// 返回 NaN

String():将参数转换成字符串。

语法:String(参数)


toString():作用同String()方法。

语法:toString(radix),其中radix是可选项,表示以10进制为基底将其转换为目标进制(radix进制)。

注: undefined 和 null 没有toString()方法。


3. 隐式类型转换

隐式类型转换,内部使用的都是显式类型转换方法。

isNaN():先使用 Number() 方法对参数进行转换,再讲结果与 NaN 进行比较。

++/-- +/-(一元正负运算符):内部使用Number()方法。

+:加号两侧有一个是String类型,它就会调用String()方法将另一个也转换成String类型。

- * /:内部先使用Number()方法。

> < >= <=:符号两侧有一个是数字,则会转换成数字进行比较。

2>1>3	// 返回false

特殊的:

NaN == NaN	// 返回false
undefined == null	// 返回true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值