可能你不知道的字串中的乙個小坑!!!

2022-01-31 15:51:29 字數 734 閱讀 9866

簡單的記錄乙個小問題,一直居然都沒怎麼注意,心底對自己深深的說了一句:「你真菜」!

平時日常我們接觸到的陣列去重太常見了。然後對於字串的去重,也是可能用的indexof。或者轉成陣列去查重,然後再轉換回來!

在嘗試用其他方法的時候遇見乙個小問題,在此記錄下來與大家分析!

var str = '521213756406';

for(var i = 0; i < str.length-1;i++)

}}

然而並不能,字串紋絲不動,還是老樣子,關鍵點在於str[j] = ''並不能生效。

也不多bb,直接一句話說完先:字串常量是放在靜態儲存區的,這部分內容是不能修改的。

再最後做一波擴充套件吧,字串常量是在堆上的,陣列常量是放在棧上的。

字串資料被儲存到堆,然後把字串的引用位址儲存在字串變數中。同時為了避免錯誤操作,js直譯器強制約定字串在堆儲存的資料是不可變的。相當於設定字串在堆區儲存的資料是唯讀的。

1,棧區(stack):這塊區域由編譯器分配與釋放記憶體空間,一般儲存函式的引數值與區域性變數值。類似於資料結構中的棧。

2, 堆區(heap):這塊區域由程式設計師自己分配與釋放,其餘資料結構中的堆是兩碼事,分配方式類似於鍊錶。

最後加一波感言吧,在日常的工作中,大家往往比較關注的是工作效率(沒辦法,老闆要你出活呀!),我們應該抽空多複習下基礎的知識,溫故而知新嘛!這樣才能在技術道路上走的更遠,而如上的一些小細節可能往往比較容易被忽略和遺忘。

你可能不知道的字元比較中的「秘密」

原文 你可能不知道的字元比較中的 秘密 有時候,乙個簡單的字元比較,你可能也會被弄得暈頭轉向。為什麼這樣說呢?請看下面這個例子 就不貼了,因為後來發現頁面不支援這兩個字元的顯示 猜測一下,會是什麼結果?是1還是0?回答這個問題之前,請再繼續向下看。先建立幾個不同排序規則的資料庫 見資料庫名可知 fi...

你可能不知道的東西

元素可以分為塊級元素,行內元素以及行內塊級元素。行內元素的margin或者padding只有margin left和margin right以及padding left和padding right有效果,margin top margin bottom padding top padding bot...

你可能不知道的const

眾所周知,使用 const 宣告的變數必須同時初始化為某個值。一經宣告,在其生命週期的任何時候都不能再重新賦予新值 const a syntaxerror 常量宣告時沒有初始化 const b 3 console.log b 3 b 4 typeerror 給常量賦值const 宣告只應用到頂級原語...