不可修改的原始值與可修改的物件引用

2022-09-23 00:12:18 字數 1599 閱讀 9332

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 是不能省的 那麼不難想到利用前面串的結果來巧算後面...