【javascript】字符串及推断要领

  1. 字符串是不可变的。

  2. 每一个字符是一个16位的UTF-16编码单位,这意味着一个Unicode字符相当于一个或两个JavaScript字符。

字符串字面量

即用单引号双引号括起来的字符序列。

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

字符串对象

new String(thing)

String()组织函数获得字符串对象

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

对原始字符串和 String 对象的辨别

辨别二者很简单。

  1. 字符串字面量 以及 String()函数作为一般函数挪用时的返回值,这两种情况下获得的是字符串原始值。

  2. 推断字符串原始值要领为typeof 'xxx',获得‘string’,即

    > typeof 'ad'
    'string'    // 字符串原始值
  3. new String()组织器函数获得的是字符串对象。

  4. 推断字符串对象的要领也为typeof 'xxx', 获得‘object’,即

    > var s = new String(123)
    > typeof s
    'object'    // 字符串对象
    > 
  5. 最主要一点,字符串原始值也能够挪用字符串对象所具有的要领,由于JavaScript内部会自动将字符串原始值转化为字符串对象,以挪用相干要领,然后恢复。

推断某值是不是为字符串

推断某值是不是为字符串原始值或字符串对象

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';
}
    原文作者:Tammy
    原文地址: https://segmentfault.com/a/1190000007587622
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞