国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關于""創建字符串和new String創建字符串

GT / 2510人閱讀

摘要:當使用時,基本字符串和字符串對象也會產生不同結果,會將基本字符串作為源代碼處理,而字符串對象則被看作對象處理,返回對象。利用方法,我們可以將字符串對象轉換為其對應的基本字符串。

筆試的時候總會遇到string 和 new String相關的問題,匯總一下
var s1 = "abc"
var s2 = String("abc")
var s3 = new String("abc")
var s4 = new String("abc")

console.log("s1 == s2", s1 == s2)  //true
console.log("s1 === s2", s1 === s2) // true
console.log("s1 == s3", s1 == s3)  //true
console.log("s1 === s3", s1 === s3) //false
console.log("s2 == s3", s2 == s3)   //true
console.log("s2 === s3", s2 === s3) //false
console.log("s3 == s4", s3 == s4)  //false
console.log("s3 === s4", s3 === s4)  //false

瀏覽器中運行截圖如下:

上述字符串創建的三種形式,用“”創建是字符串字面量(通過單引號或者雙引號定義)和直接調用String(不用new)生成的字符串都是基本字符串(可以理解為兩種方式一樣),使用new String創建的字符串為字符串對象。

基本字符串和字符串對象的區別

JavaScript會自動將基本字符串轉換為字符串對象,只有將基本字符串轉化為字符串對象后才可以使用字符串對象的方法。當基本字符串需要調用一個字符串對象才有的方法或者查詢值的時候(基本字符串沒有這些方法),JavaScript會自動將基本字符串轉化為字符串對象并且調用相應的方法或執行查詢。

當使用eval時,基本字符串和字符串對象也會產生不同結果,eval會將基本字符串作為源代碼處理,而字符串對象則被看作對象處理,返回對象。

s1 = "2 + 2";               // creates a string primitive
s2 = new String("2 + 2");   // creates a String object
console.log(eval(s1));      // returns the number 4
console.log(eval(s2));      // returns the string "2 + 2"

利用 valueOf 方法,我們可以將字符串對象轉換為其對應的基本字符串。

console.log(eval(s2.valueOf())); // returns the number 4

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/85197.html

相關文章

  • 關于String.intern()new StringBuilder("").

    摘要:對比較返回是因為這個字符串在執之前已經出現過,字符串常量池中已經有它的引用了,不符合首次出現的原則,而計算機軟件這個字符串則是首次出現的,因此返回。 在《深入理解Java虛擬機》書中,提到在jdk1.7的版本中用String.intern()返回引用。 public class RuntimeConstantPoolOOM { public static void main(S...

    derek_334892 評論0 收藏0
  • 為什么不建議在for循環中使用"+"進行符串拼接

    摘要:使用可以方便的對字符串進行拼接。該方法使用進行聲明,說明是一個線程安全的方法。所以,阿里巴巴開發手冊建議循環體內,字符串的連接方式,使用的方法進行擴展。但是,還要強調的是如果不是在循環體中進行字符串拼接的話,直接使用就好了。 摘要: 學習阿里巴巴Java開發手冊。 原文:為什么阿里巴巴不建議在for循環中使用+進行字符串拼接 微信公眾號:Hollis Fundebug經授權轉載,...

    caoym 評論0 收藏0
  • 從指令的角度看"abc"new String("abc")

    摘要:但是有一個的指令,可以把字節碼翻譯成人類能看懂的東西。是文件分解器,可以反編譯即對編譯的文件進行反編譯,也可以查看編譯器生成的字節碼。現在有一個類,定義入下先用編譯成字節碼,再使用進行反編譯。 概要 Java工程師面試官偏愛的問題之一,就是abc和 new String(abc)的區別是什么?回答的比較好的會帶出Java堆,棧,常量池,引用等概念。但今天不止如此,我們從指令的角度,去看...

    doodlewind 評論0 收藏0
  • Java日期格式化

    摘要:瞬間可用毫秒值來表示,它是距歷元即格林威治標準時間年月日的,格里高利歷的偏移量。創建對象常用方法返回當前對象的一些日期信息獲得當前日期的對象根據日歷的規則,為給定的日歷字段添加或減去指定的時間量。日期格式化前言Date類表示特定的瞬間精確到毫秒,不過從API可以看出很多的方法已經廢棄了,這個類已經在過多使用了,不過還是需要了解一下的,為了后面的學習做鋪墊構造方法new Date()long ...

    PingCAP 評論0 收藏0
  • 關于"a"+"b"共創建了幾個對象的問題

    摘要:首先,我們先看下以下代碼的輸出情況將這段代碼反編譯后得到如下結果重點是這句,可以發現從一開始就是一個整體,這是因為在編譯時就去掉其中的加號,直接將其編譯成一個相連的結果存入了常量池,而不是等到運行時再去進行相加,所以運行結果為結論只創建了一 首先,我們先看下以下代碼的輸出情況 String s = a + b; System.out.println(s == ab); // true...

    lavor 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<