在Javascript中更改数据类型

Col*_*ler 0 javascript

我是javascript的新手,对整个编程来说相对较新.我一直在理解javascript的机制,但是我在以下情况下难以理解:

var dataTypes = {
  string1: "Test",
  string2: "Test",
  number1: 4,
};

console.log(typeof dataTypes.number1);
console.log(" ");

for (var x in dataTypes) {
  console.log(typeof x);
  if ((typeof x) === "string") {
    console.log(dataTypes[x]);
  } else {
    //
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我的控制台显示以下内容:

number 

string
Test
string
Test
string
4
Run Code Online (Sandbox Code Playgroud)

我很困惑,dataTypes.number1从数字数据类型到字符串.如果有人可以花时间详细说明我做错了什么,并解释,那将是美好的.

Aln*_*tak 8

您的变量x是与每个键/值对关联的键(而不是值)dataTypes.因此总是一个字符串.

你需要检查一下typeof dataTypes[x].