【又见JavaScript】显示转换&&隐式转换知识点总结

【又见JavaScript】显示转换&&隐式转换知识点总结

显式类型转换

Number() 当( )内需转换的值不同时:

  • 值是“123”/“3.14159”这种以数字组成的字符串时,返回数字类型的123,3.14159;
  • 值是’abc’或’23a’,有字符组成的字符串,或undefined时,返回数字类型的NaN;
  • 值是true、false、null(不是字符串)的关键字时,返回1,0,0;

parseInt() 只想转换成整型,从第一位开始判断是否为数字

parseInt(value,radix) radix 是一个2到36之间的整数值,按理解是按不同进制转换,ES5规定如果省略就代表用十进制解析

  • 值是“123”/“3.14159”这种以数字组成的字符串时,返回小数点前面的数字,不会四舍五入;
  • 值是true、false、null、undefined、NaN(不是字符串)的关键字时,返回NaN;
  • 值是数字开头的,且有字符组成的字符串如"123ab11"时,返回字符前的数字;
  • 值是以字符开头,且有数字组成的字符串如"fff88"时,返回NaN;

parseFloat() 只接受一个参数,只能使用十进制去解析

  • 会把有小数点的数字字符串转换出来,若想保留几位小数,使用.toFixed()方法,( )里填需要保留几位,此方法返回的值会四舍五入

String() 转换为字符串

  • 平时更多使用 值+"" (引号)去进行字符串的转换
  • toString(value,radix) 也可以填radix 几进制的转换

Boolean()

  • undefined null NaN “” 0 =>false
  • 其余都是true
隐式类型转换
  • 自增/自减

    var a = '123'; 
    a++; // 先将a隐式转换了,Number(a)再进行自增; 
    console.log(a);
    
  • “+” 号拼接

    var a = 'a' + 1; 
     // 先将数字1隐式转换了,Number(1),再进行拼接; 
    console.log(a); // a1
    
  • “* / -” 号的使用

    var a = "3" * 2; // 先把string隐式转换为number Number(3)
    console.log(a); // 6
    
  • “> < >= <=” 的使用

    var a = '1' > 2; // 先Number(1) -> 再与数字2作比较
    console.log(a); // false
    // 补充: 两个字符串的比较
    var b = 'a' > 'c'; // 根据ascii码值进行比较
    console.log(b); 
    
  • 一些浏览器的运算 / 比较 / 转换规律

    “ == ” 相等和 “ === ” 绝对相等

    • == 的比较规律/转换规则(隐式转换):

      1. 对象 == 字符串 对象转换为字符串(对象.toString())

        eg. [10] == ‘10’;// true

      2. null == undefined => true(===时不等)/ 0 == null => false(底层机制的转换不同有关)

        但 null & undefined 和其它值都不相等【0 是有自己的内存空间的值,而null是没有自己的内存空间的】

      3. NaN 和任何类型的值相比较都不相等(包括它自己)

      4. 剩下的两边不同时都是转换为数字进行比较(对象转数字:Number(对象.toString() ))

      练习题:

      [] == false;
      // [] -> [].toString() -> '' -> Number('') -> 0
      // false -> 0
      // true
      
    • === 绝对相等:两边的类型、值都一致才相等,类型不同时直接不对等,不会进行隐式转换 项目中用它更好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值