• javascript 隐式转换


            学习是一个枯燥无味的过程,有时候我们需要知道一些属性或者用法。但是那完全是不够的。当你还是个孩子的时候,也许你的衣服鞋子足够你穿,随着你年龄的增长,身高、体重增加。这时候你就会告诉妈妈,给我买新衣服。其实我们码农也是这样子的,当你在代码的世界里奋斗了几年,你就会发现自己真的缺少几套新衣服。而我们只能自己努力去找寻这些衣服。

    一、运算符的隐式转换

       首先我们来看一个例子

    var a=12,b="4",c=true,d=[];
    //先看看+运算符操作
    console.log(a+b);//124
    console.log(b+a);//412
    console.log(c+a);//13
    console.log(d+a);//12
    //再看看-号运算符操作
    console.log(a-b);//8
    console.log(b-a);//-8
    console.log(b-c);//3
    console.log(b-d);//4
    //再看看/运算符操作
    console.log(a/b);//3
    console.log(b/a);//0.3333333333333333
    console.log(b/c);//4
    console.log(b/d);//Infinity
    //再看看*运算符操作
    console.log(a*b);//48
    console.log(a*c);//12
    console.log(a*d);//0
    //再看看%求余操作
    console.log(a%b);//0

    通过上边的例子可以总结为:

      1.+两边类型不同的时候,数值+[],与布尔值会隐式转换。

      2.遇到数值+字符串的时候直接字符串拼接。

      3.遇到都是数值的时候计算结果。

    二、if语句的隐式转换

      除了undefined ,null,false,"",+0,-0,NaN;之外。if("0"){}其他值都是正值

    if("0") {
        console.log("0");
    }
    
    if("undefined") {
          console.log("undefined");
    }
    if("null") {
       console.log("null");
    }
    
    if("NaN") {
         console.log("NaN");
    }

    在这里一定要告诉小伙伴们(前端与后台)不要定义这样的数据,以至于你判断失误。

    三、函数参数的隐式转换

    
    

      function fn(a){
        console.log(a+"123")
      }
      fn(01);

    //结果是多少呢???

    相信大家肯定会出错,不信你猜猜看??结果是1123;

    再举个例子

    function fn(a){
        console.log(a+"123")
    }
    fn(010);
    //结果多少呢???

    相信大家肯定会觉得是10123。其实答案是8123;

    四、对象的隐式转换

    看个例子

    3*{valueOf:function(){
        return 2;
    },toString:function(){
        return "4";
    }}
    //结果多少呢?

    答案是6。如果没valueOf方法答案是12。如果valueOf与toString都没有则返回NaN

    总结:

        javascript中的隐式转换还是需要大家时刻注意的,稍微不注意就会出现一些问题。之前我用if做类型判断的时候都出现过类似问题,当时还是懵懂少年,没有去深入追究。希望这篇文章对大家有所帮助。

  • 相关阅读:
    selenium学习笔记——上传文件
    selenium学习笔记——利用cookie信息直接登录
    Java中的switch分支注意点
    Java中的包
    11月14日用ajax、PHP、session做购物车
    各种进位制转换
    11月13日上午ajax返回数据类型为JSON数据的处理
    11月13日上午省、市、区(县)三级联动
    11月10日下午 ajax做显示信息以后用ajax、Bootstrp做弹窗显示信息详情
    11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库
  • 原文地址:https://www.cnblogs.com/xiaoxiaokun/p/7222469.html
Copyright © 2020-2023  润新知