zoukankan      html  css  js  c++  java
  • JS语法_类型

    类型

    JS 的数据类型

    • boolean
    • number
    • string
    • undefined
    • null
    • symbol
    • object

    BigInt 是一种内置对象,它提供了一种方法来表示大于 (2^{53 - 1}) 的整数。这原本是 Javascript 中可以用 Number 表示的最大数字。BigInt 可以表示任意大的整数。

    typeof

    // log
    console.log(typeof [1, 2])
    
    // log
    console.log(typeof new Number(1))
    console.log(typeof 1)
    

    隐式类型转化

    // log
    console.log(!{}[true])
    console.log(+[1, 2])
    console.log([] == 0)
    console.log([] == false)
    console.log([] == ![])
    
    console.log([] + {})
    console.log({} + [])
    {} + [] == 0 ? console.log('0') : console.log('not 0')
    
    • !{}[true考察[]的优先级高于!,若记错优先级,答案就不一样了
    • 单目运算符+,会转化为数字。在正式转化前,object要先进行toPrimitive。[1,2]是object类型,转为1,2这个字符串,这个字符串无法靠+转化为number类型,靠+不如parseInt强大
    • [] == 0[] == false考察的知识点仍然是 object 转 primitive,这里[]被转化为空串
    • [] == ![]考察!object类型 === true
    • 最后三个,考察如下知识点
    • object类型进行运算时,要先转化为原始值
    • {}会被转化为[object Object],而[]会被转为空串
    • 如果{}产生了歧义,那么优先考虑其是空代码块而不是空对象

    类型转换

    // log
    function testTruthy(val) {
      return val ? console.log(true) : console.log(false)
    }
    testTruthy('')
    testTruthy(new String(''))
    testTruthy(new Number(NaN))
    testTruthy(NaN)
    
  • 相关阅读:
    题解:[HNOI2004]树的计数
    题解:砝码称重
    题解:子矩阵(NOIP2014普及组T4)
    题解:低价购买
    题解:倍增三连击orz
    题解:UVA10140 Prime Distance
    题解:[JSOI2007]建筑抢修
    模板:三分法
    Databinging数据绑定
    开始
  • 原文地址:https://www.cnblogs.com/oceans/p/13574994.html
Copyright © 2011-2022 走看看