JS Basic: By value versus By reference
Transcript of JS Basic: By value versus By reference
![Page 1: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/1.jpg)
JS Basic: By Value V.S By Reference
Leeboy @ goodideas-studio2017.03.10
![Page 2: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/2.jpg)
Primitive type(1/6)
Booleans
Number
String
undefined
null
compare by value ⽤值相比
只有在具有相同的值,兩者才相等
Pass by value (e.g 1)
Copy by value (e.g 2)
![Page 3: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/3.jpg)
Primitive type(2/6)e.g.1 Pass by value
![Page 4: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/4.jpg)
Primitive type(3/6)e.g.2 Copy by value
![Page 5: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/5.jpg)
Primitive type(4/6)String
- 不可變的(immutable)(e.g 3)
- 長度相等,索引位置字元相等 👉Quiz
- Are strings compared by value or by reference?
![Page 6: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/6.jpg)
Primitive type(5/6)immutable
![Page 7: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/7.jpg)
Quiz1Q:寫⼀個比較兩字串的函數
![Page 8: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/8.jpg)
Primitive type(6/6)summary
![Page 9: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/9.jpg)
Objective type(1/4)
Object
Function
Array
Set
mutable
compare (e.g1)(e.g 2)
個別物件永不相等
個別陣列永不相等
clone 如何複製 (e.g3)(👉quiz)
![Page 10: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/10.jpg)
Objective type(2/4)e.g.1 Compare by reference
Two references to distinct values are not equal, even if the two values consist of the same bytes.
![Page 11: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/11.jpg)
Objective type(3/4)e.g.2 Compare by reference
Two references are compared to see if they refer to the same value.
![Page 12: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/12.jpg)
Objective type(4/4)e.g.3 Object Clone
![Page 13: JS Basic: By value versus By reference](https://reader031.fdocument.pub/reader031/viewer/2022020410/58ce72201a28abdc578b5b25/html5/thumbnails/13.jpg)
Quiz2 Array Clone
請複製 const DC = ['Batman', 'Jocker', 'Flash', 'SuperGirl']
DC_copy.push(‘Arrow') //在複製的陣列 push ⼀個新值
console.log(DC,DC_copy) // 印在 console