在您看来,您遇到的最令人惊讶,奇怪,奇怪或真正的"WTF"语言功能是什么?
每个答案只能有一个功能.
如何parseInt()
以及Number()
将字符串转换为数字时不同的表现?
数字字符串'5'
var num_str = '5';
Run Code Online (Sandbox Code Playgroud)
如何解析Int并让下面的答案同时正确?
{{num_str + 1}} // 6
{{num_str - 1}} // 4
Run Code Online (Sandbox Code Playgroud)
parseInt不能在Angular表达式中使用,
{{parseInt(num_str) - 1}}
Run Code Online (Sandbox Code Playgroud)
数字过滤器不能做加减,
{{num_str - 1 | number}}
Run Code Online (Sandbox Code Playgroud)
如果有人有有用的建议,我将非常感谢你
在JavaScript的parseInt函数中将基数默认为8(如果字符串以0开头)让我烦恼,只因为我继续忘记将可选的第二个参数传递为10.我正在寻找答案告诉我为什么它有意义默认为8.
我正在研究javascript,我似乎发现这很奇怪,javascript函数parseInt('08')返回0而parseInt('07')返回7.
这种行为似乎在Firefox中存在.
parseInt('08')在IE中返回8,但在Firefox中返回0 ..
为什么?我希望parseInt('08')按预期返回8,并进入IE.
我一直在研究javascript函数,通过声明年,月和日来设置日期对象.但是,当月份的值为08
或时09
,0
将在使用时返回parseInt()
.见下文:
parseInt("01") //returns 1
parseInt("02") //returns 2
parseInt("03") //returns 3
parseInt("04") //returns 4
parseInt("05") //returns 5
parseInt("06") //returns 6
parseInt("07") //returns 7
parseInt("08") //returns 0?
parseInt("09") //returns 0?
parseInt("10") //returns 10
Run Code Online (Sandbox Code Playgroud)
我创建了一个jsFiddle来演示这个问题:
为什么parseInt("08")
和parseInt("09")
回报0
?
这里非常困惑.
parseInt("09")= 0
但
parseInt("9")= 9
为什么前缀为零不仅被剥离了?
警报(parseInt函数( "01")); = 1
.. 愤怒退出
在Javascript中,将字符串转换为数字的可靠方法之一是Number
构造函数:
var x = Number('09'); // 9, because it defaults to decimal
Run Code Online (Sandbox Code Playgroud)
受这个问题的启发,我开始疑惑 - 上面和之间的区别是什么:
var x =new Number('09');
Run Code Online (Sandbox Code Playgroud)
Number
当然看起来更好,但似乎对构造函数的使用略显不合适.没有新的使用它是否有任何副作用或任何差异?如果没有区别,为什么不,新的目的是什么?
试试这个:
var num = 040;
console.log(num); // 32
Run Code Online (Sandbox Code Playgroud)
从什么时候开始40 = 32?
document.write(parseInt("07"));
Run Code Online (Sandbox Code Playgroud)
产生"7"
document.write(parseInt("08"));
Run Code Online (Sandbox Code Playgroud)
产生"0"
这对我来说是个问题(抱歉这个唠叨,我必须或者我不能提交问题).任何人都知道为什么它是愚蠢的或者是否有更好的功能?