048_String对象
1. String對象
1.1. String是對原始字符串的包裝對象。
1.2. 創建String對象的語法:
var myStr = new String(s);1.3. 參數s是要存儲在String對象中的字符串。
1.4. 當String()和運算符new一起作為構造函數使用時, 它返回一個新創建的String對象, 存放的是s的字符串表示。
2. String對象屬性
3. String對象方法
4. 使用字面量創建字符串和String對象創建字符串
4.1. 使用字符串字面量創建字符串和String對象創建字符串
var str1 = new String('hello china'); // 使用String對象創建字符串 var str2 = 'hello china'; // 使用字符串字面量創建字符串4.2. 使用字面量創建字符串和String對象創建字符串的不同
4.2.1. 使用字面量創建的字符串是原始值, 儲存在棧中。
4.2.2. 使用String對象創建的字符串是對象(引用類型), 儲存在堆中。
4.2.3. 字符串字面量和String對象創建字符串的內存結構:
4.2.4. 使用對象創建字符串比使用字符串字面量創建字符串復雜的多(就是因為String對象多執行了一個String()構造函數), 執行效率低, 因此我們通常使用字符串字面量創建字符串。
4.2.5. 使用==運算符判斷使用字面量和String對象創建的相同值的字符串是否相等時, 結果是true, 因為字符串內容相同。
4.2.6. 使用===運算符判斷使用字面量和String對象創建的相同值的字符串是否相等時, 結果是false, 因為字符串雖然內容相同, 但類型不同, 一個是字符串, 一個是對象。
5. 字符串原始值可以使用String對象的屬性和方法
5.1. 字符串原始值, 比如"hello china", 無法擁有屬性和方法, 因為它們不是對象。
5.2. 但是通過JavaScript, String對象的屬性和方法也可用于原始字符串, 因為在執行屬性和方法時JavaScript將原始字符串視為偽對象。
5.3. 需要注意的是, JavaScript的字符串是不可變的(immutable), String類定義的方法都不能改變字符串的內容。像toUpperCase()這樣的方法, 返回的是全新的字符串, 而不是修改原始字符串。
6. String對象重寫了Object對象的constructor: ? String()屬性, 和toString()、valueOf()這兩個方法。
7. toString()方法
7.1. toString()方法返回字符串。
7.2. 語法
stringObject.toString()8. valueOf()方法
8.1. valueOf()方法可返回String對象的原始值。
8.2. 語法
stringObject.valueOf()8.3. String對象的toString()方法和valueOf()方法是一樣的。
9. 例子
9.1. 代碼
<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="utf-8" /><title>String對象</title></head><body><script type="text/javascript">var str1 = new String('hello china');var str2 = 'hello china';document.write('str1 = ' + str1 + '<br />');document.write('str2 = ' + str2 + '<br />');document.write('(str1 == str2) = ' + (str1 == str2) + '<br />');document.write('(str1 === str2) = ' + (str1 === str2) + '<br />');document.write('(str1.valueOf() === str2) = ' + (str1.valueOf() === str2) + '<br />');document.write('(typeof str1) = ' + (typeof str1) + ', (typeof str1.valueOf()) = ' + (typeof str1.valueOf()) + '<br />');document.write('(typeof str2) = ' + (typeof str2) + ', (typeof str2.valueOf()) = ' + (typeof str2.valueOf()) + '<br />');document.write('(str1.toString() === str2) = ' + (str1.toString() === str2) + '<br />');document.write('(typeof str1) = ' + (typeof str1) + ', (typeof str1.toString()) = ' + (typeof str1.toString()) + '<br />');document.write('(typeof str2) = ' + (typeof str2) + ', (typeof str2.toString()) = ' + (typeof str2.toString()) + '<br />');</script></body> </html>9.2. 效果圖
總結
以上是生活随笔為你收集整理的048_String对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 071_设置日期方法
- 下一篇: 049_Number对象