• toString()


    原文地址

    toString() 方法可把 Date数据对象转换为字符串,并返回结果

    可知js这中的Date类型存在六种:分为undefined;null;Boolean;number;String和object型。在这六种中,undefined和null两种没有.toString(),如果写了会报错。

    Boolean:会根据其var变量内容返回true or flase两种。
    示例:var num1=false;document.write(num1.toString()+"</br>");
    结果:flase;

    number:.toString()括号内可以带有一个参数(2~36【0到9和26个英文字母】),表示数值所转化的进制,默认为10进制。
    示例:

    var num2=18;
    document.write("数值为:"+num2+"</br>");
    document.write("二进制:"+num2.toString(2)+"</br>");
    document.write("八进制:"+num2.toString(8)+"</br>");
    document.write("十进制:"+num2.toString()+"</br>");
    document.write("十六进制:"+num2.toString(16)+"</br>");

    结果:
    数值为:18
    二进制:10010
    八进制:22
    十进制:18
    十六进制:12

    String就不用说了。。。。

    object:首先得说明object数据类型本身具有内置的.toString(),如果直接的object.toString(),都会得到个相同的结果-----[object Object] 。
    示例:

    function Dog(name,sex,color){
        this.name=name;
        this.sex=sex;
        this.color=color;
    }
     
    var dog=new Dog("jack","female","black");
    document.write( dog.toString());

    所以我们可以利用prototype属性(翻译:原型),改变其内置自带的.toString()方法。
    示例:

    function Dog(name,sex,color){
        this.name=name;
        this.sex=sex;
        this.color=color;
    }
    Dog.prototype.toString=function dogtoString(){
        var ret="This is a named "+this.name+" "+this.color+" "+this.sex+" dog";
        return ret;
    }
    var dog=new Dog("jack","female","black");
    document.write(dog.toString());

    结果;
    This is a named jack black female dog

    顺带说一句:prototype属性允许开发者往对象中添加/修改属性和方法
    示例代码:

    function Dog(name,sex,color){
        this.name=name;
        this.sex=sex;
        this.color=color;
    }
    //修改方法
    Dog.prototype.toString=function dogtoString(){
        var ret="This is a named "+this.name+" "+this.color+" "+this.sex+" dog";
        return ret;
    }
    //添加方法
    Dog.prototype.togaga=function gaga(){
        return "The method I added!";
    }
    //添加属性
    Dog.prototype.breed=null;
    var dog=new Dog("jack","female","black");
    dog.breed="breed";
    document.write(dog.breed+"</br>");
    document.write(dog.toString()+"</br>");
    document.write(dog.togaga());

    结果:

    breed
    This is a named jack black female dog
    The method I added!

    当需要判断数据类型的时候可以用 Object.prototype.toString.call(param);
    Object原型上的toString方法;使用call方法可以修改toString方法内部的this指向,将this指向为call里面的第一个参数;

    var bool = true;
    Object.prototype.toString.call(bool);
    "[object Boolean]"
    var str = 'hello world';
    Object.prototype.toString.call(str);
    "[object String]"
    var num = 123;
    Object.prototype.toString.call(num);
    "[object Number]"
    var arr = [1,2,3];
    Object.prototype.toString.call(arr);
    "[object Array]"
    var fn = function(){};
    Object.prototype.toString.call(fn);
    "[object Function]"
    var obj = {a:1};
    Object.prototype.toString.call(obj);
    "[object Object]"
  • 相关阅读:
    IntelliJ Idea和IntelliJ webstrm 常用快捷键
    mybatis基础学习2---(resultType和resultMap的用法和区别)和setting的用法
    使用观察者模式观察线程的生命周期
    观察者设计模式介绍
    java的内存模型及缓存问题
    一个解释volatile关键字作用的最好的例子
    多线程的waitset详细介绍
    浅谈单例模式
    SimpleThreadPool给线程池增加自动扩充线程数量,以及闲时自动回收的功能
    SimpleThreadPool给线程池增加拒绝策略和停止方法
  • 原文地址:https://www.cnblogs.com/web-record/p/11612579.html
Copyright © 2020-2023  润新知