数据类型的转化
定义:在 JavaScript 程序中 ,将当前数据类型转化为其他数据类型,就叫数据类型转化
为什么要数据类型转化
在 JavaScript 程序的执行过程中,往往需要变量中存储的数值是某种特定的数据类型,别的数据类型不行,此时就需要进行数据类型的转化
数据类型的转化有哪些类型?
数据类型的转化分为 : 自动转化 和 强制转化 两种类型
自动转化
定义:自动转化是计算机程序,自动完成的转化
案例
1.布尔类型自动转化
For example:
if(0){
console.log( '转化为true' );
}
else{
console.log( '转化为false' );
}
if(''){
console.log( '转化为true' );
}
else{
console.log( '转化为false' );
}
.........
//注意:当if () 中值为0 '' null NaN undefined 时,if会将他们的类型自动转换为false,其他的值则会转换为true
2.字符串类型自动转化
For example:
var a1 = 'console'+true;
console.log(a1);
var a2 = 'console'+false;
console.log(a2);
var a3 = 'console'+undefined;
console.log(a3);
var a4 = 'console'+null;
console.log(a4);
var a5 = 'console'+NaN;
console.log(a5);
// 特殊1 数组
var a6 = 'console' + [1,2,3,4,5] ;
console.log(a6);
// 特殊2 对象
var a7 = 'console' + {name:'LPR' , age:20 , sex:'女'} ;
console.log(a7);
// 特殊3 函数
var a8 = 'console' + function fun(){console.log(123)};
console.log(a8);
3.数值类型自动转换
在执行数学运算时,会将其他类型自动转化为数值进行运算
For example:
var a1 = 100 - true; --> 99
console.log(a1);
var a2 = 100 - false; --> 100
console.log(a2);
var a3 = 100 - null; --> 100
console.log(a3);
var a4 = 100 - NaN; --> NaN
console.log(a4);
var a5 = 100 - 'console'; --> NaN
console.log(a5);
var a6 = 100 - '3e3'; --> -2900
console.log(a6);
var a7 = 100 - '98.5'; --> 1.5
console.log(a7);
var a8 = 100 + [1,2,3,4,5]; --> 1001,2,3,4,5
console.log(a8);
var a9 = 100 + {name:'LPR' , age:20 , sex:'女'}; --> 100[object Object]
console.log(a9);
var a10 = 100 + function fun(){console.log(123)}; --> 100function fun(){console.log(123)}
console.log(a10);
数据类型强制转换?
定义:强制转化是指由程序员强行完成的转化。
案例
1.布尔类型强制转换
For example:
var int = 100;
console.log(Boolean(int)); --> true
var int = 0;
console.log(Boolean(int)); --> false
2.字符串类型强制转换
For example:
var int = 1314;
console.log(int.toString(2)); -->10100100010
var int = 1314;
console.log(int.toString(8)); -->2442
var int = 1314;
console.log(int.toString(16)); -->522
3.数值类型转换
For example:
console.log( Number(true) ); // 1
console.log( Number(false) ); // 0
console.log( Number(null) ); // 0
console.log( Number(undefined) ); // NaN
console.log( Number('123abc') ); // NaN
console.log( Number('100') ); // 100
console.log( Number('100.123') ); // 100.123
console.log( Number('2e4') ); // 20000
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')} ) );
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( parseInt( 100 ) ); -->100
console.log( parseInt( '100.52458ea4' ) ); -->100
console.log( parseFloat(100) );
console.log( parseFloat(100.1234) );
console.log( parseFloat(1.234567e3) );
总结
这次主要浅谈了一些关于数据类型的自动转换和强制转换,当然只是大概,并不是很全面。