• 数据类型转换


    JS 数据类型转换 方法主要有三种

    转换函数、强制类型转换、利用js变量弱类型转换。

    1.转换函数:

    js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

    • parseInt()

      parseInt 从左向右一位一位去查看,如果遇到一位是非数字的,结束执行,把这位之前的数字返回

      例如

    var nub = "a100px";
    nub = parseInt(nub);
    console.log(nub,typeof nub);
    //其中parseInt(要转换的数字,传进来的数字的进制);
    //parseInt也常被用来取整
    • parseFloat  转换成小数(转换为浮点数)

      从左向右一位一位的匹配,直到遇到一个非数字(可以匹配一个小数点)就返回这位前边的数字

      例如

    var nub = "12.234.34";
    nub = parseFloat(nub);
    console.log(nub);    

    2. 强制类型转换

      或者显示类型转换

    • Nubmer (要转换的数字)

      从左向右看完所有的字符,如果完全符合数字的规则就转换,如果不符合数字的规则就返回NaN

      例如

    var nub = "12.234";
    nub = Number(nub);
    console.log(nub);    
    <script type="text/javascript">
    var nub = false; // true = 1, false = 0;var nub; //NaNvar nub = null; //0var nub = document; //NaNvar nub = [10,2];//0
    /*
        空数组 0
        空数组只有一位的时候,会用这位去转换,并且只转换数字和字符串,其他的都是NaN
        数组有多位,只会被转换成NaN
    */
    var nub = function(){}; //NaN
    nub = Number(nub);
    console.log(nub);    
    </script>

    3.隐式类型转换

     浏览器自己进行转换,其他类型转换成数字,主要调去Number

    • number
      • +,+= 
      1. 当加号左右两侧有一位是字符串是,会把另外一侧也转成字符串;
      2. 使用+号时,两边没有字符串时,优先尝试把左右两侧都转换成数字,如果不能转换成数字就转换成字符串进行连接
      • -,*,/,%,-=,*=,/=,%=

      运算符左右两侧转换成数字进行运算    

      例如

    <script type="text/javascript">
    console.log(null + false,0 + function(){});
    var nub = "20px";
    var nub2 = "30px";
    console.log(nub/nub2);
    </script>
    <script type="text/javascript">
    
    // isNaN类型number
      //不等于任何数,也不等于它自己
    
    
    var a = Number("10px");
    var b = Number("10px");
    
    alert( a == b)  //输出 false;

    // isNaN(要检测的内容)如果转化结果是一个数字,就返回 false ,如果不是一个数字 就返回 true,会进行隐式类型转换,转换调用的方法是 number;
    </script>
    • toString 转换成字符串
    <script type="text/javascript">
    var a = 123;
    a = a.toString();
    console.log(a,typeof a);
    var b = ['','2'];
    b = b.toString();
    console.log(b,typeof b);
    </script>
    • 布尔值
    true 非空字符串 非0数字 非空对象 空数组  
    false 空字符串 0 NaN null undefined


     

    • !取反 
    <script type="text/javascript">
    alert(!"21323");
    alert(Boolean(123));    
    </script>
  • 相关阅读:
    LeetCode算法题-Trim a Binary Search Tree(Java实现)
    LeetCode算法题-Non-decreasing Array(Java实现)
    LeetCode算法题-Image Smoother(Java实现)
    Node.js 官方文档中文版
    jade 网上看到一个不错的demo 分享 一下 链接
    jade 的 考古
    标题党 数据抓取与管理
    最近面试 有人问 sqlite 用过么 sqlite 不是 嵌入式的 开发 么 难道最近还 web开发 了?
    嗯 想写个demo 苦于没数据
    客户端 jQuery 跨端口 调用 node 服务端
  • 原文地址:https://www.cnblogs.com/vant850/p/6847832.html
Copyright © 2020-2023  润新知