JS 里的数据类型转换

2019-05-07  本文已影响0人  嘁_

将其他的数据类型转换为String 字符串

  1. ?.toString
  2. String(?)
  3. '' + ? 问号此处代表的是其他数据类型
    上面三种方法均不适用于对象object,所得结果是"[object object]"
1.?.toString方法
null.toString() //Uncaught TypeError: Cannot read property 'toString' of null
undefined.toString() //Uncaught TypeError: Cannot read property 'toString' of undefined
({}).toString() //"[object Object]"
2. String(?)方法
3. ' '+?方法

将其他的数据类型转换为Number 数值

  1. Number(?)
  2. parseInt(?,?)
  3. parseFloat(?)
  4. '?' - 0
  5. + '?'
1. Number(?)方法
Number({a: 1}) // NaN
Number([1, 2, 3]) // NaN
Number([5]) // 5
2. parseInt(?,?)方法
parseInt(1.23) // 1
// 等同于
parseInt('1.23') // 1
parseInt('2a') // 2
parseInt('1e2') // 1
parseInt(0o377)  //255
parseInt(0xff)  //255
parseInt(0b11)  //3
parseInt('1000', 2) // 8
parseInt('1000', 6) // 216
parseInt('1000', 8) // 512
parseInt('10', 37) // NaN
parseInt('10', 1) // NaN
parseInt('10', 0) // 10
parseInt('10', null) // 10
parseInt('10', undefined) // 10
3. parseFloat(?)方法
parseFloat('3.14') // 3.14
parseFloat('3.14more non-digit characters') // 3.14
4.'?' - 0方法

字符串减去零

'11' - 0 //11
5. + '?'方法
+ '-011' ; // -11

将其他数据类型转换为Boolean布尔类型

1. Boolean()
Boolean(1)  //true
Boolean({})  //true
2. 双重取反:!! x
!true //false
!!true //true
!!1 //true
五个falsy值,即转换成Boolean后为false得值

0 、 NaN 、 null 、 undefined 、' ' (空字符串)

内存图

垃圾回收

GC 垃圾回收 如果一个对象没有被引用,那么它就是垃圾,将会被浏览器回收

深拷贝与浅拷贝

var b = a
b = 2 //这个时候改变 b

a 完全不受 b 的影响
那么我们就说这是一个深复制
对于简单类型的数据来说,赋值就是深拷贝。
对于复杂类型的数据(对象)来说,才要区分浅拷贝和深拷贝

上一篇下一篇

猜你喜欢

热点阅读