我在事件处理程序中有这一行javascript:
var value = event.currentTarget.value; //example: 9然后我用在一个开关语句中。
switch (value) {
case 9:
return 12;
case 12:
return 9;
}问题是"value“是字符串而不是int。
我应该把这个变成整数吗?
或者,是否有一种方法可以获得int值,比如使用jQuery()?
还是应该在开关语句中使用字符串?
发布于 2014-02-01 10:54:06
或者,是否有一种方法可以获得int值,比如使用jQuery()?
当然,这几乎总是一种语言或环境中提供的特性。在JavaScript中,有四种方法:
parseInt将把字符串解析为一个整数。value = parseInt(value, 10)将把它解析为十进制(例如,基数10,大多数人使用的数字系统)。请注意,parseInt将解析它在字符串开头找到的数字,忽略后面的任何内容。所以parseInt("1blah", 10)是1。parseFloat将将字符串解析为一个潜在的小数(如1.2)。它总是在基数10处起作用。Number函数:value = Number(value)。这要求整个字符串是一个数字,并通过查看字符串找出它的数字基数:默认值是十进制,但如果它以0x开头,则被解析为十六进制(基数16),在某些引擎上,如果它以0开头,则被解析为八进制(基数8)。没有办法强迫它使用一个特定的数字基。+。因此: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;
}
发布于 2014-02-01 10:48:57
简单地使用+value,注意变量前面的+,并将变量转换为数字
switch (+value) {
case 9:
return 12;
case 12:
return 9;
}发布于 2014-02-01 10:49:31
试试这个。parseInt()函数解析一个字符串并返回一个整数。
var value = parseInt(event.currentTarget.value, 10); https://stackoverflow.com/questions/21497075
复制相似问题