问题一:js类型有哪些?
-
原始类型 数据都是一些比较简单数据 String Number Boolean null undefined symbol bigint(末尾追加n)
-
引用类型 数据稍微复杂一点,指的是JS中的对象,类似于其他编程语言中的类。 Object Array Set Map RegExp Date Math Function
问题二:大数相加,相乘的算法题
问题三:类型判断
- typeof
- 只能判断原型
- function、object可以判断
- array被判断成function
- instanceof
- 只能判断引用类型
- 详见instanceof.js
- a instanceof A
- Object.prototype.toString.call()
- 最佳,返回一个字符串
- Array.isArray()
- 数组独有的方法 isNaN()
- 代表非数字值的特殊值。该属性用于指示某个值不是数字
- ture: NaN、undefined、','
- false: null、true、'1'
- Number.isNaN() 只能判断NaN
问题五:类型转换
-
强制转换 Number('123') //123 (123).toString() //'123' Boolean() //除了0、''、undefined、null都是true
-
隐式转换
-
对象 -》原始类型
- valueOf() // 转换对象
- toString()
-
在四则运算中,其中一方是字符串,就会把另一方也转成字符串
-
在四则运算中,只要其中一方是数字,另一方就一定要转成数字
-
操作符的运用
-
错误思想: [] == ![] // 右边转原始类型 [] == ![] // 右边[].valueof() [] == !'' // 右边[].toString [] == !false // !使得右边Boolean()转换 [] == true
-
正确思想 [] == ![] // !是使得右边[]转换成原始类型 [] == false // 直接转换 [] == 0 // 左边转原始类型、左边[].valueof() '' == 0 // 左边[].toString 0 == 0
-