加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_常德站长网 (https://www.0736zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

一次弄懂JS数据类型转化

发布时间:2022-10-08 15:12:42 所属栏目:MsSql教程 来源:
导读:  把其他类型转换为数字类型发生的情况:1)isNaN检测的时候:

  当检测的值不是数字类型,浏览器会自己调用Number方法先把它转换为数字,然后再检测是否为非有效数字,例:

   isNaN('3'
  把其他类型转换为数字类型发生的情况:1)isNaN检测的时候:
 
  当检测的值不是数字类型,浏览器会自己调用Number方法先把它转换为数字,然后再检测是否为非有效数字,例:
 
        isNaN('3')=>false
            ①Number('3') -> 3
            ②isNaN(3)    -> false
        isNaN('3px')=>true
            ①Number('3px') -> NaN
            ②isNaN(NaN)    -> true
  2)基于parseInt/parseFloat/Number手动转化为数字类型3)数学运算 + , - , * , / , %4)在基于 == 比较的时候,有时候也会把其他值转换为数字类型转换规律把字符串转数字
 
  只要遇到一个非有效数字字符,结果就是NaN
 
      ''   => 0,
      ' '  => 0,
      '\n' => 0,
      '\t' => 0,
      '1'  => 1,
      '1a' => Nan
  把布尔转换为数字
 
        0 => false
        1 => true
  把null、undefined转换为数字
 
        null      => 0
        undefined => NaN
  把引用类型转换为数字
 
  首先转换为字符串(toString)然后再转换为数字(Number)
  把其他类型转换为字符串发生的情况1)基于alert/confirm/prompt/document.write等方法输出内容的时候,会把输出的值转换为字符串,然后再输出
 
    alert(1) => '1'
  2)基于 '+' 进行字符串拼接的时候
 
    "hello" + true => "hellotrue"
  3)把引用值转换为数字的时候,首先会转换为字符串,然后再转换为数字
 
    var obj = {};
    console.log(obj + 1) => "[object Object]1"
  4)给对象设置属性,如果属性名不是字符串,首先转换为字符串,然后再当作属性存储到对象中5)手动调用toString/toFixed/join/String等方法的时候
 
    var n = Math.PI
    n.toFixed(2) =>'3.14'
    var arr = [1,2,3]
    arr.join('+')=>'1+2+3'
  转换规律
 
  除了对象,其他数据类型都是常规转换 无论对象是什么样,toString的结果都是**[object Object]**
 
  把其他值转换为布尔类型发生的情况基于! / !! / Boolean等方法的转换条件判断中的条件最终都会转换为布尔类型转换规律
 
      Boolean('');        => false
      Boolean(0);         => false
      Boolean(null);      => false
      Boolean(undefined); => false
      Boolean(NaN);       => false
  其余全部都为true
 
  特殊情况:数学运算和字符串拼接'+'1、当表达式中出现字符串,就是字符串拼接,否则就是数学运算
 
    1 + true => 2
    '1' + true => '1true'
  2、引用类型转换为数字,首先会转换为字符串,最后变成字符串拼接
 
    [12] + 10 => '1210'
    ({}) + 10 => "[object Object]10"
  3、{}块级作用域 接 数学预算
 
    {} + 10 => 10
    [] + 10 => '10'
  "=="比较
 
  "=="在进行比较的时候,如果左右两边的数据类型不一样,则先转换为相同的数据类型,再进行比较
 
  "对象==对象"
 
  地址空间相等则范围true
 
  "对象==数字"
 
  把对象转换为数字Mssq类型转换函数,然后再进行比较
 
  "对象==布尔"
 
  把对象和布尔都转换为数字,再进行比较
 
  "对象==字符串"
 
  把对象和字符串都转换为数字
 
  "字符串==数字"
 
  字符串转换为数字
 
  "字符串==bool"
 
  都转换为数字
 
  "bool==数字"
 
  bool转换为数字
 
      null==undefined =>true
      null===undefined=>false
      null、undefined和其他值都不相等
      NaN==NaN =>false
      [] == false : true
      ![] == false: true
      [] == true  : false
      ![] == true : false
 

(编辑:应用网_常德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!