Coffeescript:如何将string转换为数字?

我正在构build一个POST请求中发送的JSON对象。 此对象具有在发送之前需要从stringtypes转换为整数types的属性。 如何用咖啡文字做这个?

使用javascript parseInt函数。

 number = parseInt( stringToParse, 10 ); 

参考在这里 。

请记住,编译后,coffeescript就是javascript

您可以使用不太明显,更神奇,更less的键盘密集型操作符+:

 +"158" 

Javascript的parseInt函数将实现这一点。 请记住设置radix参数以防止混淆并确保可预测的行为。 (例如在咖啡上)

 myNewInt = parseInt("176.67", 10) 

MDN资源中有一些很好的例子: https : //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt

这在官方手册中还没有logging,但演员们似乎也是这样做的:

 myString = "12323" myNumber = (Number) myString 

我不推荐使用parseInt因为它在一种情况下是错误的 – 我发现:

 parseInt('09asdf', 10); #> return 09 which is not correct at all. It should return NaN 

正确的答案应该来自@Corkscreewe。 还有另一个:

 cleanInt = (x) -> x = Number(x) (if x >= 0 then Math.floor(x) else Math.ceil(x)) 

https://coderwall.com/p/cbabhg学习;

根据nXqd的回答中提到的链接,还可以通过将string乘以1隐式转换string:

 '123' * 1 // 123 

它对错误的input行为正确:

 '123abc' * 1 // NaN 

你也可以用浮游物做这个:

 '123.456' * 1 // 123.456 

我总是使用按位或将string转换为整数

 "99.999" | 0 // returns 99 

这是您需要的简单方法。 NaN将按预期返还。

 parseInt( "09asdf".match(/^\d+$/)?[0] ? NaN, 10) 
 stringToConvernt = "$13,452,334.5" output = Number(stringToConvernt.replace(/[^0-9\.]/g, '')) console.log(output) //The output is `13452334.5`.