gpt4 book ai didi

javascript - switch 语句 - 字符串与整数

转载 作者:搜寻专家 更新时间:2023-11-01 04:45:59 24 4
gpt4 key购买 nike

我在事件处理程序中有这行 javascript:

var value =  event.currentTarget.value; //example: 9

然后我在 switch 语句中使用它。

switch (value) {

case 9:
return 12;
case 12:
return 9;
}

问题是“值”是一个字符串而不是一个整数。

我应该将其转换为 int 吗?

或者有没有办法将值作为 int 获取,比如使用 jQuery()?

或者我应该只在 switch 语句中使用字符串?

最佳答案

Or is there a way to get the value as an int, like say with jQuery()?

当然,这几乎总是一种语言或环境中提供的特性。在 JavaScript 中,有四种方式:

  1. parseInt 会将字符串解析为一个整数。 value = parseInt(value, 10) 会将其解析为十进制(例如,以 10 为底,这是我们大多数人使用的数字系统)。请注意,parseInt 将解析它在字符串开头找到的数字,忽略其后的任何内容。所以 parseInt("1blah", 10)1

  2. 如果字符串包含小数点,
  3. parseFloat 会将字符串解析为潜在小数(如 1.2)。它始终以 10 为基数工作。

  4. Number 函数:value = Number(value)。这期望 entire 字符串是一个数字,并通过查看字符串找出它的基数:默认为十进制,但如果它以 0x 开头,则为被解析为十六进制(基数 16),并且在某些处于松散模式的引擎上,如果它以 0 开头,则它被解析为八进制(基数 8)。无法强制它使用特定的数字基数。

  5. 通过对其应用数学运算符强制引擎隐式转换它;通常的是 +。所以:value = +value。这和 value = Number(value) 做的一样。奇怪的是,在某些引擎上,它往往比 Number 慢,但这并不重要。

例子:

parseInt("15", 10):  15
parseFloat("15"): 15
Number("15"): 15
+"15": 15

parseInt("1.4", 10): 1
parseFloat("1.4"): 1.4
Number("1.4"): 1.4
+"1.4": 1.4

parseInt("10 nifty things", 10): 10
parseFloat("10 nifty things"): 10
Number("10 nifty things"): NaN
+"10 nifty things": NaN

实时复制:

console.log(parseInt("15", 10));              // 15
console.log(parseFloat("15")); // 15
console.log(Number("15")); // 15
console.log(+"15"); // 15

console.log(parseInt("1.4", 10)); // 1
console.log(parseFloat("1.4")); // 1.4
console.log(Number("1.4")); // 1.4
console.log(+"1.4"); // 1.4

console.log(parseInt("10 nifty things", 10)); // 10
console.log(parseFloat("10 nifty things")); // 10
console.log(Number("10 nifty things")); // NaN
console.log(+"10 nifty things"); // NaN
.as-console-wrapper {
max-height: 100% !important;
}

关于javascript - switch 语句 - 字符串与整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21497075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com