跳到主要内容
CNode

如何用最简洁的方式检验一个对象是否为字符串?

问答
DdaGaiGuanYu发布于 5 年前最后回复 5 年前
831770

怎样检验字符串最简洁?

假设写一个函数 isString,应满足:

  • isString('') == true
  • isString(new String()) == true
  • isString(new (class extends String {}) == true
  • isString(undefined) == false
  • isString(null) == false
查看回复

回复 (8)

D
daGaiGuanYu#85 年前
引用 zhangxh1023我挺好奇 new String('str') 和 'str' 是同一个东西吗。。。

@zhangxh1023 不是

typeof('str') // string
typeof(new String('str')) // object
R
raoyaoiau#75 年前

image.png

underscore里有的,node库里也有的。

Z
zhangxh1023#65 年前

我挺好奇 new String('str') 和 'str' 是同一个东西吗。。。

M
myy#45 年前

用 Object.prototype.toString.call(str) == '[object String]'

这个办法不仅可以用于 string,对于其他的任意类型都可以准确判断。

R
rrbe#25 年前

typeof str === 'string' 就可以了,string 是原始类型,你用 instanceOf String 没用的

D
daGaiGuanYu#15 年前
function isString(str) {
  return str instanceof String || str != null && str != undefined &&  str.constructor == String
}

这样可以吗,老哥们

参与回复

登录后即可参与回复。登录