zoukankan      html  css  js  c++  java
  • javascript类型转换

    转换后的类型
    字符串 数字 布尔值 对象
    undefined “undefined” NaN false throws Typerror
    null “null” 0 false throws Typerror
    true "true" 1   new Boolean(true)
    false "false" 0   new Boolean(false)
    ""(空字符串) "" 0 false new String("")
    "3.4"   3.4 true new String("3.4")
    "one"   NaN true new String("one")
    0 "0"   false new Number(0)
    -0     "0"   false new Number(0)
    NaN "NaN"   false new Number(NaN)
    1 "1"   true new Number(1)
    Infinity "Infinity"   true new Number(Infinity)
    {} 参考1 参考3    
    [] "" 0 true  
    [8] "8" 8 true  
    ["a"] "a" NaN true  
    function(){} 参考2   true  
             

    根据如上表格,我们可以清晰的看到一个类型转换到另一个类型后的值。

    其中:

    参考1:对象转换成字符串后的值为"[object Object]"。

        控制台输入:1+{}//返回"1[object Object]"

        控制台输入:""+{}//返回"[object Object]"

       你可以理解为转转成字符串的时候调用了对象的toString()方法。

       如果该对象没有toString()方法,那就调valueOf()。

       如果连valueOf()方法都没有,则抛出类型错误异常。

    参考2:function a(){},转成字符串的时候,返回这个字符串的定义方式.

           "function a(){}",

    参考3:对象转化成数字

         先判断该对象是否有valueOf()方法,有就返回这个方法得到的原始值,再将原始值转化成数字。

       如果没有valueOf(),则调用toString()得到的原始值,再将原始值转化成数字。

       如果连toString()方法都没有,则抛出类型错误异常。

    根据上表,同样可以得出:

    1.所以对象转换成原始的布尔值的时候,都是true,

      New Boolean(false) 也是返回true,因为它的对象。

       

  • 相关阅读:
    Impala 加载Hive的UDF
    在编译器中调试spark程序处理
    转:Kafka 客户端TimeoutException问题之坑
    Apache Kafka系列(五) Kafka Connect及FileConnector示例
    Apache Kafka系列(四) 多线程Consumer方案
    Apache Kafka系列(三) Java API使用
    Apache Kafka系列(二) 命令行工具(CLI)
    ajax异步刷新
    Mybaties下的分页功能的实现
    读取配置文件的方法
  • 原文地址:https://www.cnblogs.com/ldld/p/5724040.html
Copyright © 2011-2022 走看看