zoukankan      html  css  js  c++  java
  • JS------数据类型转换

    参考学习:https://blog.csdn.net/just_do_it2009/article/details/71079784 这篇文章太赞!
    JS 数据类型转换 方法主要有三种

    1.转换函数、
    2.强制类型转换
    3.利用js变量弱类型转换。

    js的自动装箱(临时创建一个包装对象)
    两个与类型转换有关的函数:valueOf()和toString()
    valueOf()的意义是,返回这个对象逻辑上对应的原始类型的值。
    toString()的意义是,返回这个对象的字符串表示。用一个字符串来描述这个对象的内容。
    js内部用于实现类型转换的4个函数
    这4个方法实际上是ECMAScript定义的4个抽象的操作,它们在js内部使用,进行类型转换。我们js的使用者不能直接调用这些函数,但是了解这些函数有利于我们理解js类型转换的原理。

    ToPrimitive ( input [ , PreferredType ] )
    ToBoolean ( argument )
    ToNumber ( argument )
    ToString ( argument ) 
    

    类型转换分为显式类型转换(强制转换)和隐式类型转换(自动类型转换)

    []+[]
    //  ""
    // 提示:ToPrimitive([])返回空字符串
     
    [] + {}
    //  "[object Object]"
    //  提示:ToPrimitive({})返回"[object Object]"
     
    123 + { toString: function () { return "def" } }
    //  "123def"
    //  提示:ToPrimitive(加号右边的对象)返回"def"
     
    {} + []
    //  0
    // 结果不符合我们的预期:"[object Object]"
    // 提示:在Chrome中,符号左边的{}被解释成了一个语句块,而不是一个对象
    // 注意在别的执行引擎上可能会将{}解释成对象
    //  这一行等价于'+[]'
    // '+anyValue'等价于Number(anyValue)
     
    ({}) + []
    //  "[object Object]"
    // 加上括号以后,{}被解释成了一个对象,结果符合我们的预期了
    

    四则运算符
    它有以下几个特点:

    运算中其中一方为字符串,那么就会把另一方也转换为字符串
    如果一方不是字符串或者数字,那么会将它转换为数字或者字符串
    那么对于除了加法的运算符来说,只要其中一方是数字,那么另一方就会被转为数字
    

    比较运算符

    如果是对象,就通过 toPrimitive 转换对象
    如果是字符串,就通过 unicode 字符索引来比较
    
  • 相关阅读:
    网易严选的wkwebview测试之路
    【工程实践】服务器数据解析
    从加班论客户端开发中的建模
    UVaLive 6802 Turtle Graphics (水题,模拟)
    UVaLive 6694 Toy Boxes (二分+想法)
    UVaLive 6693 Flow Game (计算几何,线段相交)
    UVaLive 6698 Sightseeing Bus Drivers (水题,贪心)
    UVaLive 6697 Homework Evaluation (DP)
    UVALive 6692 Lucky Number (思路 + 枚举)
    CodeForces 710E Generate a String (DP)
  • 原文地址:https://www.cnblogs.com/princeness/p/11664940.html
Copyright © 2011-2022 走看看