JS中的类型转换

强制类型转换

  1. 转为String类型,使用toString()函数。
  2. 转为Number类型,使用Number()函数,parseInt()函数(向下取整数)和parseFloat()函数(向下取浮点数)👈尽量不要使用这种方式取整!
var iNum1 = parseInt("red");  //返回 NaN
var fNum4 = parseFloat("11.22.44"); //返回 11.22
		**转Number规则**
		1. string  '2.3.1' => NaN;
		2. null, '', false, [] ==>> 0;
		3. undefined => NaN;
		4. object => NaN。
  1. 转boolean类型,使用boolean()函数
    转Boolean规则
    除了NaN,null,0, ""和undefined以外返回值均为ture,NaN,null,0, ""和undefined的返回值为false。

隐式数据类型转换

隐式类型转换是最为隐蔽的地方,不加注意的话很容易在这一点上出错,对这一点的掌握也体现了JavaScript程序员经验。 JavaScript会自动转换表达式中对象的类型以完成表达式求值。

  1. 四则运算
    加法运算符+是双目运算符,只要其中一个是String类型,表达式的值便是一个String。
    对于其他的四则运算,只有其中一个是Number类型,表达式的值便是一个Number。
    对于非法字符的情况通常会返回NaN:
    1 * ‘a’ // => NaN,这是因为parseInt(a)值为NaN,1 * NaN 还是 NaN
  2. 判断语句
    判断语句中的判断条件需要是Boolean类型,所以条件表达式会被隐式转换为Boolean。 其转换规则同Boolean的构造函数。
var obj = {};
if(obj){
while(obj);
}
  1. Native代码调用
    JavaScript宿主环境都会提供大量的对象,它们往往不少通过JavaScript来实现的。 JavaScript给这些函数传入的参数也会进行隐式转换。例如BOM提供的alert方法接受String类型的参数:
alert({a: 1}); // => [object Object]

关于==

  1. undefined等于null(===时为false)
  2. 字符串和数字比较时,字符串转数字
  3. 数字为布尔比较时,布尔转数字
  4. 字符串和布尔比较时,两者转数字
  5. 只有一个是对象,则toString() valueOf()
  6. 两者都是对象,比较地址值
  7. NaN != NaN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值