《Javascript - The Definitive Guide》阅读杂记一

轻松的转换字符串为数字

标准的你可以这么写

var total = parseInt("12",10) + 2; //用parseInt转换目标为数字,别忘了第二个参数(进制)

其实你还可以

var total = "12" * 1 + 2; //乘法之后自动转换为数字
var total = "12" - 0 + 2; //减法之后自动转换为数字

不过虽然方便,也只可酌情使用 hahahah 另外最近了解到两种其他的转换方式:

  • 用一元操作符(unary)+,具体的例子可以看这里。然后我发现mootools里面早就用了类似的代码,倒是我到现在才发现return +new Date;
  • 使用零填充右移位操作符(Right shift with zero extension)可以看lifesinger将任意值转换为自然数

注意parseInt的第二个参数

之前文章有提到过,这个可是重大的陷阱之一。parseInt可以带入第二个参数,表示以何种进制来解析目标字符串。如果不带参数2,遇到某些以0开头的字符串,就会得到错误的值(如果字符串以0开头(不包括0x或者0X),parseInt会默认使用8进制来解析。)。例如

parseInt("077"); //我的目的是想转换成77,但是输出结果确是63
parseInt("077",10); //设定第二个参数为10,强制采用十进制,这回正确了

5 Responses to 《Javascript - The Definitive Guide》阅读杂记一

  1. gravatar wayneReplyMar 19, 15:23

    呃....你发文章的频率越来越赶不上你换主题的频率了...
    PS: 我很喜欢上面那三片儿云

  2. gravatar fireyyReplyMar 19, 15:31

    估计是强迫症,现在做主题的成了自我提升的唯一途径,工作基本上都是体力活... :(

  3. gravatar old9ReplyMar 19, 16:42

    又换皮啦,围观

    gravatar fireyyReplyMar 21, 0:42

    @old9, 我还等着看你的blog更新咧,有想法恢复么? hahahah

    gravatar old9ReplyMar 21, 17:46

    @fireyy, 谢谢关心啊 hahahah 目前就这么凑合着吧,平时也不写啥东西,而且feed是全文的,恢不恢复也无所谓了,呵呵。

Leave a Reply

Email address is not published

You should say a Chinese word to pass spam check. If you can not input Chinese, just copy 你好 and paste them into comment text box.

www.eYongs.com (mt) mediatemple