在提示中指定变量类型

vin*_*c4f 0 javascript

而不是数字添加此代码正在进行字符串连接.如何在提示字段中指定输入的类型(例如:number,string).

var jonage = prompt("enter the johns age");
var jonHeight = prompt("enter the johns height");
var jonScore = jonHeight + jonage * 5;
console.log(jonScore);
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 5

prompt 是非常基本的,除了默认情况下浏览器的方式之外,没有办法限制输入(例如,没有换行符).

相反,之后将字符串转换为数字.有很多方法可以做到这一点:

  • 一元+:var jonage = +prompt("enter the johns age");
  • Number: var jonage = Number(prompt("enter the johns age"));
  • parseInt: var jonage = parseInt(prompt("enter the johns age"));
  • parseFloat: var jonage = parseFloat(prompt("enter the johns age"));

一元+Number:

......以同样的方式工作:

  • 如果可能,它们将整个字符串转换为数字,NaN如果整个字符串无法转换为数字,则会产生.所以+"123abc"NaN.
  • 他们将空字符串("")转换为0(令人惊讶).
  • 它们遵循用于指定数字基数(基数)的JavaScript语法,因此它+"0x10"是16并且+"0o10"8.

parseInt

  • 仅在第一个无效字符之前转换尽可能多的字符串,而不是整个字符串.所以parstInt("123abc")123.
  • 将空字符串("")转换为NaN(不0).
  • 尊重用于指定数字基数(基数)的JavaScript语法,例如,parseInt("0x10")为16.
  • 可以显式指定的基数作为第二个参数,以迫使它把输入在这个数字的基础是:parseInt("0x10", 10)0(因为x变得无效0x.不再为指示基数处理这用来为与小数重要如果最终用户输入的字符串一样"010"实行"遗产"八路(领导和浏览器0,而不是领先0o),但它已经8年了(因为第5版规范)自parseInt正式容许这样做.
  • 顾名思义,只有转换限定字符串的一部分整体数目(整数).

parseFloat

喜欢parseInt,但是是小数,不做基数前缀.parseFloat("0x16")0,因为它x是无效的(因为它不做基数前缀).