首页 文章

理解javascript类型

提问于
浏览
2

这是一个非常基本的问题,因为我是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();

Question
我需要输入什么来获取警报"That is not a string"?
哪种输入不是字符串?

无论我输入什么,我都会得到'那是一根绳子!'回 .

还有这个功能......

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();

这会返回一个控制台错误

“SyntaxError:意外的令牌'{' . 解析错误 . ”

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

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

::)

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

我最初的问题的原因是因为一个codeschool.com函数练习,结论是......

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()

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

但是,如果提示只返回一个字符串,那么为什么这个<< if(typeof(phrase)!=“string”)>>包含在函数中?

3 回答

  • 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:

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

  • 1

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

    prompt 的结果总是 string . 因此,没有任何输入可以提供给 prompt ,这可能导致不同的类型 . prompt 总是返回一个字符串 .

    如需更正式的方法,请查看here .

  • 3

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

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

    prompt 函数的返回值将 always 为字符串 . prompt 函数的目的是获取用户输入的字符串 .

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

    if 有条件 . else 如果不满足条件会发生什么 .

    你正在为 else 提供一个条件,这是没有意义的 .

    您可以使用另一个 if 语句:

    } else if (something) {
    

相关问题