JS类型

99 阅读1分钟

问题一:js类型有哪些?

  1. 原始类型 数据都是一些比较简单数据 String Number Boolean null undefined symbol bigint(末尾追加n)

  2. 引用类型 数据稍微复杂一点,指的是JS中的对象,类似于其他编程语言中的类。 Object Array Set Map RegExp Date Math Function

问题二:大数相加,相乘的算法题

问题三:类型判断

  1. typeof
  • 只能判断原型
  • function、object可以判断
  • array被判断成function
  1. instanceof
  • 只能判断引用类型
  • 详见instanceof.js
  • a instanceof A
  1. Object.prototype.toString.call()
  • 最佳,返回一个字符串
  1. Array.isArray()
  • 数组独有的方法 isNaN()
  • 代表非数字值的特殊值。该属性用于指示某个值不是数字
  • ture: NaN、undefined、','
  • false: null、true、'1'
  • Number.isNaN() 只能判断NaN

问题五:类型转换

  1. 强制转换 Number('123') //123 (123).toString() //'123' Boolean() //除了0、''、undefined、null都是true

  2. 隐式转换

  • 对象 -》原始类型

    1. valueOf() // 转换对象
    2. toString()
  • 在四则运算中,其中一方是字符串,就会把另一方也转成字符串

  • 在四则运算中,只要其中一方是数字,另一方就一定要转成数字

  • 操作符的运用

    1. 错误思想: [] == ![] // 右边转原始类型 [] == ![] // 右边[].valueof() [] == !'' // 右边[].toString [] == !false // !使得右边Boolean()转换 [] == true

    2. 正确思想 [] == ![] // !是使得右边[]转换成原始类型 [] == false // 直接转换 [] == 0 // 左边转原始类型、左边[].valueof() '' == 0 // 左边[].toString 0 == 0