js的话,从大学开始已经零零碎碎的学了很多,不管是看别人的博文,还是看w3school,或者看一些盗版的电子书。不过也就半调子的水平,要写个功能出来也会,但要代码写的漂亮,还是没到这种层次。后来接触了JQuery,这把小瑞士军刀确实好用,就快让我彻底忘记如何写js了。于是决定学习一下JQuery的源码,突然醒悟,已经看不懂js了。所以到皮皮上下载了一本《javascript权威指南》,我去,1k多页啊,慢慢啃吧。
考虑到目前web前端发展那么火,而且自己也挺喜欢这块,所以想打打基础。框架满天飞的年代,还是要把握基础啊!
从这篇博文开始,我要慢慢去啃js了,因为学过的东西肯定会忘记,所以记笔记是一定要的。并且把零碎知识记录在blog中,后续用搜索引擎查找也比较方便。Let’s go…
1、js整数
123是js中的直接量整数,十进制
同时js还支持十六进制,以0x或0X开头,例如:0xff表示十进制255;十六进制用0-9和字母a(A)-f(F)表示。
2、浮点数
表示方法[digits][.digits][(E|e)[(+|-)]digits]
例如:3.14
.1234
0.1234
6.043e23 //6.043 x 10^23
6.043e-23 //6.043 x 10^-23
3、运算
js支持+ – * /除法 和 %求余,同时可以使用Math对象定义的函数,后面文章会做笔记
js在运算溢出、下溢 或被0整除的时候不会报错。
当运算结果超过js所能表达的上限时,结果是一个特殊的无穷大 Infinity(英文infinity无穷,finity有限)
当负数无穷大时,为-Infinity
下溢,是指结果无限趋近0,并且比js可以表示的最小值还小,此时js会返回0
被0整除,会得到Infinity或-Infinity,但是0整除0是没有意义的,此时返回NaN
对Infinity进行运算操作,最终结果都是Infinity或者-Infinity
4、isNaN()和isFinity()方法
NaN是一个特殊的值,它不与任何值相等,包括自身,所以不能通过x==NaN来判断一个值是否为NaN,但是可以通过x!=x来判断。当值是NaN时,x!=x返回true,这也是isNaN()方法的原理;
类似的方法isFinity(),仅当值不是NaN,Infinity,-Infinity的时候返回true
5、浮点数精度
二进制浮点数表示法并不能准确的表示类似0.1这样的十进制小数,例如:
var x = .3 - .2; var y = .2 - .1; x == y //false x == .1 //false y == .1 //true
这种舍入误差并非仅在js中有,但是js提供的精度已经足够用于计算,只有在比较大小时,会出现这种不等的情况。