JS笔记(js中类型的转换)

类型转换

类型转换分为两种:
1:显式类型转换 | 强制类型转换 (程序员通过js代码进行类型转换)
2:隐式类型转换(对于程序员是透明,不需要参与)。

Number显式类型转换

将任意类型转换为字符串
通过函数 String(数据)

<script>
    console.log (String(true));//true
    console.log (String(0));//0
    console.log (String(NaN));//NaN
    console.log (String(Infinity));//Infinity
    console.log (String(null));//null
    console.log (String(undefined));//undefined
    ///
    console.log (String([1,2]));//1,2
    console.log (String({}));//[object Object]
    var obj = {};
    console.log (obj.toString());//[object Object]
    /
    console.log (String({name:"小刚"}));//[object Object]
    console.log (String(function () {
        console.log (1);
    }));
    // function () {
    //     console.log (1);
    // }
</script>

Boolean()类型转换

使用Boolean()函数。进行类型转换。
在5种情况下会转换为false,其他的都是true。

<script>
    console.log (Boolean(+0));//false
    console.log (Boolean(-0));//false
    console.log (Boolean(""));//false
    console.log (Boolean(null));//false
    console.log (Boolean(undefined));//false
    console.log (Boolean(NaN));//false
    console.log (Boolean(false));//false

    console.log (Boolean(-1));//true
    console.log (Boolean(-Infinity));//true
    console.log (Boolean("false"));//true
    console.log (Boolean({}));//true
    console.log (Boolean([]));//true
    console.log (Boolean(function () {
    }));//true
</script>

String()进行类型转换

将任意类型转换为字符串
通过函数 String(数据)

<script>
    console.log (String(true));//true
    console.log (String(0));//0
    console.log (String(NaN));//NaN
    console.log (String(Infinity));//Infinity
    console.log (String(null));//null
    console.log (String(undefined));//undefined
    ///
    console.log (String([1,2]));//1,2
    console.log (String({}));//[object Object]
    var obj = {};
    console.log (obj.toString());//[object Object]
    /
    console.log (String({name:"小刚"}));//[object Object]
    console.log (String(function () {
        console.log (1);
    }));
    // function () {
    //     console.log (1);
    // }
</script>

隐式转换为Number类型

隐式类型转换是需要触发条件的。
当当前的环境需要将操作数当做数值型的数据进行计算的时候,
那么就会将其他的类型隐式转换为Number类型之后再做运算。
隐式的转换底层使用Number()函数转换。

隐式转换的环境:通常是四则运算
<script>
    console.log (true * 10);//10
    console.log ("123" - 1);//122
    console.log (false + 1);//1
    console.log (undefined * 1);//NaN
    console.log ("abc" / 2);//NaN
</script>

隐式转换Boolean类型

当环境需要一个布尔类型的数据的时候,如果当前数据不是布尔类型,
那么就会进行隐式转换,转换的规则通过显式转换。
只有5种情况下是false,其他的都是true

5种:0、null、undefined、"",NaN

需要布尔值的环境:if、三目、循环条件等等
<script>
    var ran = ~~(Math.random () * 10);
    console.log (ran);
    //触发隐式转换。ran % 2   0:false   1:true
    var result = ran % 2 ? "奇数" : "偶数";
    console.log (result);

    //触发隐式转换。"abc"/10==NaN 会转换为 false
    console.log ("abc"/10 ? "true":"false");
</script>

隐式转换String类型

任意类型,当和String进行 + 连接的时候,其他的任意类型都会被底层
隐式转换为String,然后再做 + 连接。
隐式转换的规则同显式转换。

触发的环境:+ 连接操作。
<script>
    console.log ("a" + 1);//a1
    console.log (true + 1 + "a");//2a
    console.log (null + "a");//nulla
    console.log (undefined + "a");//undefineda
    console.log (NaN + "a");//NaNa
    console.log (1 + 2 + "3");//33
    console.log ("3" + 2 + 1);//321
    console.log ([1,2]+"3");//1,23
    console.log ({}+"a");//[object Object]a
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值