【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';
}
相关文章
相关标签/搜索