JS中的單引號和雙引號的區別


JS中的單引號和雙引號的區別

一、總結

一句話總結:

1、引號(同類型的引號,單引號和雙引號是不同類型)是成雙對的,在讀第一個引號時開始,讀到第二個結束,遇到第三個又開始,第四個又結束。。。;
2、不同類型引號之間可以嵌套,最多2層(當然通過轉義可以繼續往下套,但是因為可讀性太差,不要這樣做)

 

 

二、JS中的單引號和雙引號

轉自或參考:JS中的單引號和雙引號
https://www.cnblogs.com/ranyonsue/p/7761487.html

JS里面的單引號和雙引號可以同時使用,但是要遵循一定的准則。

最外面用了雙引號了,那么里面就不能再用雙引號了,因為引號是成雙對的,瀏覽器讀到一個雙引號后,到第2個雙引號時才算結束;同理,瀏覽器讀到一個單引號后,必須要讀到第二個單引號才算結束,

 

不管是單引號還是雙引號,里面都可以套相反的引號,但是不可以雙引號里面套單引號,這個單引號再套雙引號,這是不行的。

 

如果在引號里面使用相同的引號,需要用 \ 轉義。

單引號轉義為\'

單引號轉義為\"

 

單引號和雙引號之間的字符串可以相加

'af'+"bvvv"+'dd'

輸出 "afbvvvdd"

 

還有一種情況,,這里的單引號也是字符串的一部分

"<div class='con"+"tent'></div>"

輸出 "<div class='content'></div>"

 

從代碼編譯的角度說的話,單引號在JS中被瀏覽器(IE,Chrome,Safari)編譯的速度更快(在FireFox中雙引號更快)。

 

來看一些案例

首先,單引號和雙引號在各自單獨用時是木有什么區別的,都可以,比如:

var a="你好";//雙引號,變量a的內容是字符串  你好

var b='你好';//單引號,變量b的內容是字符串  你好

console.info(a===b);//輸出true,它們本質都是一樣的字符串

 

其次,單引號和雙引號混合使用時,這時候要特別注意了,這種情況一般出現在js拼接字符串里面,或者html元素的屬性里面,就以JS為例吧,都是一樣的規則:單引號和雙引號必須成雙成對的出現,可以單引號在外面,也可以雙引號在外面:

var a="'你好'";//這里變量a的內容就是字符串'你好',這里的單引號也是字符串的一部分

var b='"你好"';//這里變量b的內容就是字符串"你好",這里的雙引號也是字符串的一部分

console.info(a===b);//輸出false,它們不是一樣的字符串

 

接下來來個稍微復雜點的,我們來看下字符串拼接:

var _html="<div class='content'></div>";/*這里是最外面用了雙引號了,那么里面就不能再用雙引號了,因為引號是成雙對的,瀏覽器讀到一個雙引號后,到第2個雙引號時才算結束;同理,瀏覽器讀到一個單引號后,必須要讀到第二個才算結束*/

//上面的代碼也可以寫作:_html='<div class="content"></div>';

//如果你只想用一種引號的話,你級需要對里面的引號進行**轉義處理**,告訴瀏覽器里面的引號是一個字符串,而不是引號結束符,比如:

_html='<div class=\'content\'></div>';

 

再來個拼接字符串的:

var data={name:"小明",age:18};

var _html="<div class='info'>我的名字叫"+data.name+",我今年"+data.age+"歲了<div>"

console.info(_html);//我的名字叫小明,我今年18歲了

//很明顯了,按照之前說的,引號在讀到首個雙引號字符串的時候,把它當做這個變量的

//內容開始處理,然后到第二個雙引號那里結束,即: "<div class='info'>我的名字叫"

/*然后通過加號拼接變量 data.name,  拼接好了后繼續用加號拼接字符串 ",我今年"

以此類推。。。 

 

一個特別復雜的例子

想要輸出這段HTML

<template v-for="aodo in aodos">
      <li class="mui-table-view-cell" v-bind:fundcodeli="aodo.assetCode">
          <span class="column-a" v-text="aodo.assetName.substring(0,6)"></span>
          <span class="column-b" v-text="aodo.setupDate.substring(0,4)+'-'+aodo.setupDate.substring(4,6)+'-'+aodo.setupDate.substring(6,8)"></span>
          <span class="column-c" v-text="aodo.investType.substring(0, aodo.investType.length - 2)"></span>
          <span class="column-d mui-icon mui-icon-closeempty"></span>
    </li>
</template>

JS里面必須這樣寫:

var str="<template v-for='aodo in aodos'><li class='mui-table-view-cell' v-bind:fundcodeli='aodo.assetCode'><span class='column-a' v-text='aodo.assetName.substring(0,6)'></span><span class='column-b' v-text='aodo.setupDate.substring(0,4)"+'+"-"+'+"aodo.setupDate.substring(4,6)"+'+"-"+'+"aodo.setupDate.substring(6,8)'></span><span class='column-c' v-text='aodo.investType.substring(0, aodo.investType.length - 2)'></span><span class='column-d mui-icon mui-icon-closeempty'></span></li></template>";
fundListUl.innerHTML = str;

 

**總結下**:引號(同類型的引號,單引號和雙引號是不同類型)是成雙對的,在讀第一個引號時開始,讀到第二個結束,遇到第三個又開始,第四個又結束。。。;

不同類型引號之間可以嵌套,最多2層(當然通過轉義可以繼續往下套,但是因為可讀性太差,不要這樣做);

*/

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM