zoukankan      html  css  js  c++  java
  • valueOf和toString曾经欺骗过你吗?

      以前写JS都是简单的表单验证,从来也没有做过其他什么操作。

        有很多人肯定写过这样的代码

       

    1 var number = 10;
    2 alert(number + 10);    // result:20
    3 alert(number + "10"); // result:1010

       我当初看这几段代码的时候,很随意的就过去了啊。很明显的东西啊。数据自动转换。
       没看出有啥不妥的地方。为什么会这样了啊。我也没有了解过。今天我看到这样的一个例子就有点发懵了。

       我们先来自定义一个Demo来看看

    function Demo(value) {
      
                this.valueOf = function () { 
                    alert("调用ValueOf方法");
                    return value;
                }
      
                this.toString = function(){
                    alert("调用toString方法");
                    return "ToString" + this.valueOf();
                } 
    }
    var demo = new Demo(22);<BR>           
    alert(demo + 10);
    document.write(demo);

      如果先要转换成数值类型的时候,他就调用valueOf方法。如果先转换成字符类型的时候,就调用toString方法。
      记住这一点哦。
      不过我也不知道明白了这一点有什么用处。大家可以发表自己的意见。我们一来来学习诡异的JS.

  • 相关阅读:
    记一次坑爹的jconsole使用
    触发Full GC的时机
    java NIO之Selector
    java NIO之SelectedKey
    java泛型中的各种限制
    filebeat安装部署
    Kibana安装及简单使用
    elastucasearch基础理论以及安装
    Salt 与Salt API配置
    RabbitMQ 相关理论部分
  • 原文地址:https://www.cnblogs.com/lidj/p/3171367.html
Copyright © 2011-2022 走看看