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,因为它的对象。

       

  • 相关阅读:
    实现div 垂直居中
    CSS 轮廓---outline属性
    CSS 伪类 (Pseudo-classes)
    HTML默认样式和浏览器默认样式
    VHDL之concurrent之block
    VHDL之concurrent之generate
    VHDL之concurrent之when
    VHDL之concurrent之operators
    QS之force(2)
    QS之force(1)
  • 原文地址:https://www.cnblogs.com/ldld/p/5724040.html
Copyright © 2011-2022 走看看