JavaScript数据类型转换

发布于:2024-06-29 ⋅ 阅读:(9) ⋅ 点赞:(0)

目录

任务描述

相关知识

字符串转整数

字符串转小数

数字转字符串

布尔型与其他类型的相互转换

隐式转换

编程要求

任务描述

数据类型转换是开发过程中最常碰到的问题之一。

本关任务:函数mainJs()有三个字符串类型的参数abc,你需要分别把他们转换为整数,整数和小数。

相关知识

字符串转整数

如果你想把一个字符串转换成整数,有两种方式。

  • 使用parseInt()方法,参数为字符串,结果为该字符串转换而来的整数; 转化规则是:如果字符串的首字符不是一个数字,转换失败,返回 NaN ;否则,转换到字符串中第一个不是数字的字符为止,即,遇到字母、小数点下划线等字符立即停止转换。需要注意的是,16 进制的符号0x不会让转换停止。 parseInt()还可以有第二个参数,表示待转换字符串的进制。下面给一些例子:
  • parseInt("12");
    parseInt("12.2");
    parseInt("C",16); // 16表示转换为16进制的值
    parseInt("12a2");
    parseInt("0XC"); // 以上均返回数字12
    parseInt("a12"); // 失败
  • 使用Number()进行强制类型转换; 使用Number()转换一个字符串,这个字符串必须是只含有数字的字符串,即数字的字符串形式。与上面的parseInt()方法对比可知,Number()实现的是更加严格的字符串转换为数字操作。因为对于12a3这种含有字母等非数字字符的字符串,Number()会报错。下面是一些例子。
    Number("12"); // 返回12
    Number("12a2"); //返回 NaN
    Number(""); // 返回0

字符串转小数

与整数相同,字符串转小数也有两种方式parseFloat()Number()

parseFloat()方法只转换到字符串中第一个不是数字的字符为止,当然这个字符不包括第一个小数点。这里有些不好理解,下面用例子解释。

parseFloat("12"); // 返回12
parseFloat("12.2a"); // 返回12.2
parseFloat("12.2.2"); // 返回12.2,第二个小数点会让转换停止
parseFloat(null); // 返回0

数字转字符串

toString()实现一般的数字转字符串,String()则是强制类型转换。

toString()括号内有一个可选的参数,指以几进制的形式转换该字符串,如数字12调用toString(16)得到的结果就是 C ,即12的16进制表示方式。

String()可以转换 null 和 undefined,而toString()不可以。

var myNum = 15;
console.log(myNum.toString()); // 输出"15"
console.log(myNum.toString(16)); // 输出"F"
console.log(String(myNum)); // 输出"15"

布尔型与其他类型的相互转换

布尔型的值只有两个 true 和 false。转换规则:

  • 布尔型转为字符串直接就是字符串 true 或者 false ;
  • 布尔型中的 true 转换为数字 1,布尔型中的 false 转换为数字 0;
  • 数字 0 、 null、 undefined、空字符串转换为布尔型的 false,其他所有都是转换为 true。

下面例子中的Boolean()方法实现其他的类型转布尔型。

var myBool = ture;
myBool.toString(); // 返回"true"
Number(true); // 返回1
Boolean("js"); // 返回true
Boolean(""); // 返回false

注意,上面讲的空字符串是"",而不是空格字符串" ",这两个不同,后者双引号之间有一个英文字符的大小的空位,他们转为布尔型的结果不同:

Boolean(""); // 返回false
Boolean(" "); // 返回true

隐式转换

JavaScript 是一种弱类型语言,不同类型的变量在运算符的作用下会发生类型转换。这个是编译环境下直接进行的,所以叫隐式类型转换。下面是一些转换规则:

  • +运算的两个操作数是数字和字符串,数字会被转换为字符串;
  • +运算的两个操作数是数字和布尔型,布尔型会被转换为数字;
  • +运算的两个操作数是字符串和布尔型,布尔型会被转换为字符串;
  • 减、乘、除、取余运算会把其他类型转换为数字;
  • if 括号中单独的一个变量会被转换为布尔型。

编程要求

本关的编程任务是补全右侧代码片段中 Begin 至 End 中间的代码,具体要求如下:

  • 完成函数mainJs()

  • 把函数三个参数(从左到右)依次转换为整数,整数和小数;

  • 第一个参数既有可能是12这种纯整数的字符串形式,也有可能是12a3这种含有非数字字符的字符串;

  • 第二个参数是16进制数字的字符串形式,如af2

  • 第三个参数是纯小数的字符串形式,如12.2;

function mainJs(args1,args2,args3) {
	//请在此处编写代码
	/********** Begin **********/
    var a=parseInt(args1);
    var b=parseInt(args2,16);
    var c=parseFloat(args3);
    
	/********** End **********/
    return a+b+c;
}


网站公告

今日签到

点亮在社区的每一天
去签到