常见js计算题之数据类型转换

1.如下:

var a;
var b = a * 0;
if ( b == b) {
     console. log( b * 2 + "2" - 0 + 4);
} else {
      console. log(! b * 2 + "2" - 0 + 4);
}

分析如下:

   先看结果:26

   首先,a是undefined, b=a*0   把a转成number类型即NaN,所以b是NaN, 所以b==b即NaN==NaN =>false,走else;

  !NaN 为true, !b*2 即1*2,最后2+“2”-0  而 “22”碰到"-"号 就转成数字,再和4相加得26。如果没有减0 就是“224”了。

2.

parseInt( '100W') //100
parseInt( 'W100') //NaN
parseInt( 11, 2) //3
parseInt( "11", 2) //3

总结几个特殊常见的类型转换和比较:

一.JS中常见数据类型转换 

 1. 其他数据类型转为number

    (1) Number()返回一个数字或NaN。   typeof NaN  :number类型

 1)字符串转成数字number (全部是数字) 如果有字母或非法 都是NaN。
 2)布尔型转成数字number     true 1 false  0。
 3)  null     转换成number   Number(null)-- 0;
 4)  undefined转换成number   Number(undefined)— NaN      
 5)数组   机制是先调用toString()方法,转成字符串 再转成数字 所以结果只能是一个数字(只有一个数字的数组)或者 NaN。
 6)对象   NaN

(2) parseInt() 转换成整数 字符串转换成整数返回值是整数或NaN
            和Number()的区别碰到非数字 后面不再进行,但是前面数字部分正常输出。
含有小数的字符串 也只保留整数部分。

      注意:

    parseInt(string,radix) : string要解析的字符串,radix介于2-36之间,如果省略或为0,则为10进制解析;如果2,即前面那个参数为2进制表示的;“0x”或者“0X”为16基数。如果这个参数小于2或者大于36,则为NaN。

      (3) parseFloat():将字符串类型转换成整数或小数  或NaN

var str =”.1.1.1”
console.log(parseFloat(str));  为0.1
 隐式转换: 在进行运算或者部分转化的过程中,js自动进行的数据转换。
    (4)  isNaN(): 返回值是一个布尔值:true,false;
   true: 代表确实不是一个数字
   false: 是一个数字
null—0; 
true—1; 
false—0; 
undefined–NaN 
2.其他类型转换成字符串: toString() /String()
          var num1=true;
console.log(num1);
         console.log(String(num1));
         console.log(num1.toString());
3、其他类型转换成布尔类型
Boolean(); 返回值true  false
除了以下5种,其余都是真
  1. 、NaN、’‘、null、undefined 都为false。
!取反 非,先将符号后面的内容调用布尔方法,对这个返回值再进行取反    true false
!! 双重取反 可以看成是直接调用Boolean()方法的结果       


二.特殊类型比较
    “==” 在js中是比较的意思,返回一个布尔类型的值,相等就是true 不想等就是false 
                              NaN == NaN        // false
null == undefined   //true
                                 null=== undefined  //false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值