1. 程式人生 > >js中的資料型別的相互轉換

js中的資料型別的相互轉換

任意型別轉字串

1,String(x)

這裡寫圖片描述

2,x.toString

這裡寫圖片描述

3,x+’ ‘

這裡寫圖片描述

任意型別轉數字

  • Number(x)
  • parseInt(x, 10)
  • parseFloat(x)
  • x - 0
  • +x

任意型別轉布林

  • Boolean(x)
  • !!x

falsy是在 Boolean 上下文中認定可轉換為false的值.

JavaScript 在需要用到布林型別值的上下文中使用強制型別轉換(Type Conversion )將值轉換為布林值,比如:在條件語句或者迴圈語句中

例子Edit
JavaScript中falsy值的例子 (將falsy值轉換為false):

  • if (false)
  • if (null)
  • if (undefined)
  • if (0)
  • if (NaN)
  • if (”)
  • if (“”)
  • if (document.all)

深拷貝與淺拷貝

var a = 1
var b = a
b = 2 //這個時候改變 b
a 完全不受 b 的影響
那麼我們就說這是一個深拷貝
對於簡單型別的資料來說,賦值就是深拷貝。
對於複雜型別的資料(物件)來說,才要區分淺拷貝和深拷貝。

這是一個淺拷貝的例子

var a = {name: ‘shuyan’}
var b = a
b.name = ‘b’
a.name === ‘b’ // true
因為我們對 b 操作後,a 也變了

什麼是深拷貝呢,就是對 Heap 記憶體進行完全的拷貝。

var a = {name: ‘shuyan’}
var b = deepClone(a)
b.name = ‘b’
a.name === ‘a’ // true