一、强制转化为布尔类型
1、什么时候转化
- Boolean(变量/表达式);将变量/表达式的数据,转化为布尔类型。
转化原则和自动转化完全相同
2、转化原则
false
:0、0.000、NaN 、’ ’ 、null 、undefinedtrue
:其他情况都转化为 true
console.log( Boolean( null ) ); //false
var a = 100 ;
// 解析变量a中存储的数值,解析结果是100
// 将数值100,转化为布尔类型
// 不会改变变量中存储的原始数据
console.log( Boolean( a ) ); //true
console.log( a ); //100
注意
不会改变变量中存储的原始数值
- 如果需要改变变量中存储的数据,一定要将执行结果赋值给变量
二、强制转化为字符串类型
1、
String( 变量/表达式 )
; 转化原则和自动转化相同,不会改变变量中存储的原始数据
2、变量.toString( )
; 转化原则和自动转化相同,不会改变变量中存储的原始数据
1、String(变量/表达式 );
var res = String( 100 );
console.log( res );
2、变量.toString();
- 只能对变量使用, 不能直接对表达式使用
- 如果变量储存的是整数,可以定义进制
// 语法前必须是变量,不能直接定义表达式或者数据
// console.log( 100.toString() ); 报错
var a = 100 ;
console.log( a.toString() );
// 如果变量储存的是整数可以定义进制
console.log( a.toString( 2 ) );
如果变量储存的是
null
或者undefined
, 不支持toString() 语法
var b = null;
console.log(String(b)); //NaN
// 变量.toString() 语法,不支持变量中存储null
b.toString(); //报错
var c = undefined;
console.log(String(c)); //undefined
// 变量.toString() 语法 不支持变量中存储undefined
c.toString(); //报错
三、强制转化为数值类型
1、强制转化为数值类型
1、Number()
- 强制转化为数值类型,转化原则和自动转化完全相同
2、转化原则
1
:true0
:false、null、’ ’ 、’ ’对应的数字
:字符串内容符合数字语法规范NaN
:undefined,字符串内容不符合数字语法规范
// Number()
console.log( Number( true ) );
console.log( Number( false ) );
console.log( Number( null ) );
console.log( Number( '' ) );
console.log( Number( ' ' ) );
console.log( Number( '100' ) );
console.log( Number( '100.123' ) );
console.log( Number( '2e3' ) );
console.log( Number( undefined ) );
console.log( Number( '100px' ) );
console.log( Number( 'a123' ) );
2、parseInt():获取数据的整数部分
- 从左起获取符合整数语法规范的内容,直到内容不符合整数语法规范
- 如果左起第一个内容就不服和整数的语法规范,获取结果是NaN
// 直接对 true 这个数据 获取整数部分
// 左起第一个字符 不符合整数语法规范 转化结果结果是 NaN
console.log( parseInt( true ) ); //NaN
console.log( parseInt( false ) ); //NaN
console.log( parseInt( null ) ); //NaN
console.log( parseInt( undefined ) ); //NaN
// 对于数值
console.log( parseInt( 100 ) ); //100
console.log( parseInt( 100.123 ) ); //100
console.log( parseInt( 2e3 ) ); //2000
// 对于字符串
console.log( parseInt( '100' ) ); //100
console.log( parseInt( '100px' ) ); //100
console.log( parseInt( '100abc100' ) ); //100
// 数值类型 2e3 就是 数值2000.0000... 获取整数部分是 2000
console.log( parseInt( 2e3 ) ); //2000
// 字符串类型 '2e3' 对于 parseInt() 来说 这就是 3个字符
// 不能识别为符合整数语法规范的内容
// 因为科学计数法是浮点数语法, 不是整数语法
// parseInt()不能识别科学计数法,只会认为是字符
console.log( parseInt( '2e3' ) ); //2
注意:parseInt() 不能识别科学技术法,对于字符串内容是科学技术法,获取的结果是e之前数值的整数部分
3、parseFloat():获取数据的浮点数部分
- 从左起获取符合浮点数语法规范的内容,直到内容不符合浮点数语法规范
- 如果左起第一个内容就不符合浮点数的语法规范,获取结果是 NaN
// parseFloat() 可以识别科学计数法
console.log( parseFloat( '2e3' ) ); //2000
console.log( parseFloat( 100.123 ) ); //100.123
注意:parseFloat() 可以识别科学技术法,对于字符串内容是科学技术法,获取的结果是按照字符串内容的科学计数法表示的数值获取浮点数部分