數據類型之字符串篇

公佈上期答案:小駝峯咱們常常用在變量、函數名屬性名這樣的標識符身上。 而大駝峯的命名方式,咱們更多用在class(類)上。後端

這裏須要注意的是:「不是必定要這樣操做,而是一種默認的約定。瀏覽器

聽從這樣的方式命名,不容易一眼被看出來剛學習js哦~。函數

今天咱們要說的就是數據類型,新接觸的小夥伴對這個可能就以爲比較迷糊了,怎麼數據還有類型??性能

固然~上一期咱們介紹了變量,利用變量咱們能夠大量減小重複的代碼,不知道你們有沒有注意這個被存儲的值,但是不少變的~學習

例如:優化

var a = 'miaov';
var b = 20181217;
var c = true;
複製代碼

等等等...咱們會發現一會英文,一會數字。可是有的加引號,有的就不加??spa

這到底由於什麼呢?3d

這就是咱們今天要介紹的大主題:數據類型,接下來~就有請這個你們庭成員一位一位登場吧~code

數據類型大分類cdn

咱們把數據類型分爲兩個大類:

• 基本類型(簡單類型)

• 複雜類型(引用類型)

咱們來看看基本類型有多基本,複雜類型有多複雜~

有請第一位:

基本類型 - String

String類型是由0或者多個字符組成的,就像咱們吃燒烤,給全部食材串起來~因此咱們把String叫作字符串。

那咱們怎麼分辨什麼是字符串呢?你們注意看圖,串的先後都露出來籤。

咱們的字符串的先後也有一個標誌,就是——引號,字符串由一對雙引號("")或者單引號('')包裹,在這裏雙引號和單引號沒有差異~因此,如下兩種都是字符串的表現方式:

var a = "miaov";
var b = 'miaov';
複製代碼

這裏對於學習後端的同窗可能會不太習慣~由於在後端中,單引號和雙引號是不同的,單引號只能是字符。

可是在ECMAScript中是沒有差異的。須要額外注意的是符號必須是配對的,不能出現以下配對:

var str = 'miaov"; //左邊單引號 右邊雙引號,不配對
複製代碼

爲何要強調這個問題呢?由於有時候咱們想要存儲的字符串可能自己本身就帶有引號,像下面這樣:

//這是"miaov"的紅寶書系列  <-這是我想存的內容

var str = "這是"miaov"的紅寶書系列";  //錯誤的方式

var str = '這是"miaov"的紅寶書系列';  //這纔是正確的
複製代碼

若是又有雙引號又有單引號怎麼辦?

同窗,你思惟很活躍哦~

這時候咱們須要用到一個東西 —— 轉義。

轉義是一個 \ 咱們來看一下案例:

以上爲str中存儲值打印的截圖

字符串的特色

ECMAScript中的字符串是不可變的,也就是說你只要建立出來,它就不能被改變了,可是不少小夥伴以爲,不會啊:

var lang = "Java";
lang = lang + "Script";
複製代碼

這不就改過來了麼??(關於+號,咱們後面再說,這裏你們只要知道,它就是拼接的功能)

事實上在這裏,當咱們想要改變某個變量保存的字符串,首先,它是銷燬了原來的字符串的!!而後再用另外一個包含新值的字符串填充該變量的。

那麼上面這個案例它具體是怎麼個步驟呢?

來看一下

  • 第一步:建立一個能夠容納10個字符的新字符串

  • 第二步:在這個字符串中填充"Java"和"Script"

  • 第三步:銷燬原來的字符串"Java"和"Script",由於已經用不到了,咱們須要的是第一步時候建立的新字符串。

這個過程是發生在後臺的,咱們看不到,在某些舊版本的瀏覽器(指的是:IE六、低於1.0的Firefox等),由於這種頻繁的建立和銷燬,致使拼接字符串的性能不好,因此不少時候,咱們會選擇使用join方法。

不過在現代瀏覽器中對字符串的「+」運算作了優化,已經解決了這個問題,就能夠放心使用哦~

問題來了:那麼"+"的拼接方式仍是最慢的麼?知道的同窗趕忙留言哦~下期咱們揭曉答案!

下期預告

下期帶來基本類型 - Number,不是數字的數字類型等你來看~

相關文章
相關標籤/搜索