【javascript】字符串及判斷方法

  1. 字符串是不可變的。函數

  2. 每一個字符是一個16位的UTF-16編碼單元,這意味着一個Unicode字符至關於一個或兩個JavaScript字符。編碼

字符串字面量

即用單引號雙引號括起來的字符序列。spa

'string text'
"string text"
"中文 español English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어"

字符串對象

new String(thing)

String()構造函數獲得字符串對象prototype

> var s = new String(123)
> typeof s
'object'
>

對原始字符串和 String 對象的區分

區分二者很簡單。code

  1. 字符串字面量 以及 String()函數做爲普通函數調用時的返回值,這兩種狀況下獲得的是字符串原始值。對象

  2. 判斷字符串原始值方法爲typeof 'xxx',獲得‘string’,即ip

    > typeof 'ad'
    'string'    // 字符串原始值
  3. new String()構造器函數獲得的是字符串對象。字符串

  4. 判斷字符串對象的方法也爲typeof 'xxx', 獲得‘object’,即string

    > var s = new String(123)
    > typeof s
    'object'    // 字符串對象
    >
  5. 最重要一點,字符串原始值也能夠調用字符串對象所具備的方法,由於JavaScript內部會自動將字符串原始值轉化爲字符串對象,以調用相關方法,而後恢復。it

判斷某值是否爲字符串

判斷某值是否爲字符串原始值或字符串對象

function isString (value) {
    return Object.prototype.toString.call(value) === '[object String]';
}

判斷某值是否爲字符串原始值

function isStringPrimitive (value) {
    return typeof value === 'string';
}

判斷某值是否爲字符串對象

function isString (value) {
    return Object.prototype.toString.call(value) === '[object String]' && typeof value === 'object';
}
相關文章
相關標籤/搜索