类型转换

701 字
4 分钟
类型转换
  • 类型转换就是指将其他的数据类型,转换为String Number 或 Boolean

转换为String#

  • 方式一(强制类型转换):

    • 调用被转换数据的toString()方法
    • 例子: var a = 123; a = a.toString();
    • 注意:这个方法不适用于null和undefined 由于这两个类型的数据中没有方法,所以调用toString()时会报错
  • 方式二(强制类型转换):

    • 调用String()函数
    • 例子: var a = 123; a = String(a);
    • 原理:对于Number Boolean String都会调用他们的toString()方法来将其转换为字符串,
      • 对于null值,直接转换为字符串”null”。
      • 对于undefined,直接转换为字符串”undefined”
  • 方式三(隐式的类型转换):

    • 为任意的数据类型 +""
    • 例子: var a = true; a = a + "";
    • 原理:和String()函数一样

转换为Number#

  • 方式一(强制类型转换):

    • 调用Number()函数
    • 例子: var s = “123”; s = Number(s);
    • 转换的情况: 1.字符串 —> 数字 如果字符串是一个合法的数字,则直接转换为对应的数字 如果字符串是一个非法的数字,则转换为NaN 如果是一个空串或纯空格的字符串,则转换为0 2.布尔值 —> 数字 true 转换为 1 false 转换为 0 3.空值 null —> 数字 null 转换为 0 4.未定义 undefind—> 数字 undefined 转换为 NaN
  • 方式二(强制类型转换):

    • 调用parseInt()或parseFloat(),这两个函数专门用来将一个字符串转换为数字

    • parseInt()

      • 可以将一个字符串中的有效的整数位提取出来,并转换为Number
      • 例子: var a = “123.456px”; a = parseInt(a); //123
      • 如果需要可以在parseInt()中指定一个第二个参数,来指定进制 var a = 0xff; a = parseInt(a, 10);//255 将16进制a转换为10进制
    • parseFloat()

      • 可以将一个字符串中的有效的小数位提取出来,并转换为Number

      • 例子: var a = “123.456px”; a = parseFloat(a); //123.456 注:对非String类型的变量使用parseInt()或parseFloat()方法,会先将变量转换为String类型,然后才转换为number类型

        var a = true;
        a = parseInt(a); //NaN
  • 方式三(隐式的类型转换):

    • 使用一元的+来进行隐式的类型转换

    • 例子: var a = “123”; a = +a;

    • 原理:和Number()函数一样

转换为布尔值#

  • 方式一(强制类型转换):

    • 使用Boolean()函数
    • 例子: var s = “false”; s = Boolean(s); //true
    • 转换的情况
      • 字符串 —> 布尔 除了空串其余全是true

      • 数值 —> 布尔 除了0和NaN其余的全是true

      • 对象 ---> 布尔 都是true

      • null、undefined ---> 布尔 都是false

  • 方式二(隐式类型转换):

    • 为任意的数据类型做两次非运算,即可将其转换为布尔值
    • 例子: var a = “hello”; a = !!a; //true

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

类型转换
https://sukksa.github.io/posts/lei-xing-zhuan-huan/
作者
Sukksa
发布于
2021-04-28
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Sukksa
记录前端学习与日常
公告
博客刚刚上线,内容还在慢慢补齐。欢迎随便逛逛~
分类
标签
最新动态
站点统计
文章
69
分类
16
标签
17
总字数
178,517
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录