基本数据类型之string相关

基本数据类型之string相关

string

  • 所有单引号、双引号、反引号(ES6的模板字符串)包起来的都是字符串
  • 天生自带一个length属性,代表字符串的长度或者个数
  • 空格也是一个字符

val.toString()

  • 把number、boolean、null、undefined转字符串都是直接加引号
  • null/undefined不能用.toString()方法转字符串
  • 把普通对象转字符串,都为’[object Object]’
  • 数组转字符串,把中括号去掉,然后把数组内的每一项分别做.toString()运算,数组内的逗号不能丢。
<script>
  console.log((1).toString())
  //   '1'
    console.log((true).toString())
    //   'true'
    console.log(([]).toString())
    //   ''
    console.log(({}).toString())
    //   '[object Object]'

    
  console.log([{}, []].toString()) // '[object Object],'
  console.log([null, undefined].toString()) // ','
    console.log((''+null).toString())
    //'null'
</script>

字符串拼接

四则运算(加减乘除)

在四则运算中,除了加法,其余的都是正常的运算

在正常运算过程中,如果运算的值不是数字类型,先转数字类型,再运算。

在正常运算过程中,如果出现了NaN,结果就是NaN

特殊的加法

    • 正常运算
    • 字符串拼接
      • 加号跟引号相遇,就是字符串拼接(基本数据类型相加是这样的)
      • 在运算过程中,引用数据类型,必须要转数字类型,过程中,先转字符串类型,然后加号与字符串相遇,停止转数字类型,开始字符串拼接
    <script>
    //     // string
    // //  把number、boolean(true,false)转字符串都是直接加引号
    // // val.toString()
    // console.log(  (1).toString() ) // '1'
    // console.log( (-3.1415926).toString() ) // '-3.1415926'
    // console.log(true.toString()) // 'true'
    // console.log(false.toString()) // 'false'
    // // console.log(null.toString()) // 报错
    // // console.log(undefined.toString()) // 报错
    // console.log(''+null) // 'null'
    // console.log([].toString()) // ''
    // conosle.log( ({}).toString() ) // '[object Object]'
    // conosle.log( ({name: 'erYa'}).toString()) // '[object Object]'
1

    // 在运算中过程中,如果相运算的值不是数字类型的,先转为数字类型,在运算
    // 在运算过程当中,如果出现了NaN,那结果就是NaN

/*     > 在加法中有两种情况:
        + 正常运算
        + 字符串拼接:如果加号一旦跟引号相遇了,那就是字符串拼接,不再是正常的运算 */
    // console.log(true + true) // 1+1=2
    // console.log(undefined + true) // NaN+1=NaN
    // console.log(1+ true+null+undefined+ 35+ null) // NaN

    // console.log(1+ 'wer') // '1wer'
    // console.log(true + '1') // 'true1'
    // console.log(1+ true+null+undefined+'erYa'+ true);
    //                 // 2+0+NaN=>NaN=>'NaNerYa'+ true=>'NaNerYatrue'

    console.log(1+ true + null + undefined+ 'erYa' + [] + {})
            // 1+true=>2=>2+null=>2=>2+undefined=>NaN=>NaN+'erYa'=>'NaNerYa'=>'NaNerYa' + []=>'NaNerYa' + ''=>'NaNerYa'=>'NaNerYa' + {}=>'NaNerYa' + '[object Object]' => 'NaNerYa[object Object]'

        console.log([] + {})
        // ''+{}=>'' + '[object Object]'=>'[object Object]'
        console.log(1 + []); // '1'
        // 1+'' =>'1'
        console.log({} + NaN)   
        // '[object Object]'+ NaN =>'[object Object]NaN'
        console.log(true+10/true-undefined) // NaN
        console.log(true+10/true + [] ) // NaN
            // true+10=>11 - {} =>NaN  
            // 11 + [{}]
            // 11 + '{}'
            '11{}'
        // console.log(true - [11])

        // 把true转换数字用四则运算转
        console.log(true*1) // 1-0 // 1
        // 把null转换为数字   0
        console.log(null*1)
        console.log([]-0)

        console.log(Number( isNaN(2) ))
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值