• JavaScript数据类型转换


    目录

    任务描述

    相关知识

    字符串转整数

    字符串转小数

    数字转字符串

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

    隐式转换

    编程要求

    任务描述

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

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

    相关知识

    字符串转整数

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

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

    字符串转小数

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

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

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

    数字转字符串

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

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

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

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

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

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

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

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

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

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

    1. Boolean(""); // 返回false
    2. Boolean(" "); // 返回true

    隐式转换

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

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

    编程要求

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

    • 完成函数mainJs()

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

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

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

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

    1. function mainJs(args1,args2,args3) {
    2. //请在此处编写代码
    3. /********** Begin **********/
    4. var a=parseInt(args1);
    5. var b=parseInt(args2,16);
    6. var c=parseFloat(args3);
    7. /********** End **********/
    8. return a+b+c;
    9. }

  • 相关阅读:
    反射修改jsessionid实现Session共享
    【HTML期末学生大作业】 制作一个简单HTML保护野生动物老虎网页设计专题(HTML+CSS)
    机器学习西瓜书学习记录-第三章 线性模型
    [SpringBoot] Enum枚举的使用
    Redis常用命令集
    华为HG532系列路由器命令注入漏洞复现 CVE-2017-17215
    Java:为什么2022年Java应用开发很流行?
    Spring -IOC理念
    2023-2028年中国高纯电解铜行业发展模式及市场需求预测报告
    Linux基础内容(12)—— 程序地址空间
  • 原文地址:https://blog.csdn.net/m0_73614626/article/details/140054684