CodeGym /课程 /Frontend SELF ZH /JavaScript中的类型转换

JavaScript中的类型转换

Frontend SELF ZH
第 35 级 , 课程 0
可用

1.1 显式类型转换

在JavaScript中,类型转换是将一个数据类型的值转换为另一个数据类型的过程。转换有两种类型:显式(手动)和隐式(自动)。理解这些过程对于预防错误和创建可预测的代码很重要。

显式转换,也称为手动转换,是使用JavaScript内建的函数和方法进行的转换。在这种转换中,程序员明确指定要将一种数据类型转换为另一种类型。

显式转换的主要方法:

1. 转换为字符串

  • 方法 String(value): 将值转换为字符串
JavaScript
    
      let num = 123;
      let str = String(num);
      console.log(typeof str); // "string"
    
  

  • value.toString(): 对象的方法,将值转换为字符串
JavaScript
    
      let bool = true;
      let str = bool.toString();
      console.log(typeof str); // "string"
    
  

2. 转换为数字

  • Number(value): 将值转换为数字
JavaScript
    
      let str = "456";
      let num = Number(str);
      console.log(typeof num); // "number"
    
  

  • parseInt(value, base): 将字符串转换为整数。参数base指示进制
JavaScript
    
      let str = "123";
      let num = parseInt(str, 10);
      console.log(typeof num); // "number"
    
  

  • parseFloat(value): 将字符串转换为浮点数
JavaScript
    
      let str = "123.45";
      let num = parseFloat(str);
      console.log(typeof num); // "number"
    
  

3. 转换为布尔值

  • Boolean(value): 将值转换为布尔值
JavaScript
    
      let str = "";
      let bool = Boolean(str);
      console.log(typeof bool); // "boolean"
    
  

1.2 隐式类型转换

隐式转换,也称为自动或隐式转换,是JavaScript在对不同类型的数据进行操作时自动执行的。隐式转换可能导致意外结果,因此需要理解并谨慎使用。

1. 转换为字符串

重要!

在将任何对象与字符串相加时,JavaScript会尝试将其转换为字符串。

例子:

JavaScript
    
      let result = "The number is " + 123;
      console.log(result); // "The number is 123"
    
  

2. 转换为数字

重要!

当使用任何算术运算符(不包括+)与包含数字的字符串时。

JavaScript
    
      let result = "123" - 0;
      console.log(result); // 123 (数字)
    
  

这在实践中的效果:

JavaScript
    
      let result = "123" - 10;
      console.log(result); // 113 (数字)

      let result2 = "123" + 10;
      console.log(result2); // 12310 (字符串)
    
  

3. 转换为布尔值

在逻辑上下文中使用值(条件运算符、循环等)。

JavaScript
    
      let value = "hello";

      if (value) {
        console.log("Value is truthy");   // 输出: "Value is truthy"
      }
    
  

在逻辑上下文中的转换示例:

  • false, 0, "" (空字符串), null, undefined, 和 NaN 被认为是假的(false)值
  • 其他所有值都被认为是真的(true
JavaScript
    
      if ("") {
        console.log("This won't be logged.");
      } else {
        console.log('"" is considered false in a boolean context.');
      }

      // '"" is considered false in a boolean context.'
    
  

1.3 隐式转换的例子

带有算术运算的例子:

JavaScript
    
      let width = "100";
      let height = "200";

      let area = Number(width) * Number(height); // 显式转换
      console.log(area); // 20000

      let perimeter = (+width) + (+height); // 使用一元加号进行显式转换
      console.log(perimeter); // 300
    
  

逻辑上下文的例子:

JavaScript
    
      let userInput = ""; // 空字符串

      if (!userInput) {
        console.log("用户未输入数据。"); // 隐式地将字符串转换为布尔值
      }
    
  

组合类型的例子:

JavaScript
    
      let value = "10";
      let increment = 5;

      let result = value + increment; // 隐式地将数字转换为字符串
      console.log(result); // "105"

      result = Number(value) + increment; // 显式地将字符串转换为数字
      console.log(result); // 15
    
  
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION