首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开关语句- string vs int

开关语句- string vs int
EN

Stack Overflow用户
提问于 2014-02-01 10:48:05
回答 3查看 4.7K关注 0票数 6

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

代码语言:javascript
复制
var value =  event.currentTarget.value; //example: 9

然后我用在一个开关语句中。

代码语言:javascript
复制
switch (value) {

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

问题是"value“是字符串而不是int。

我应该把这个变成整数吗?

或者,是否有一种方法可以获得int值,比如使用jQuery()?

还是应该在开关语句中使用字符串?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-01 10:54:06

或者,是否有一种方法可以获得int值,比如使用jQuery()?

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

  1. parseInt将把字符串解析为一个整数。value = parseInt(value, 10)将把它解析为十进制(例如,基数10,大多数人使用的数字系统)。请注意,parseInt将解析它在字符串开头找到的数字,忽略后面的任何内容。所以parseInt("1blah", 10)1
  2. 如果字符串包含小数点,parseFloat将将字符串解析为一个潜在的小数(如1.2)。它总是在基数10处起作用。
  3. Number函数:value = Number(value)。这要求整个字符串是一个数字,并通过查看字符串找出它的数字基数:默认值是十进制,但如果它以0x开头,则被解析为十六进制(基数16),在某些引擎上,如果它以0开头,则被解析为八进制(基数8)。没有办法强迫它使用一个特定的数字基。
  4. 通过将数学运算符应用于引擎,强制引擎隐式转换它;通常的方法是+。因此:value = +value.这和value = Number(value)做的一样。奇怪的是,在某些发动机上,它往往比Number慢,但还不够重要。

示例:

代码语言:javascript
复制
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

现场复印:

代码语言:javascript
复制
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
代码语言:javascript
复制
.as-console-wrapper {
    max-height: 100% !important;
}

票数 11
EN

Stack Overflow用户

发布于 2014-02-01 10:48:57

简单地使用+value,注意变量前面的+,并将变量转换为数字

代码语言:javascript
复制
switch (+value) {
    case 9:
        return 12;
    case 12:
        return 9;
}
票数 10
EN

Stack Overflow用户

发布于 2014-02-01 10:49:31

试试这个。parseInt()函数解析一个字符串并返回一个整数。

代码语言:javascript
复制
var value =  parseInt(event.currentTarget.value, 10); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21497075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档