微信扫一扫打赏支持

范仁义js课程---8、js数据类型之Number类型

范仁义js课程---8、js数据类型之Number类型

一、总结

一句话总结:

在JS中所有的数值都是Number类型,包括整数和浮点数(小数),比如var num=15.6;

 

1、123和'123'的区别是什么?

123是Number类型,'123'是字符串类型

 

2、js中如何查看一个变量的类型?

用typeof运算符:console.log(typeof a)

 

3、js中的NaN是什么?

NaN 是一个特殊的数字,表示Not A Number,使用typeof检查一个NaN也会返回number,我们使用两个字符串相乘可以得到NaN,比如'abc'*'bcd'

 

 

 

二、Number

博客对应课程的视频位置:8、js数据类型之Number类型
https://www.fanrenyi.com/video/19/89

 

1、Number类型介绍

在JS中所有的数值都是Number类型,包括整数和浮点数(小数)

2、123和'123'的区别

 

3、typeof运算符

可以使用一个运算符typeof
来检查一个变量的类型
语法:typeof变量

console.log(typeof a)

检查字符串时,会返回string
检查数值时,会返回number

4、Number的最大值

JS中可以表示的数字的最大值
Number.MAX_VALUE
1.7976931348623157e+308

Number.MAX_VALUE*Number.MAX_VALUE
如果使用Number表示的数字超过了最大值,则会返回个Infinity表示正无穷

a=Infinity; console.log(typeof a);

Infinity表示正无穷
-Infinity 表示负无穷
使用typeof检查Infinity也会返回Number
NaN 是一个特殊的数字,表示Not A Number
使用typeof检查一个NaN也会返回number

比如 var a='abc'*'bcd';


5、科学计数法

科学计数法使用e标识数值,将科学计算学转化为数字的思路:按e右边的数字移动小数点位数。e右边的数字如果是负数,则向左移动小数点。例如1.2345678e2 = 123.45678


6、精度

在js中整数的运算基本可以保证精确
如果使用js进行浮点运算,可能得到一个不精确的结果
所以千万不要使用JS进行对精确度要求比较高的运算
var num=0.1+0.2;

就像10进制中无法准确表示1/3,二进制中无法准确表示1/10,而计算机只认识二进制,而且能表示的位数有限,所以这样10进制->2进制->10进制的过程中会出现误差

为什么浮点数计算,会得到一个不精确的值

用脑子,10进制整数转2进制是除2,10进制小数转2进制是靠乘2取1

 

 

三、课程代码

 

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>js数据类型之Number类型</title>
 6 </head>
 7 <body>
 8 <!--
 9 Number 数字
10 整数和小数(浮点数)
11 
12 科学计数法
13 1.7e+3 =1.7*10^3=1700
14 1.7e-3 =1.7*10^(-3)=1.7*0.001
15 
16 常量
17 Number.MAX_VALUE  表示的是js中的最大的数
18 1.7976931348623157e+308
19 常量我们一般用全大写表示
20 Number.MIN_VALUE 最小数
21 
22 Infinity 无限大
23 -Infinity
24 
25 js的小数做计算的时候,可能会出现不精确的情况
26 原因是什么:10进制里面,1/3是没有办法被准确的表示的,0.333333
27 2机制里面,1/10也没有办法被准确表示,是一个无限循环小数
28 
29 解决方式:可以把小数先全部转化为整数,计算之后再转化为小数
30 
31 
32 
33 -->
34 <script>
35     var num1=234;
36     console.log(num1);
37     console.log(typeof num1);
38     var num2=12.3;
39     console.log(num2);
40     console.log(typeof num2);
41     var num3='12.3';
42     console.log(num3);
43     console.log(typeof num3);
44 
45     var num4=Number.MAX_VALUE;
46     console.log(num4);
47     console.log(typeof num4);
48     var num5=Number.MIN_VALUE;
49     console.log(num5);
50     console.log(typeof num5);
51 
52     var num6=Number.MAX_VALUE*Number.MAX_VALUE;
53     console.log(num6);
54     console.log(typeof num6);
55 
56     var num7=-Infinity;
57     console.log(num7);
58     console.log(typeof num7);
59 
60     var num8=0.11+0.1;
61     console.log(num8);
62     console.log(typeof num8);
63 
64 </script>
65 </body>
66 </html>

 

 

 

 

 
posted @ 2020-02-18 06:15  范仁义  阅读(230)  评论(0编辑  收藏  举报