JS基础 05-string数据类型

110 阅读1分钟

string

  • 单引号、双引号、反引号
  • 转成 字符串类型
    • String([value])
    • [value].toString()
String(10)  // '10'
(10).toString()  // '10'

({}).toString()  // "[object object]"
[0, 1, 2].toString()  // "1, 2, 3"
[].toString()  // ""

数学运算

  • 加 + 减 - 乘 * 除 / 取余数 %
  • 加法运算
    • 运算出现字符串,加法运算 为拼接
    • 运算出现 非字符串、非数字,用 Number() 强制转换
  • 其他运算
    • 运算出现非数字,用 Number() 强制转换
// %
7 % 3  // 1

// +
true + "12"  // "true12"
1 + true  // 2 => 1 + Number(true)
1 + {}  // "1[object object]" => 1 + Number({})
1 + []  // "1" => 1 + Number([])
[10] + true // "10true" => Number([10]) + true
true + [10]  // "10true" => true + Number([10])

10 - null  // 10 => 10 - Number(null)
3 * undefined  // NaN => 3 * Number(undefined)
true - "12"  // -11 => Number(true) - Number("12")

// 面试题
100 + true + 21.2 + null + undefined + "Tencent" + [] + null + 9 + false  // NaNTencentnull9false
// 100 + true => 101
// 101 + 21.2 => 122.2
// 122.2 + null => 122.2
// 122.2 + undefined => NaN
// NaN + "Tencent" => "NaNTencent"
// "NaNTencent" + [] => "NaNTencent"
// "NaNTencent" + null => "NaNTencentnull"
// "NaNTencentnull" + 9 => "NaNTencentnull9"
// "NaNTencentnull9" + false => "NaNTencentnull9false"

// 时间拼接
let year = "2020", month = "03", day = "06", hours = "12", minutes = "00", seconds = "00";
let time = `${year}${month}${day}${hours}:${minutes}:${seconds}`

// 模版字符串
let str = `<div>
    <ul>
        ${[10, 20, 30].map(item => {
            return `<li>${item}</li>`;
        }).join('')}
    </ul>
</div>`
console.log(str)

珠峰培训 - 40个小时彻底打实JavaScript基础 P15、P16