Javascript变量数据类型的转换

202 阅读2分钟

1.为什么要转换变量的数据类型?

1.JavaScript是弱数据类型: JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。

雷区: 使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算。

 <script>
        //先获取两个变量
        let num1 = prompt('请输入第一个数字')

        let num2 = prompt('请输入第二个数字')

        // 假使输入第一个数字为100, 第二个数字为20

        //将两个变量相加 控制台展示结果

        console.log(num1 + num2); //控制台结果是 10020

        //由于prompt获取来的数据是字符串类型,相加会使两个变量拼接

    </script>

2.隐式转换类型

1.含义

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。

2.规则

1.+ 号两边只要有一个是字符串,都会把另外一个转成字符串型

2.除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型

3.+号作为正号解析可以转换成Number

3.语法书写


    <script>

        //字符串隐式转换   
        //1.运算符 + 号两边变量如果有字符串型,那么两者相加会变成字符串型.
        //2.通常会使用+ '' 来进行隐式转换
        let num1 = 10;
        let num2 = '10';
        num3 = num1 + num2
        console.log(num3 );  // 控制台结果1010
        console.log(typeof num3); //检测类型 string


        //数字隐式转换 
        //1.除了算术+加法不能转换数字类型  其他的-   /   * 可以转换数字型
        //2.在字符串变量前面加+号 会把字符串转换为数字型 这种叫数字隐式转换
        //3.通常会- 0 来进行隐式转换
        let num4 = num3 - 0;
        console.log(num4);
        
        let num3 = '100'
        console.log(+num3);

    </script>

3.显性转换类型

1.含义

编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。

为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。

2.转换数字类型

1.Number(数据)

转成数字类型

如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字

NaN也是number类型的数据,代表非数字

 <script>
     
       let num1 = '111';

        let num2 = Number(num1);

       console.log(num2); //控制台结果number
     
     //如果num1内容是文字的话 控制台会显示Nan
      </script>

2.parseInt(数据)

parseInt函数将其第一个参数转换为一个字符串,对该字符串进行解析,然后返回一个整数或 NaN

如果第一个字符不能转换为数字,parseInt会返回 NaN

 <script>
 //parseInt 也可以转换为数字型  但是会取整如

        let age = '12.5'

        let age2 = parseInt(age)

        console.log(age2);  // 控制台结果 12
        //如果字符串里面内容不是数字可能会转换为NaN
        
        

 </script>

3.parseFloat (数据)

parseFloat() 函数解析一个参数(必要时先转换为字符串)并返回一个浮点数。

 <script>
        //parseFloat 也可以转换为数字型  保留小数点

        let height = '175.5';

        let height2  = parseFloat(height)

        console.log(height2); //175.5
 </script>




3.转换字符串类型

1. String (数据)

String 全局对象是一个用于字符串或一个字符序列的构造函数, 使用 String 函数将其他值生成或转换成字符串

   	 <script>
         
    	let num1 = 123 ;
        let num2 = String(num1); //常用

        console.log(num2); //控制台输出为123 字符串型 string
        
       </script>

2.toString

toString() 方法返回指定 Number 对象的字符串表示形式。

 <script>		
        let age = 123; 

        let age2 = age.toString()

        console.log(typeof age2); //常用
  </script>