js的string資料型別,這段表述是什麼意思?沒怎麼看懂。
业精于勤,荒于嬉;行成于思,毁于随。
首先,打錯字了,應該是“雷一個”應該為“另一個”,“穿件”應該是“創建”。
這段話,他描述時候講的不是很清楚,其實他這裡所有的描述都是建立在記憶體空間的基礎上面講的,也就是說:
在JS裡,字串的記憶體空間,一旦創建出來就不能直接修改,如果需要改變變數的值,得先把原來分配的記憶體空間銷毀,重新分配記憶體空間並用新的值填充。
所以,他對於程式碼的解說,是指var lang = 'java'這創建了一個字串值,這個值對應的記憶體空間無法改變,lang = lang + 'script'這裡重新賦值時候的操作是:
var lang = 'java'
lang = lang + 'script'
先開啟一個10個字元的新記憶體空間
將原來lang值內存空間和'script'字符串內存空間對應填入到這個10字符的內存空間中
lang
'script'
把原來儲存lang和'script'字串的兩個空間銷毀
把新開闢的10字符並且填充完畢的空間分配給變數lang
如果你理解的時候是基於你所能看到的表象的話(例如字符串變數之類的),那你一定是被作者的過度省略給坑了。
首先,打錯字了,應該是“雷一個”應該為“另一個”,“穿件”應該是“創建”。
這段話,他描述時候講的不是很清楚,其實他這裡所有的描述都是建立在記憶體空間的基礎上面講的,也就是說:
在JS裡,字串的記憶體空間,一旦創建出來就不能直接修改,如果需要改變變數的值,得先把原來分配的記憶體空間銷毀,重新分配記憶體空間並用新的值填充。
所以,他對於程式碼的解說,是指
var lang = 'java'
這創建了一個字串值,這個值對應的記憶體空間無法改變,lang = lang + 'script'
這裡重新賦值時候的操作是:先開啟一個10個字元的新記憶體空間
將原來
lang
值內存空間和'script'
字符串內存空間對應填入到這個10字符的內存空間中把原來儲存
lang
和'script'
字串的兩個空間銷毀把新開闢的10字符並且填充完畢的空間分配給變數
lang
如果你理解的時候是基於你所能看到的表象的話(例如字符串變數之類的),那你一定是被作者的過度省略給坑了。