var arr1 = [1,2,3];
var arr2 = arr1;
arr1 = [9,2,3]; // 重新給arr1賦值
arr2 => (3) [1, 2, 3] // arr2 沒跟著arr1改變而變化
var arr1 = [1,2,3];
var arr2 = arr1;
arr1[0] = 9; // 重新給arr第乙個元素賦值
arr2 => (3) [9, 2, 3] // arr2 跟著arr1改變而變化
造成以上的原因是,第一種情況,arr1 指向記憶體的位址,隨著新陣列的賦值而發生了改變,而 arr2 仍然指向 arr1 之前指向的位址,故不隨著 arr1 改變而發生改變,他們已經不是指向同乙個位址了,而第二種情況,只修改陣列中某乙個下標元素,並不會新生成記憶體位址,故 arr1,arr2 始終指向的是同乙個記憶體位址,所以 arr2 隨 arr1 改變而改變。
由上面的現象,我們可以更好滴理解深層拷貝,通過建立新的字串解析成 json ,得到舊資料的備份而不影響舊資料:
let newdata = json.parse(json.stringify(olddata))
no duplicate props allowed react/jsx-no
-duplicate
-props
報錯原因:因統一標籤內存在多個classname 導致
解決方案:es6拼接字串,將表示式返回的類名 『red』 / 『green』 與不變的類名 『todolist』 進行字串拼接
classname = 靜態類名字串`}
即:`$ todolist`}>
每天學一點兒shell 猜數字遊戲
指令碼生成乙個 100 以內的隨機數,提示使用者猜數字,根據使用者的輸入,提示使用者猜對了,猜小了或猜大了,直至使用者猜對指令碼結束。bin bash 指令碼生成乙個 100 以內的隨機數,提示使用者猜數字,根據使用者的輸入,提示使用者猜對了,猜小了或猜大了,直至使用者猜對指令碼結束。random ...
每天學一點兒shell vi和vim命令使用
命令模式 重點 root hadoop master test vi vi test.txt 使用如上命令就可以進入vi test.txt的內容頁面 usr bin env bash echo 伺服器開始部署服務 projectname demo 開啟檔案所屬的目錄,不然遠端執行會找不到當前目錄 c...
每天學演算法
歸併排序演算法 它是一種基於比較的排序演算法,使用分治法解決那些原本複雜度為o n 2 的問題。傅利葉變換與快速傅利葉變換 網際網路 你的wifi 智慧型手機 計算機 路由器 衛星,幾乎所有內建計算機的東西都會以各種方式使用這些演算法實現各自的功能。如果你沒有學習這些重要的演算法,你將無法獲得電子 ...