理解javascript类型

时间:2016-11-11 22:43:02

标签: javascript typeof

这是一个非常基本的问题,因为我是javascript的新手但是在我理解这个小东西之前我不能继续前进。

我有这个功能..

function stringOrNot() {
  var input = prompt('Input something here');

  if (typeof input != 'string') {
    alert("That is not a string!");

  } else {
    alert("That is a string!");
  }
}

stringOrNot();

问题
我需要输入什么来获取警报"这不是字符串"?
哪种输入不是字符串?

无论我输入什么,我都会得到这个字符串!'返回。

也是这个功能......

function stringOrNot() {
  var input = prompt('Input something here');

  if (typeof input != 'string') {
    alert("That is not a string!");
  } else (typeof input == 'string'){
    alert("That is a string!");
  }
}

stringOrNot();

这会返回控制台错误

  

"语法错误:意外的令牌' {'。解析错误。"

为什么我不能写这样的if和else条件?

请有人解释这些小问题的答案,以便我继续前进!提前谢谢你并原谅我,我对编码很陌生。

::)

嗨再次..更新和另一个问题。

我之初提出问题的原因是因为一个代码学习的功能练习,结论是......

function countE(){     var phrase = prompt("您要检查哪个短语?");

if (typeof(phrase) != "string"){
  alert("This is not a valid entry!");
  return false;
} else {

  var eCount = 0;
  for (var i = 0; i < phrase.length; i++){
      if (phrase.charAt(i) === 'e' || phrase.charAt(i) === 'E')
      eCount++;
      }
    }

      alert(eCount);
      return true;

}

countE()

所以..我想测试什么不是字符串,我想得到警告&#34;这不是一个有效的条目!&#34;。

但是,如果提示只返回一个字符串,那么为什么这个&lt;&lt; if(typeof(phrase)!=&#34; string&#34;)&gt;&gt;包含在函数中?

3 个答案:

答案 0 :(得分:3)

  

我需要输入什么来获取警报“那不是字符串”?哪一个   那种输入不是字符串?

prompt的结果始终为string。因此,您无法向prompt提供任何可能导致其他类型的输入。 prompt始终返回一个字符串。

有关更正式的方法,请查看here

答案 1 :(得分:1)

  

我需要输入什么来获取警报“那不是字符串”?哪种输入不是字符串?

不是字符串的东西包括数字,对象和布尔值。

prompt函数的返回值始终是一个字符串。 if函数的目的是获取用户输入的字符串。

  

为什么我不能写这样的if和else条件?

else有条件。如果条件不满足会发生else

您正在为if提供条件,这是没有意义的。

您可以使用另一个} else if (something) { 语句:

position: fixed

答案 2 :(得分:1)

对于stringOrNot(),你的else语句中有一个条件。如果你想要一个条件,请使用else if(){}。

function stringOrNot() {

var input = prompt('Input something here');

if (typeof input != 'string') {
    alert("That is not a string!");

  } else if (typeof input == 'string'){
    alert("That is a string!");
  }
}

请查看以下内容以获取更多信息

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else

编辑问题2:

您包括检查提示,因为它也可以返回空值(当用户单击退出时)。因此,当用户单击“取消”时,“这不是有效条目!”会出现。