如何正确找出 javascript 中的类型?
How to properly find out type in javascript?
在此代码示例中:
level.js:
class Level {
setLevel(level) {
// if (typeof level === "number") {
if (level.constructor === Number) {
this._level = level;
}
}
getLevel() {
return this._level;
}
}
module.exports = Level;
index.js:
const Level = require("./level");
let l = new Level();
l.setLevel(3);
console.log(l.getLevel());
我有 2 个获取输入变量类型的选项 level
:typeof
或 [var].constructor
。由于 JS 是原型语言,对我来说使用带有构造函数的语言似乎更直接。因为每个变量都有一个 a 它决定了它的真实类型。那为什么大家都用typeof
然后比较它的字符串结果呢? (因此仅限于原始类型,而构造函数可以使用 custom/class 变量)
.constructor
是可变的
参见:
instanceof
还检查“继承的”构造函数
参见:Difference between instanceof and constructor property
在此代码示例中:
level.js:
class Level {
setLevel(level) {
// if (typeof level === "number") {
if (level.constructor === Number) {
this._level = level;
}
}
getLevel() {
return this._level;
}
}
module.exports = Level;
index.js:
const Level = require("./level");
let l = new Level();
l.setLevel(3);
console.log(l.getLevel());
我有 2 个获取输入变量类型的选项 level
:typeof
或 [var].constructor
。由于 JS 是原型语言,对我来说使用带有构造函数的语言似乎更直接。因为每个变量都有一个 a 它决定了它的真实类型。那为什么大家都用typeof
然后比较它的字符串结果呢? (因此仅限于原始类型,而构造函数可以使用 custom/class 变量)
.constructor
是可变的
参见:instanceof
还检查“继承的”构造函数
参见:Difference between instanceof and constructor property