字说起从数
数字
数学,数学中数字分成很多类别
1,3,5,7,9叫整型
1.2,0.15, 3.14等这类叫小数
-1,-10等这类叫负数
....
进制
在javascript中数学中数字只有一个类别就叫数字(Number),但是在js中有几种表示法,根据进制不同分成10进制(最常见的),8进制,16进制等等
10进制
写法跟数学中书写法是一样的,100,101
8进制
写法前面必须加上0,或者0o,再或者0O
例如011或者0o11,或者0O11
1 * 8 + 1 = 9这面这三种情况表示十进制中的9
注意在8进制中,每个位上的数字进制是8,因此不能大于等于8,一定是8以内的数据
注意如果通过第一种方式表示8进制数 有0 + 8进制数,此时要注意了
如果后面的数字大于等于8会转化成10进制的数
如果后面的数字小于8,就会按照8进制来处理
我们工作中为了屏蔽这类问题我们通过用后两种表示法加上一个o或者O,来表示8进制数
16进制
写法在恰面加上0x
例如0x11表示十进制中的17
在十六进制中,如果某个位上的数字大于9,就用字母a-f来表示
所以
10用a表示
11用b表示
12用c表示
13用d表示
14用e表示
15用f表示
当到16的时候,由于达到进制,因此会向前一位进一,该位变成0
这类表示方式在css中应用很广,回想我们写的css都是用该形式表示法,例如红色#ff000,绿色#00ff00
Ff就是15 * 16 + 15 = 255(十进制)
注意js不区分16进制大小写字母,因此可以使用大写字母小写字母都可以,也可以混用(工作中不建议混用,要不都大写要不都小写) 例如0xFf表示10进制的255
注意我们虽然可以在js中通过不同进制来定义一个数字,但是js在输出的时候,是10进制的
数字的幂的表示法,
在数学中我们有个计数的方式叫科学计数法,同样js也支持
在js中通过e来显示10的底数
100可以表示1e2
1.2345e5 = 1.2345 * 10 ^ 5 = 123450
这种方式的好处,简化对大数字的表示
12300000 = 1.23e7 = 0.123e8 = .123e8 (对于初学者来说尽量不要省略小数点前面的0,)
其实这个幂就是表示的位数
在js中负数的表示需要前面记上一个-(符号)
负数的符号可以应用在任何表示法中,比如幂表示法,8进制,16进制,10进制中等等
例如表示-11
十进制-11
8进制-013或者-0o13或者-0O13
16进制-0xb
幂的表示-1.1e1或者0.11e2或者.11e2
无穷
Js是一个计算机语言,存储数据是有空间的,对每一个数字他们最大存储空间是8bit,因此他有表示的
最大值Number.MAX_VALUE是1.7976931348623157e+308
最小值Number.MIN_VALUE是5e-324
如果定义的数字比这两个数字大,此时此时js用正负无穷来表示
Infinity表示正无穷
-Infinity表示负无穷
注意js中有两种0,一个是正0,一个是负0
不是数字
数学中除数不能是0,如果出现了0,那么就是正负无穷
如果除数与被除数都是0,那么返回的就是一个NaN表示不是一个数(也是一个数字类型)
小数
Js中小数使用单精度浮点数表示,因此在计算上会有一些bug(0.1 + 0.2 != 0.3)
Js中的小数在运算时候会有偏差