<script type="text/javascript">
function saveName (firstName) {
function capitalizeName () {
return firstName.toUpperCase();
}
var capitalized = capitalizeName();console.log(capitalized instanceof String);
return capitalized;
}
console.log(saveName("Robert")); // Returns "ROBERT"
</script>
Run Code Online (Sandbox Code Playgroud)
题:
我想检查大写的类型,所以我使用capitalized instanceof String?但它显示:false在控制台中,我不想尝试capitalized instanceof Function,Object...这将花费太多时间,那么检测变量类型的最佳方法是什么?
Fas*_* kk 21
使用typeof();
例子:
> typeof "foo"
"string"
> typeof true
"boolean"
> typeof 42
"number"
Run Code Online (Sandbox Code Playgroud)
所以你可以这样做:
if(typeof bar === 'string') {
//whatever
}
Run Code Online (Sandbox Code Playgroud)
请记住,typeof 仅适用于返回“原始”类型:数字、布尔值、对象、字符串。您还可以使用instanceof来测试对象是否属于特定类型。
function MyObj(prop) {
this.prop = prop;
}
var obj = new MyObj(10);
console.log(obj instanceof MyObj && obj instanceof Object); // outputs true
Run Code Online (Sandbox Code Playgroud)
Lan*_*opp 16
最好的方法是使用typeof关键字.
typeof "hello" // "string"
Run Code Online (Sandbox Code Playgroud)
该typeof操作映射操作数以六个值之一:"string","number","object","function","undefined"和"boolean".该instanceof方法测试所提供的函数的原型是否在对象的原型链中.
这篇Wikibooks文章以及这篇MDN文章在总结JavaScript类型方面做得非常好.
min*_*eek 12
2021+ 一字答案。
我最喜欢的方式是不使用typeof
为什么? 因为它不给出除布尔、字符串、数字和函数之外的真实类型。
然后呢?
这是使用的小实用函数Object.prototype
var trueTypeOf = (obj) => Object.prototype.toString.call(obj).slice(8, -1).toLowerCase()
Run Code Online (Sandbox Code Playgroud)
结果:
trueTypeOf([]); // array
trueTypeOf({}); // object
trueTypeOf(''); // string
trueTypeOf(new Date()); // date
trueTypeOf(1); // number
trueTypeOf(function () {}); // function
trueTypeOf(/test/i); // regexp
trueTypeOf(true); // boolean
trueTypeOf(null); // null
trueTypeOf(); // undefined
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14363 次 |
| 最近记录: |