数据类型转换的核心方法
发布日期:2021-05-04 20:18:23 浏览次数:51 分类:技术文章

本文共 1119 字,大约阅读时间需要 3 分钟。

数据类型转换的核心方法

1、把其他数据类型转换为Number类型

  1. 特定需要转换为Number的(手动转换)
    • Number([val]) :

      • 只要出现非有效数字字符,结果都是NaN 在这里插入图片描述
      • 对象变为数字,应该先valueOf,没有原始值在toString变为字符串,最后把字符串转为数字。
    • parseInt/parseFloat([val])

      机制:从字符串左侧第一个字符,开始查找有效字符,遇到非有效数字字符停止查找,不论后面是否还有数字字符,都不再找了,把找到的有效数字字符转为数字,如果一个都没有找到,结果就是NaN(parseFloat比他多识别一个小数点)。

  2. 隐式转换
    • isNaN([val])
    • 数学运算:+ 、-、*、/ 、%(特殊情况:+在出现
    • 字符串的情况下不是数学运算,而是字符串拼接)
    • 在 == 比较的时候,有些值需要转换为数字再进行比较

2、把其他类型转换为字符串

  1. 特定需要转换为String的(手动转换)
    • toString()
    • String()
  2. 隐式转换(一般都是调用其toString)
    • 加号运算的时候,如果某一边出现字符串,则是字符串拼接
    • 把对象转为数字,需要先toString()转为字符串,再去转换为数字
    • 基于alert / confirm / prompt / document.write…这些方式输出的,都是把内容转换为字符串然后在输出的
    • 3.把其他类型值转换为字符串,一般都是“直接包起来”,只有{}普通对象调取toString的调取的Object.prototype.toString,不是转为字符串,而是检测数据类型,返回的结果是"[object Object]"

3、把其他类型转换为布尔

  1. 基于以下方式可以把其他数据类型转换为布尔
    • !:转换为布尔值后取反
    • !!:转换为布尔类型
    • Boolean([val])
  2. 隐式转换
    • 在循环或者条件判断中,条件处理的结果就是布尔类型
  3. 规则:只有“ 0 、NaN、空字符串、null ,undefined”五个值会变为布尔类型的FALSE,其余都是TRUE
  4. 在==比较的过程中,数据转换的规则
    • 类型一样的几个特点
      {}=={}; => false 、 [] ==[] ;//=> false、NaN == NaN; //=> false 对象比较的是堆内存的地址
    • 类型不一样的转换规则
    1. null == undefined ; //=>true,但是换成 ===结果是false(因为类型不一致),剩下null和undefined和其他任何类型值都不相等
    2. 字符串 == 对象,要把对象转换为字符串
    3. 剩下如果 ==两边数据类型不一致,都是需要转换为数字在进行比较
上一篇:JQuer.HoverDir的基本使用方法:解决modernizr报错问题
下一篇:JS中的常用继承方式总结

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年03月14日 11时06分11秒