数据类型的转化(JavaScript)

数据类型的转化(JavaScript)—自动转化和强制转化
这一周,我来分享一下在JavaScript中的数据类型转化。
首先我们要知道在JavaScript中的数据类型有什么?在这里我就不详细介绍了,帮你总结好了。

 1.布尔类型-----Boolean---isNaN()
 	用来判断一个变量是否为非数字的类型,是数字返回false,不是数字返回true。
 2.数值类型-----Number
	存储时,是按照二进制数值存储,输出时,默认都是按照十进制数值输出。
	在JavaScript中二进制前加0b/0B,八进制前面加0 ,十六进制前面加0x。
	如果需要按照原始进制数值输出,用格式为:
			变量名称.toString(进制) ;
	注意的是:S必须大写,将数值转化为字符串形式输出
	如:console.log( a.toString(2) );将a转换成2进制的形式输出。
 3.字符串类型-----String
	JavaScript可以用单引号嵌套双引号, 或者用双引号嵌套单引号(外双内单,外单内双)
	字符串是由若干字符组成的,这些字符的数量就是字符串的长度。
	通过字符串的length属性可以获取整个字符串的长度。
    	例子:var str = 'my name is xiaoming';
               	  console.log(str.length);
          输出的结果是19。可以知道空格也代表一个字符。
 4.undefined
	表示没有数值-----应该有数值,但是现在没有数值
 5.null
	表示数值为空-----表示有数值,但是数值是“空”

上面就是数据类型的五种形式。那么它是如何转化呢?听我详细给你讲解。

在 JavaScript 程序中 , 变量中存储的数据类型没有限制,也就是在变量中可以存储任何符合JavaScript语法规范的数据类型。但是在 JavaScript 程序的执行过程中,往往需要变量中存储的数值是某种特定的数据类型,别的数据类型不行,此时就需要进行数据类型的转化。

JavaScript中数据类型的转化,分为自动转化和强制转化:
		自动转化是计算机程序,自动完成的转化。
		强制转化是程序员,强行完成的转化
  • 1.布尔类型的自动转化:

     在 执行 if 判断时 ,其他数据类型会自动转化为布尔类型
             其他类型转化为布尔类型的原则
       0   ''   undefined   null  NaN  这五种情况转化为false
              特别提醒 0.0  0.00000  都算是0 
     其他的所有都会转化为 true
    
  • 2.字符串的自动转化:

       	执行字符串拼接, +号的两侧,应该都是字符串类型,会将其他数据类型转化为字符串类型
     		转化原则:
     			//基本数据类型 / 简单数据类型------将数据数值直接转化为字符串 , 然后执行拼接操作
             布尔值 true  ---> 字符串 'true'
             布尔值 false ---> 字符串 'fasle'
             undefined ---> 字符串 'undefined'
             unll ---> 字符串 'null'
             数值 ---> 将数值解析转化为'对应的纯数字的字符串'
       			// 引用数据类型 / 复杂数据类型
             数组 ---> 将 [] 中的内容,转化为字符串的形式,执行拼接操作
             对象 ---> 任何对象,任何内容,都会转化为 [object Object] 固定的内容形式,执行拼接操作
             函数 ---> 将所有的程序代码,转化为字符串,执行拼接操作
    
  • 3.数值的自动转化:

     在执行运算时,会触发数据类型的自动转化。
     转化原则:
     	布尔类型 : true  --->  1			
     			   false --->  0
     	undefined : 转化为 NaN 
     	null : 转化为 0
     	字符串 : 
     	 	如果整个字符串,是纯数字字符串,或者符合科学计数法 ---> 转化为对应的数值
     	   如果字符串内有不符合数字规范的内容 ---> 转化为 NaN 
     	数组,对象,函数:
     	  如果是+加号执行的是字符串拼接效果,按照这些数据类型转化为字符串的原则来转化
     	  如果是其他形式的运算 执行结果都是 NaN
    
  • 4.布尔类型的强制转化:

      布尔类型的强制转化就是使用JavaScript中定义好的 方法/函数 Boolean( 数据/变量 )
      Boolean() 这个方法 不会改变 变量中存储的原始数值
       转化原则与自动转化原则相同
     	 0   ''   undefined  null  NaN -------->	false 
     	 其他数据,都转化为true
    
  • 5.字符串类型的强制转化:

     方法1,变量.toString(进制类型)
             将数值强制转化为字符串,并且可以设定转化的进制,.toString() 之前,不能直接写数值,必须是写成变量的形式
             进制常用的数值是 2 8 16 ,可以设定的范围是 2 - 36 进制  
     方法2,String( 变量 / 数据 )
             将变量或者数据,转化为字符串,原则按照自动转化的原则来执行,不会改变变量中存储的原始数值
             但是在字符串拼接时,会将其他数据类型自动转化为字符串
    
  • 6.数字类型的强制转化:

     方法1 , Number(变量/数值) 
             console.log( Number(true) );   // 1
             console.log( Number(false) );  // 0
             console.log( Number(null) );   // 0
             console.log( Number(undefined) );   // NaN
             console.log( Number('100') );       // 对应的数值
             console.log( Number('100.123') );   // 对应的数值
             console.log( Number('2e4') );       // 对应的数值
             console.log( Number('123abc') );    // NaN
             console.log( Number( [1,2,3,4,5] ) );                           // NaN
             console.log( Number( {name:'zhangsan'} ) );                     // NaN
             console.log( Number( function fun(){console.log('abc')} ) );    // NaN
     将其他类型强制转化为数值类型,转化原则与自动转化选择相同
     
     方法2, parseInt(变量 / 数据)   是获取变量或者数据的整数部分
             从数据的 左侧起 解析获取 整数内容 
             console.log( parseInt(true) );                 // 都是 NaN            
             console.log( parseInt(false) );                                   
             console.log( parseInt(null) );                                    
             console.log( parseInt(undefined) );                               
             console.log( parseInt( {name:'zhangsan'} ) );                     
             console.log( parseInt( function fun(){console.log('abc')} ) ); 
     
             数组执行,是获取 数值部分 也就是 没有 []的部分
             1,2,3,4,5  整数部分是 1  1之后是逗号 逗号不是整数,之后的部分也就不算整数
             获取第一个数值的整数部分,如果有就获取,如果没有,结果是NaN
             console.log( parseInt( [1,2,3,4,5] ) );        // 结果是 1                      
             console.log( parseInt( [null,2,3,4,5] ) );     // 结果是 NaN 
             
             如果是整数就直接获取,如果是浮点数,或者科学计数法,就获取整数部分
             console.log( parseInt( 100 ) );          // 整数是直接获取
             console.log( parseInt( 0.0123 ) );       // 浮点数是获取整数部分
             console.log( parseInt( 3.123456e3 ) );   // 科学计数法是解析之后,获取整数部分
     
             字符串不同了
             如果是纯数字的字符串
             console.log( parseInt( '100' ) );         // 与数字的结果相同 
             console.log( parseInt( '0.0123' ) );      // 与数字的结果相同 
             
             console.log( parseInt( '3.123456e3' ) );   //3
             console.log( parseInt( '3abc' ) );   //3
             console.log( parseInt( '3.123' ) );   //3
    
     方法3 , parseFloat( 变量 / 数值 )
             获取浮点数部分
             console.log( parseFloat(true) );           // 都是 NaN            
             console.log( parseFloat(false) );                                   
             console.log( parseFloat(null) );                                    
             console.log( parseFloat(undefined) );                               
             console.log( parseFloat( {name:'zhangsan'} ) );                     
             console.log( parseFloat( function fun(){console.log('abc')} ) );         
            //数值, 整数,浮点数,都会完整获取
             console.log( parseFloat(100) );			//100
             console.log( parseFloat(100.1234) );		//100.1234
             console.log( parseFloat(1.234567e3) );		//1234.567
    
             // 关键是字符串
             // 从字符串的左侧起 解析 符合浮点数的部分
             console.log( parseFloat( '100' ) );         // 与数字的结果相同 
             console.log( parseFloat( '0.0123' ) );      // 与数字的结果相同 
             
             console.log( parseFloat( '3.123456e3' ) );  // 科学技术法会解析
             console.log( parseFloat( '3.1223abc' ) );        
             console.log( parseFloat( '3.123' ) );  
    

好了,这就是在JavaScript中数据类型的转化,希望可以帮助到你。

发布了3 篇原创文章 · 获赞 35 · 访问量 3035

猜你喜欢

转载自blog.csdn.net/qq_39406353/article/details/104864224
今日推荐