【学习笔记07】JavaScript数据类型强制转化

一、强制转化为布尔类型

1、什么时候转化

  • Boolean(变量/表达式);将变量/表达式的数据,转化为布尔类型。
  • 转化原则和自动转化完全相同

2、转化原则

  • false:0、0.000、NaN 、’ ’ 、null 、undefined
  • true:其他情况都转化为 true
	console.log( Boolean( null ) );      //false
    var a = 100 ;
    // 解析变量a中存储的数值,解析结果是100
    // 将数值100,转化为布尔类型 
    // 不会改变变量中存储的原始数据
    console.log( Boolean( a ) );         //true
    console.log( a );                    //100

在这里插入图片描述

注意

  1. 不会改变变量中存储的原始数值
  2. 如果需要改变变量中存储的数据,一定要将执行结果赋值给变量

二、强制转化为字符串类型

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:true
  • 0: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() 可以识别科学技术法,对于字符串内容是科学技术法,获取的结果是按照字符串内容的科学计数法表示的数值获取浮点数部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值