toLocaleString() toString() valueOf()三种方法在数组上的区别运用

    xiaoxiao2025-07-13  5

    题外话:为了确定某个对象是不是数组的问题。对于一个网页,或者一个全局作用域而言,使用instanceof操作符就能得到满意的结果:

    if(value instanceof Array){ }

    然而问题是instanceof操作符它假定只有一个全局执行环境。如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数。如果你从一个框架向另一个框架传入一个数组,那么传入的数组与在第二个框架中原生创建的数组分别具有各自不同的构造函数。为了解决这个问题,可以用Array.isArray()方法。这个方法的目的是最终确定某个值到底是不是数组。

    转换方法:

    如前所诉,所有对象都具有toLocaleString() toString() valueOf()方法,其中,调用数组的toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。而调用valueOf()返回的还是数组。实际上,为了创建这个字符串会调用数组每一项的toString()方法。

    var colors=["red","blue","green"];

    alert(colors.toString());     //red,blue,green

    alert(colors.valueOf());     //red,blue,green

    alert(colors);              //red,blue,green

    由于alert()要接收字符串参数,所以他会在后台调用toString()方法,由此会得到与直接调用toString()方法相同的结果。另外,toLocaleString()方法经常也会返回与valueOf()和toString()方法相同的值,但也不总是如此,当调用数组的toLocaleString()方法是,它也会创建一个数组值的以逗号分隔的字符串

    转载请注明原文地址: https://ju.6miu.com/read-1300637.html
    最新回复(0)