JavaScript数据类型:Typeof解释

2020年12月30日10:50:21 发表评论 38 次浏览

类型是一个JavaScript关键字, 当你调用它时将返回变量的类型。你可以使用它来验证函数参数或检查是否定义了变量。还有其他用途。

的类型运算符非常有用, 因为它是检查代码中变量类型的简便方法。这很重要, 因为JavaScript是动态类型语言。这意味着在创建变量时无需为变量分配类型。因为不以此方式限制变量, 所以其类型可以在程序运行时更改。

例如:

var x = 12345; // number
x = 'string'; // string
x = { key: 'value' }; // object

从上面的示例中可以看到, JavaScript中的变量可以在程序执行期间更改类型。作为程序员, 这可能很难跟踪, 这就是类型运算符很有用。

的类型运算符返回一个代表变量当前类型的字符串。你通过键入来使用它typeof(变量)or变量类型。回到上一个示例, 你可以使用它来检查变量的类型X在每个阶段:

var x = 12345; 
console.log(typeof x) // number
x = 'string'; 
console.log(typeof x) // string
x = { key: 'value' };
console.log(typeof x) // object

这对于检查函数中变量的类型并酌情继续操作很有用。

这是一个函数示例, 该函数可以接受字符串或数字这样的变量:

function doSomething(x) {
  if(typeof(x) === 'string') {
    alert('x is a string')
  } else if(typeof(x) === 'number') {
    alert('x is a number')
  }
}

另一种方式类型在尝试在代码中访问变量之前, 请确保已定义变量, 该操作符可能会很有用。如果你尝试访问未定义的变量, 这可以帮助防止程序中可能发生的错误。

function(x){
  if (typeof(x) === 'undefined') {
    console.log('variable x is not defined');
    return;
  }
  // continue with function here...
}

输出

类型

运算符可能并不总是你期望的数字。

数字可以变成值

NaN(不是数字)

由于多种原因。

console.log(typeof NaN); //"number"

也许你试图将一个对象与一个数字相乘, 因为你忘记了访问该对象内部的数字。

var x = 1;
var y = { number: 2 };
console.log(x * y); // NaN
console.log(typeof (x * y)); // number

检查数字时, 仅检查数字的输出是不够的

类型

对于一个数字, 因为

NaN

通过了这项测试。

此功能检查数字, 并且不允许

NaN

价值传递。

function isNumber(data) {
  return (typeof data === 'number' && !isNan(data));
}

即使认为这是一种有用的验证方法, 我们也要小心, 因为javascript有一些怪异的部分, 其中之一是类型超过特定说明。例如, 在javascript中, 很多东西仅仅是对象所以你会发现。

var x = [1, 2, 3, 4]; 
console.log(typeof x)  // object

console.log(typeof null)  // object
一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: