三、JS变量与字面量(二)-- 数据类型转换

四、数据类型转换

	
	强制类型转换
		1)将一个数据类型强制转化为其他的数据类型。
		2)类型转换就是指将其他的数据类型转换为
						  String、Number、Boolean
					
					

2.1 转换为String类型

		
	+++ 将任意数据类型转换为String类型:
		
		1) 强制类型转换
		   	    a) String()方法
							1) 适用于任何数据类型(null,undefined 转换后为nullundefined2) 内部原理: 对于Number、Boolean类型数据转换实质上也是调用了toString()方法。
						       		    对于nullundefined不会调用toString(),而是将null直接转换为“null”。将undefiend直接转换为“undefined”
						       		  
				b) toString()方法
							1) nullundefined没有toString()方法,调用报错。
		   
		2) 隐式类型转换												
				利用 x+“” 来实现字符串隐式类型转换							
							1) 内部原理:任意类型的数据与字符串相加,等同于与字符串拼接。
								
								
>>>>>> String(x) 函数

    <script>
           
           var s=12;
           s=String(s);           
           console.log(s);

           var s2=true;
           s2=String(s2);           
           console.log(s2);

           var s3=null;
           s3=String(s3);           
           console.log(s3);

           var s4=undefined;
           s4=String(s4);           
           console.log(s4);

    </script>

在这里插入图片描述

>>>>>> x.toString()方法

   //将Number类型转换为String类型
   var s=12;
   s=s.toString();

   //将Boolean类型转换为String类型
   var s2=true;
   s2=s2.toString();
       
>>>>>> x.toString()方法。null和undefined这两个值没有toString(),调用就会报错
           var s=null;
           s=s.toString();
           

           var s2=undefined;
           s2=s2.toString();
       

在这里插入图片描述

>>>>>> String类型隐式类型转换
           console.log(12+"");
           console.log(true+"");
           console.log(null+"");
           console.log(undefined+"");
           console.log(NaN+"");

在这里插入图片描述

2.2 转换为Number类型

	
	+++ 将任意数据类型转换为Number类型:
		
			+++ 强制类型转换	
					1) Number()函数,适用于任何数据类型
								
									1) 字符串  ---> 数字
										 a) 如果字符串中都是数字,则直接转换为数字。
										 b) 如果字符串中有非数字,则转换为NaN
										 c) 如果字符串是一个空串或是一个很多空格的字符串,则转换为0.
										 
									2) 其他
											Number(true)=1;
											Number(false)=0;
													
											Number(null)=0;	
										    Number(undefined)=0;
	
					
				 2) parseInt(x)函数与parseFloat(x)函数 ,从左到右提取字符串中有效数字。
							
							a)parseInt(x):把一个字符串转换为一个整数。
							  parseFloat(x):把一个字符串转换为一个浮点数。
			  					 		 
			  				b) parseInt(x)、parseFloat(x)可以将一个字符串中从左到右的有效数字提取出来,然后转化为Number。
			  				c) 如果没有有效数字,则返回NaN
			  					  			
		

	
			+++ 隐式类型转换
					
					方式一:利用 【x-0 、 x*1 、 x/1 】来实现Number类型转换
					
								 内部原理:非Number的类型的数据在做运算时,首先会把自己转化为Number在做运算。
								         其底层实际上也是用了Number()函数
								   	
					方式二:利用一元运算符【 +x 】 来实现Number隐式类型转换
								
								 内部原理:同上!!!
								
a)Number强制类型转换
>>>>>> Number(x)
    <script>
        
        var s="123";
        s=Number(s);
        console.log(s)

        var s2="123abc";
        s2=Number(s2);
        console.log(s2)
  
        var s3="";
        s3=Number(s3);
        console.log(s3)
   
        var s4="   ";
        s4=Number(s4);
        console.log(s4)


    </script>

在这里插入图片描述

>>>>>> Number(x),null、undefined转数字
 <script>
        
        var s=null;
        s=Number(s);
        console.log(s)

        var s2=undefined;
        s2=Number(s2);
        console.log(s2)
  

    </script>

在这里插入图片描述

>>>>>> parseInt(x)
   <script>
        
        var s="123";
        s=parseInt(s);
        console.log(s);

        var s2="123abc";
        s2=parseInt(s2);
        console.log(s2);
        
        
        var s3="123abc123";
        s3=parseInt(s3);
        console.log(s3);


        var s4="abc123";
        s4=parseInt(s4);
        console.log(s4);
  

    </script>

在这里插入图片描述

>>>>>> parseFloat(x)
 
    <script>
        
        var s="123.13";
        s=parseFloat(s);
        console.log(s);

        var s2="123.14abc";
        s2=parseFloat(s2);
        console.log(s2);
        
        
        var s3="123.13.14abc123";
        s3=parseFloat(s3);
        console.log(s3);


        var s4="abc123.13";
        s4=parseFloat(s4);
        console.log(s4);
  

    </script>

在这里插入图片描述

b)Number隐式类型转换
>>>>>> 利用减法、乘法、除法隐式转换

        console.log("13"/1);  //13
        console.log(true/1);  //1
        console.log(null/1);  //0
        console.log(undefined/1);  //NaN
        console.log(NaN/1);   //NaN


        console.log("13"-0);  //13
        console.log(true-0);  //1
        console.log(null-0);  //0
        console.log(undefined-0);  //NaN
        console.log(NaN-0);   //NaN


        
        console.log("13"*1);  //13
        console.log(true*1);  //1
        console.log(null*1);  //0
        console.log(undefined*1);  //NaN
        console.log(NaN*1);   //NaN

>>>>>> 一元运算符隐式转换
        
        console.log(+"12");  //12
        console.log(+true);  //1
        console.log(+null);  //0
        console.log(+undefined);  //NaN
        console.log(+NaN);  //NaN

2.3 转换为Boolean类型

	
	转换为Boolean类型: 
		   
		   1)布尔值转换:
		   				0 NaN '' null undefined 转化成布尔值是false,
		   				其余的都是true
			
		   2)转换方式
		   		a) 强制类型转换:Boolean()函数
			
				b) 隐式类型转换:利用逻辑运算符双!
								!!x
						
								内部原理:非Boolean类型的数据在做逻辑非运算时,首先会转化为Boolean类型在做运算。
								        其底层也是也是调用了Boolean函数。
	
	
	
a)Boolean(x)函数
        console.log(Boolean(12))

        console.log(Boolean("12"))
        console.log(Boolean(""))
        console.log(Boolean("   "))

        console.log(Boolean(null))
        console.log(Boolean(undefined))
        console.log(Boolean(NaN))
        

在这里插入图片描述

b)Boolean隐式类型转换

        console.log(!!11)

        console.log(!!"")
        console.log(!!"  ")
        console.log(!!"12")

        console.log(!!null)
        console.log(!!undefined)
        console.log(!!NaN)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值