j**ascript中的原始值(undefined、null、布林值、數值和字串)與物件(包括陣列和函式)有乙個本質的區別。原始值是不可修改的,即沒有辦法改變原始值。對於數值和布林值,這一點很好理解:修改乙個數值的值沒什麼用。可是,對於字串,這一點就不太好理解了。因為字串類似字元陣列,我們或許認為可以修改某個索引位置的字元。事實上,j**ascript不允許這麼做。所有看起來返回乙個修改後字串的字串方法,實際上返回的都是乙個新字串。例如:
let s = "hello";
s.touppercase();
s
let s = "hello";
s.touppercase();
s
view code
1 let s = "hello";
2 s.touppercase();
3 s
let s = "hello"; s.touppercase(); s
1 let s = "hello";
2 s.touppercase();
3 s
view code
let s = "hello";
s.touppercase();
s
view code
1 let s = "hello";
2s.touppercase();
3 s
1 let s = "hello";
2 s.touppercase();
3 s
view code
let s = "hello";
s.touppercase();
s
let s = "hello";
s.touppercase();
s
let s = "hello";
s.touppercase();
s
let s = "hello";
s.touppercase();
s
let s = "hello";
s.touppercase();
s
檢視**let s = "hello";
s.touppercase();
s
let s = "hello";
s.touppercase();
s
- [ ] let s = "hello";
s.touppercase();
s
let s = "hello";
s.touppercase();
s
`let s = "hello";
s.touppercase();
s`
修改引用的值 與 修改引用
class program person p2 p1 p1.name bill p1 new person person p1 new person 解析 在棧上分配乙個變數p1,p1的型別為person 在堆上分配乙個person例項,該例項的name為andy 將p1 指向andy例項。pers...
字串常量不可修改,陣列可修改的原因
一般情況下,想要獲得字串str kuai lai xiu gai wo 中的某個字元可以通過類似陣列方式獲得,str i 但是卻不可以通過str i xx 來修改。除非切割字串或者轉換為陣列。var str beijing str 0 hahaha console.log str console.l...
可修改的雜湊
如果在乙個字串中要找是否存在長度為n的回文串 可以manachar 但是更好打的方式是直接hash 可是,這個hash需要算o len 個長度為n的字串的hash值 如果暴力,已經到了o n 2 的級別 那麼考慮一下,如何簡化。計算hash的o n 是不能省的 那麼不難想到利用前面串的結果來巧算後面...