检查 javascript 中的字符串值
Check for string value in javascript
在JS中,我们有两种方法可以检查给定的值是否为字符串:
function isString1(value) {
return typeof value === 'string';
}
function isString2(value) {
return Object.prototype.toString.call(value) === "[object String]";
}
哪个是有效的实施,为什么?
谢谢!
这取决于您是否要考虑使用 String
构造函数创建的字符串,例如
new String("hello");
第一种方法将为纯字符串返回 true
,为构造字符串返回false
:
typeof "hello" === "string" // true
typeof new String("hello") === "string" // false
而第二种方法在两种情况下都会返回true
:
Object.prototype.toString.call("hello") === "[object String]" // true
Object.prototype.toString.call(new String("hello")) === "[object String]" // true
使用构造字符串并不常见,因此对于大多数实际目的,使用更简单的方法就可以了。
还值得注意的是,如果有人修改Object.prototype.toString
,第二种方法的行为可能会改变(顺便说一下,这是一件邪恶的事情(。如果有人这样做,例如:
Object.prototype.toString = function(){ return "This is evil"; }
然后
Object.prototype.toString.call("hello") === "This is evil"
typeof
运算符已融入语法中,不容易受到这种可能性的影响。
相关文章:
- 将DOM节点值与字符串Javascript进行比较
- 到UpperCase字符串Javascript中的特定字符索引
- 替换字符串javascript中的所有特殊字符..
- 在数组中查找某些字符串(Javascript)
- 解析特定的字符串Javascript(Node.js)
- 从字符串 JavaScript 中过滤多个正则表达式
- 在字符串 JavaScript 中使用正则表达式替换
- 忽略字符串javascript中的字符
- 如何检查url是否包含多个字符串.Javascript/jquery
- 截断字符串JavaScript
- 计算字符串javascript中的某些单词
- 从'获取本月的最后一天;2015-02-23'字符串(javascript)
- 从字符串javascript中获取键值对
- 从路径字符串 - Javascript 获取所有父路径
- 在字符串Javascript中查找丢失的字母
- AngularJS:如何使所有ng模型都是字符串.JavaScript和长整数
- 将浮点转换为至少有一个小数点的字符串(javascript)
- 替换字符串 JavaScript 中的多个文本
- 检查另一个字符串 JavaScript 中一个字符串是否有任何字符的最佳方法
- 将变量的值包含在 href 字符串 javascript 中