显式转换与隐式转换

Posted ouruixi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了显式转换与隐式转换相关的知识,希望对你有一定的参考价值。

显示转换


1.题目:请输入今年的年龄,求5年后多大?

     //a.prompt接收到的数据是string类型的。
     var age = prompt("请输入你今年的年龄");
     alert(typeof age);
     var age5 = age + 5;  // 这里只会拼接成了15,而不是加5
     alert("我今年"+age+"岁了,5年后我"+age5+"岁了");

2.字符串要转换成number类型。

 针对上述问题,需要将age转换为数字型

2.1 可以使用Number(需要转化的内容);

     var str = true;
     var num = Number(str);
     console.log(num); //1 
     console.log(typeof  num); //number
        //    注意:
        //   1.如果这个转换的字符串本身就是一个数字,那么可以转换成功; 如果这个字符串本身不是一个数字,那么转成NaN.
        //   2.如果这个字符串本身是一个数字,前后有空格,也是会转换成功的; 如果中间有空格,就转成NaN.
        //   3.如果是一个"",或者是"  ",或者是flase,那么会转换成0.true转成1,undefined转成NaN
        //   4.如果字符串的本身是一个小数,也是可以转换成功的。

2.2 可以使用parseInt(需要转化的内容);

     var str = "123";
     var num = parseInt(str);
     console.log(num); //123
     console.log(typeof  num); //number
     //   注意:
     //   1.从左往右查找,直到遇到第一个非数字为止,前面的所有的内容转换成数字。
     //   2.如果找完了,都没有找到一个数字,那么就转换成NaN.
     //   3.""  和 "   " 转化成NaN
     //   4.如果字符串里面是小数,那么转换后只能得到他的整数部分。

2.3 可以使用parseFloat(需要转化的内容);

     var str = "123.24ll";
     var num = parseFloat(str);
     console.log(num); //123.24
     console.log(typeof  num); //number
     // 注意:如果字符串里面是小数,那么转换后还是小数。。
     //******注意: true会转成1,false会转换0.
     // 如果字符串转数字,一般的使用parseInt或者parseFolat。
     // 如果是其他类型,比如布尔类型,使用Number();

3. 其他类型数据 转换成字符串类型。

3.1 可以使用 String(需要转化的内容);

    var num = 123;
    var str = String(num);
    console.log(str); //"123"
    console.log(typeof str); //string
    //注意: "123"   "true"  "false"  "undefined"   "null"  "NaN"

3.2 可以使用 需要转化的内容.toString();

    var num = 123;
    var str = num.toString();
    console.log(str); //"123"
    console.log(typeof str); //string
    //注意: "123"   "true"  "false  "NaN"
    //undefined 和null 不能使用toString。

4.其他的数据类型 转换成 boolean类型。

4.1 可以使用Boolean(需要转化的内容);

     var num = "";
     var res = Boolean(num);
     console.log(res); //false
     console.log(typeof  res); //boolean
     //注意:
     //那些可以转换成布尔类型的false: 0  -0   false  ""  undefined  null  NaN
     //"  "会转换成true

隐式转换

1.其他的类型转换成number类型。

1.1 可以在需要转换的内容前面加上正号。 +

    var  str = "123";
    var res = +str;
    console.log(res); //123
    console.log(typeof res); //number

1.2 可以让需要转换的内容做算术运算不能后面用 +

    var  str = "123";
    var res = str * 1;
    console.log(res); //123
    console.log(typeof res); //number
    //注意: 一定要和连接符做一个区分。

2.其他的类型转换成string类型 。 使用连接符 +“”

     var num = 123;
     var str = num + "";
     console.log(str); //"123"
     console.log(typeof  str);//string

3.其他的类型转换成boolean类型 。 使用取反运算符

    var num = undefined;
    var res = !!num;
    console.log(res); //false
    console.log(typeof res);boolean
    // 注意:那些能转成布尔类型的false:0 -0 false  undefiend null  NaN  ""

1.题目:请输入今年的年龄,求5年后多大?
     //a.prompt接收到的数据是string类型的。
     var age = +prompt("请输入你今年的年龄");
     var age5 = age + 5;
     alert("我今年"+age+"岁了,5年后我"+age5+"岁了");

以上是关于显式转换与隐式转换的主要内容,如果未能解决你的问题,请参考以下文章

显示类型与隐式类型

C语言 显式 隐式是啥意思

scala学习笔记-隐式转换与隐式参数(18)

Scala基础:隐式转换与隐式参数

C强制类型转换与隐式转换

这种 Nullable<T> 行为与隐式转换运算符的理由是啥