• js toString()和 valueof()


    toString()

    false.toString()//"false"

    typeof false.toString();//"string"

    数值情况下的tostring()

    Number.toString();//"function Number() { [native code] }"
    1、正浮点数及NaN、Infinity加引号返回
    1.23.toString();//'1.23' NaN.toString();//'NaN' Infinity.toString();//'Infinity'
    typeof NaN.toString()//string
    NaN == typeof NaN.toString()//false

    2、负浮点数或加'+'号的正浮点数直接跟上.toString(),相当于先运行toString()方法,再添加正负号,转换为数字

    typeof +1.23.toString();//"number"

    typeof 1.23.toString();//"string"

    3、整数直接跟上.toString()形式,会报错,提示无效标记,因为整数后的点会被识别为小数点,未解决这一类问题  使用括号将整数括起来

    对象情况下的tostring()

    {}.toString();//报错,Unexpected token .
    ({}).toString();//[object Object]

    typeof ({}).toString();//"string"
    ({a:123}).toString();//[object Object]
    Object.toString();//"function Object() { [native code] }"

    类型识别
    console.log(Object.prototype.toString.call("jerry"));//[object String]
    console.log(Object.prototype.toString.call(12));//[object Number]
    console.log(Object.prototype.toString.call(true));//[object Boolean]
    console.log(Object.prototype.toString.call(undefined));//[object Undefined]
    console.log(Object.prototype.toString.call(null));//[object Null]
    console.log(Object.prototype.toString.call({name: "jerry"}));//[object Object]
    
    console.log(Object.prototype.toString.call(function(){}));//[object Function]
    console.log(Object.prototype.toString.call([]));//[object Array]
    console.log(Object.prototype.toString.call(new Date));//[object Date]
    console.log(Object.prototype.toString.call(/d/));//[object RegExp]

     valueof()

    undefined和null没有valueof() 方法

    布尔型数据true和false返回原值。布尔型数据的包装对象返回true或false

    true.valueOf();//true
    typeof true.valueOf();//'boolean'
    false.valueOf();//false
    typeof false.valueOf();//'boolean'
    Boolean.valueOf();//Boolean() { [native code] }
    typeof Boolean.valueOf();//'function'
    字符串类型原值返回。字符串类型的包装对象返回字符串值
    '1'.valueOf();//'1'
    ''.valueOf();//''
    'abc'.valueOf();//'abc'
    String.valueOf();//String() { [native code] }
    typeof String.valueOf();//'function'
    数值情况下的valueof()
    1.整数直接跟.valueOf()形式,会报错,提示无效标记,因为整数后的点被识别为小数点,所以尽量加括号
      -0的valueOf()值是-0,而-0的toString()值是'0'
    2、浮点数原值返回
    1.23.valueOf();//1.23

    +1.23.valueOf();//1.23
    -1.23.valueOf();//-1.23
    NaN.valueOf();//NaN
    Infinity.valueOf();//Infinity
    -Infinity.valueOf();//-Infinity

    typeof -1.23.valueOf()//"number"
    对象情况下的valueof()
    {}.valueOf();//报错,Unexpected token .
    ({}).valueOf();//Object{}
    typeof ({}).valueOf();//'object'
    ({a:123}).valueOf();//Object{a:123}
    Object.valueOf();//Object() { [native code] }
    typeof Object.valueOf();//'function'


  • 相关阅读:
    根据字典中值得大小,对字典中的项排序
    统计序列中元素出现的频度
    为元组中的每个元素命名,提高程序可读性
    CentOS7 zabbix服务 简单安装文档
    使用脚本打印杨辉三角
    python 内置函数
    图片爬取实战一
    logstash的各个场景应用(配置文件均已实践过)
    kettle添加hadoop cluster时报错Caused by: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: hadoop:password@node56:9000
    Jenkins+maven+Tomcat+SVN一键自动打包部署应用到服务器
  • 原文地址:https://www.cnblogs.com/theworldofbeisong/p/9027994.html
Copyright © 2020-2023  润新知