zoukankan      html  css  js  c++  java
  • 区分javascript中的toString(),toLocaleString(),valueOf()方法

    首先我们随意创建一个对象,这很简单,打开FF浏览器的Firebug切换到控制台或者打开webkit浏览器的审查元素功能.

    输入以下内容:

      

    var obj1=[1,2,3,4,5]
    var obj2=[5,4,3,2,1]
    var obj3=[obj1,obj2]

    接着试试调用obj3的toString(),toLocaleString(),valueOf()方法:

    根据输出结果可以发现toString()和toLocaleString()方法输出的内容是一样的,且都为字符串形式.而valueOf输出的是这个对象本身的值.

    仔细想想,开发javascript的人绝对不会无聊到去创造两个一样的方法吧.

    我们稍微修改一下obj1和obj2,再来一次:

     

    发现了什么?toLocaleString()与toString所访问的内容不太相同:toLocaleString访问的是obj3中每个元素的toLocaleString()方法,toString访问的是obj3中每个元素的toString()方法.

    那么为什么toString()和toLocaleSting()是分开的?很简单,从方法命名上可以知道,toString()方法获取的是String(传统字符串),而toLocaleString()方法获取的是LocaleString(本地环境字符串).

    如果你开发的脚本在世界范围都有人使用,那么将对象转换成字符串时请使用toString()方法来完成.

    因为LocaleString()会根据你机器的本地环境来返回字符串,它和toString()返回的值在不同的本地环境下使用的符号会有微妙的变化.

    所以使用toString()是保险的,返回唯一值的方法,它不会因为本地环境的改变而发生变化.

    如果是为了返回时间类型的数据,推荐使用LocaleString().若是在后台处理字符串,请务必使用toString().

  • 相关阅读:
    Balanced Binary Tree
    Convert Sorted List to Binary Search Tree
    Convert Sorted Array to Binary Search Tree
    Binary Tree Zigzag Level Order Traversal
    Validate Binary Search Tree
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Maximum Depth of Binary Tree
    如何把U盘的两个盘或者多个盘合成一个
    bugku 想蹭网先解开密码
  • 原文地址:https://www.cnblogs.com/nifengs/p/5085824.html
Copyright © 2011-2022 走看看