js基础3-数据类型转换

时间:2021-6-9 作者:qvyue

数据类型转换

JS是一种弱类型语言:变量能保存的数据不限定任何类型

1. 显式数据类型转换

什么是显示类型转换:程序员主动转换(可以理解为使用关键字来转换)
注意:数据类型的转变并不会改变原来变量的值,而是会产生一个新的值
– 增加代码的可读性
– 提升代码的性能
– 保证代码的安全(正确方式运行)

其他类型转换成number类型:需要进行数学算术运算

系统提供了一个内置对象:Number Number(其他类型)

    // 不是所有内容都需要转换:根据要都数据格式进行转换
    // 需要进行数学算术运算:其他类型要转成数字
    // 系统提供了一个内置对象:Number  Number(其他类型)
    let num = 1;
    let str = '1';          // 数字型字符串
    let bl = true;
    let un;
    let nu = null;
    console.log(Number(str));       // 数字型可以正确转数字
    console.log(Number('abc'));     // NaN
    console.log(Number('12a'));     // NaN
    console.log(Number(''));        // 0
    // Number()只能将数字型字符串转成数字:其他都是NaN(空字符串可以转0)
    console.log(Number(bl));        // 1
    console.log(Number(false));     // 0
    // Number()将布尔转数字:true变成1,false变成0
    console.log(Number(un));        // NaN
    console.log(Number(nu));        // 0
    // 空对象null是可以转成0的,undefined转成NaN
其他类型转成字符串:需要进行字符串连接

系统提供了一个内部对象:String String(其他类型)

    // 其他类型转字符串非常简单:所见即所得,只加了引号
    console.log(String(num));  // '1'
    console.log(String(bl));   // 'true'
    console.log(String(un));   // 'undefined'
    console.log(String(nu));   // 'null'
    console.log(String(''));
其他类型转成布尔类型:需要判定数据是否满足条件

系统提供了一个内部对象:Boolean Boolean(其他类型)

    // 布尔类型:只要记住转false的几种:其他全是true
    console.log(Boolean(0));        // false
    console.log(Boolean(-0));       // false
    console.log(Boolean(''));       // false
    // console.log(Boolean('0'));      // true
    console.log(Boolean(undefined));    // false
    console.log(Boolean(null));         // false
    console.log(Boolean(NaN));          // false
    // console.log(Boolean(Infinity));  // true
    console.log(Boolean(-NaN));         // false
2. 隐式数据类型转换

运算符两边数据类型不一致,编译器自动帮我们转换一致在计算,这是js的语法特点
自动转换的规则就是三个:Number() String() Boolean()

  • 什么情况下会进行自动转换呢?
    • 转数字
    /*
        算术运算符:+ - * / %
        有数字参与的比较:8种运算符
        +:放在内容前面(强转数字)
    */
    console.log(1 - '1');    // 0
    console.log(2 > true);   // true: 2 > 1
    let age = +prompt('请输入年龄');
    console.log(age);
  • 转字符串
    // +:且有一个数据是字符串
    console.log(1 + '1');     // 11
  • 转布尔
    // !:逻辑非
    console.log(!1);       // false
    // 1. 将1转成布尔:true
    // 2. 进行取反
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。