javascript数据类型转换 强制转换与隐式转换

一.强制类型转换
  转换字符串
    1、toString() 与 String();
      String()可以将任意值强制为string字符串;
      toString() 只能转换boolean 与 number 类型;undinfined与 null类型会报错。
 
  转换为Number
    1、Number();
      Number('123456')   //123456 number类型
      Number('hello123')
      Number(''123hello“)  // NaN number类型
      Numbe(true)     // 1 number
      Number(false)     // 0 number
      Number(null)     // 0 number
      Number('')(空字符串)     // 0 number
      Number(' ')(空格字符串)     // 0 number
      Number(undefined)     // NaN number
    2、parseInt();
      向下取整
      第一位不是数字直接返回NaN
      比如 paresInt(true) paresInt(false) paresInt(undefined) paresInt(null) 都为NaN 与 Number()方法不同
 
    3、parseFloat();
      与parseInt()方法相同,区别在于可以识别第一位小数点
 
转换为boolean
1.Boolean();
  Boolean(123) // true 非零的数字都为true 包括负数 例如 Boolean(-1) // true
  Boolean(0) // false
  Boolean('123')
  Boolean('hello')
  Boolean('hello123')
  Boolean(' ') // 非空字符串都为true
  Boolean('') //false Boolean(undefined) //false
  Boolean(null) //false
  Boolean(NaN) //false
二.隐式类型转换
转换为String (+)
任何数据类型和字符串相加都是字符串的拼接操作,得到的结果也都是字符串。
 
转换为Number ( - * / % > < >= <= == !=)
  console.log('35' - 34)     //1 console.log('35' - '34') //1
  console.log('35' * 2)     //70
  console.log('40' / '2')     //20
  console.log('35' % 2)     //1
  console.log('35' % '2')     //1
  console.log('5' - true)     //4
  console.log('5' - false)     //0
  console.log(true + null)     //1
  console.log(5 - undefined)  //NaN 因为Undefined转为数字为NaN
  console.log(5 - null)     //NaN
  console.log(44%('2a'))    //NaN
  console.log('5'>'3')     //true 此处可能会以为转换为boolean 但其实是字符串5 和 3 先转换为数字 5 和 3,然后在比大小得到的true,中间涉及到了转换为数字。
  console.log(true > false)  //true 同上,先转化为1和0数字进行比较
  console.log(false == 0)   //true false先转为0 再与右边的0比较
 
//特殊 1
  console.log(false == null)   //false 这个稍微特殊,理论上都应该转换为0比较然后相等true,但实际是直接拿值比较,不会先转为为数字;
 
 
//特殊2 (+)
  // +特殊在于 在和字符串相加中,都会变成字符串,但如果不和字符串相加时,可以进行正 常的隐式转换。 例如:
  console.log(false + true)   //1 false先转为0 true转为1 相加
  console.log(false + null)   //0
  console.log(55 + true)   //56 注意 '55'+true就变成字符串55+true了 结果为'55true'
 
 
  //但是 +在某种情况下,也可以将字符转类型转为Number类型 例如:
  console.log(+'50')     //50 在这种情况下,输出为数字50
  console.log(11 + +'50')   //61 +与+之间有空格 先运行+'55' 转化为数字50,再与数字11相加
   console.log(+true)   // 1
 
转换为Boolean (!)
  console.log(!34)   //false
  console.log(!!34)   //true
  console.log(!'abc')   //fasle
  console.log(!!'abc')   //true
   console.log(!null)   //true
  console.log(!undefined)   //true
  console.log(!NaN)   //true
 
 
 嫌弃格式不清楚的可以看此处的  有道云笔记  
 
posted @ 2022-07-18 20:47  周大仙的小宠  阅读(201)  评论(0编辑  收藏  举报