目录

数字类型

1.编写数字的更多方法

2.十六进制、二进制、八进制数字

3.toString(base)方法

4.舍入

5. isNaN 和 isFinite

6. parseInt 和 parseFloat

7.其他数学函数

(1).Math.random

(2).Math.max(a,b,c...) 和 Math.min(a,b,c...)

(3).Math.pow(n,power)


数据类型指的就是字面量的类型

JavaScript 中有八种基本的数据类型(前七种为基本数据类型,也称为原始类型,而 object 为复杂数据类型)。

  • number用于任何类型的数字:整数或浮点数,在 ±(253-1) 范围内的整数。
  • bigint 用于任意长度的整数。
  • string 用于字符串:一个字符串可以包含 0 个或多个字符,所以没有单独的单字符类型。
  • boolean 用于 true 和 false。
  • null 用于未知的值 —— 只有一个 null 值的独立类型。
  • undefined 用于未定义的值 —— 只有一个 undefined 值的独立类型。
  • symbol 用于唯一的标识符。
  • object 用于更复杂的数据结构。

数字类型

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

JS中可以表示的数字的最大值:Number.MAX_VALUE,科学计数法表示为1.7976931348623157e+308;最小值:Number.MIN_VALUE,科学计数法表示为5e-324

如果使用Number表示的数字超过了最大值,则会返回一个Infinity,表示正无穷;-Infinity,表示负无穷

可以使用一个运算符typeOf来检查一个变量的类型

语法: typeOf 变量

检查字符串时,会返回string

检查数值时,会返回number

使用typeOf检查Infinity也会返回Number

        NaN是个特殊的数字,表示Not A Number;使用typeOf检查NaN也会返回Number

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

1.编写数字的更多方法

一般来说,在表示10亿时,我们会这样写:

let billion = 1000000000;

但是通常为了简写和方便,会将10亿写成 “1bn” ,22亿写成 “2.2bn”。

在 JavaScript 中,我们通过在数字后附加字母 “e”,并指定零的数量来缩短数字:

let billion = 1e9;  // 10 亿,字面意思:数字 1 后面跟 9 个 0alert( 2.2e9 );  // 22 亿(2,200,000,000)

如果写一些非常小的数字,例如,1 微秒(百万分之一秒):

let ms = 0.000001;

同样可以使用 “e” 来完成:

let ms = 1e-6; // 1 的左边有 6 个 0

0.000001 中的 0 的个数,是 6 个。所以使用1e-6来表示。e后面的负数表示除以 1 后面跟着给定数量的 0 的数字

2.十六进制、二进制、八进制数字

十六进制数字在 JavaScript 中被广泛用于表示颜色,编码字符以及其他许多东西。所以自然地,有一种较短的写方法:0x,然后是数字。二进制和八进制数字系统很少使用,但也支持使用 0b 和 0o 前缀:

alert( 0xff ); // 255
alert( 0xFF ); // 255(一样,大小写没影响)let a = 0b11111111; // 二进制形式的 255
let b = 0o377; // 八进制形式的 255alert( a == b ); // true,两边是相同的数字,都是 255

3.toString(base)方法

方法 number.toString(base) 返回在给定 base 进制数字系统中 num 的字符串表示形式。

举个例子:

let num = 255;alert( num.toString(16) );  // ff
alert( num.toString(2) );   // 11111111

base 的范围可以从 2 到 36。默认情况下是 10。

常见的用例如下:

  • base=16 用于十六进制颜色,字符编码等,数字可以是 0..9 或 A..F

  • base=2 主要用于调试按位操作,数字可以是 0 或 1

  • base=36 是最大进制,数字可以是 0...9 或 A...Z 。所有拉丁字母都被用于了表示数字。对于 36进制来说,一个有趣且有用的例子是,当我们需要将一个较长的数字标识符转换成较短的时候,例如做一个短的 URL。可以简单地使用基数为 36 的数字系统表示:

    alert( 123456..toString(36) ); // 2n9c

    使用两个点来调用一个方法

    如果我们想直接在一个数字上调用一个方法,比如上面例子中的 toString,那么我们需要在它后面放置两个点 ..。 123456..toString(36) 

    如果我们放置一个点:123456.toString(36),那么就会出现一个 error,因为 JavaScript 语法隐含了第一个点之后的部分为小数部分。如果我们再放一个点,那么 JavaScript 就知道小数部分为空,现在使用该方法。

    也可以写成 (123456).toString(36)

4.舍入

舍入(rounding)是使用数字时最常用的操作之一。这里有几个对数字进行舍入的内建函数:

  • Math.floor   向下舍入
  • Math.ceil   向上舍入
  • Math.round  向最近的整数舍入
  • Math.trunc   移除小数点后的所有内容而没有舍入

如果要将数字舍入到小数点后n位,有两种方法可以实现

(1).乘除法

例如,要将数字舍入到小数点后两位,我们可以将数字乘以 100(或更大的 10 的整数次幂),调用舍入函数,然后再将其除回。

let num = 1.23456;alert( Math.floor(num * 100) / 100 ); // 1.23456 -> 123.456 -> 123 -> 1.23

(2).函数 toFixed(n)

函数 toFixed(n) 将数字舍入到小数点后 n 位,并以字符串形式返回结果。

let num = 12.34;
alert( num.toFixed(1) ); // "12.3"

        toFixed(n) 的结果是一个字符串。如果小数部分比所需要的短,则在结尾添加零:

let num = 12.34;
alert( num.toFixed(5) ); // "12.34000",在结尾添加了 0,以达到小数点后五位

可以使用一元加号或 Number() 调用,将其转换为数字:+num.toFixed(5)

5. isNaN 和 isFinite

  Infinity(和 -Infinity)是一个特殊的数值,比任何数值都大(小)。

  NaN 代表一个 error,它是独一无二的,它不等于任何东西,包括它自身。

alert( NaN === NaN ); // false

(1).isNaN(value)

isNaN(value) 将其参数转换为数字,然后测试它是否为 NaN:

alert( isNaN(NaN) ); // true
alert( isNaN("str") ); // true

(2).isFinite(value)

isFinite(value)将其参数转换为数字,如果是常规数字,则返回 true,而不是 NaN/Infinity/-Infinity

alert( isFinite("15") ); // true
alert( isFinite("str") ); // false,因为是一个特殊的值:NaN
alert( isFinite(Infinity) ); // false,因为是一个特殊的值:Infinity

6. parseInt 和 parseFloat

使用加号 + 或 Number() 的数字转换是严格的。如果一个值不完全是一个数字,就会失败:

alert( +"100px" ); // NaN

parseInt 和 parseFloat 从字符串中从左往右“读取”数字,直到无法读取为止。如果发生 error,则返回收集到的数字。函数 parseInt 返回一个整数,而 parseFloat 返回一个浮点数:

alert( parseInt('100px') ); // 100
alert( parseFloat('12.5em') ); // 12.5alert( parseInt('12.3') ); // 12,只有整数部分被返回了
alert( parseFloat('12.3.4') ); // 12.3,在第二个点处停止了读取alert( parseInt('a123') ); // NaN,第一个符号停止了读取

7.其他数学函数

(1).Math.random

返回一个从 0 到 1 的随机数(不包括 1)

alert( Math.random() ); // 0.1234567894322
alert( Math.random() ); // 0.5435252343232
alert( Math.random() ); // ... (任何随机数)

(2).Math.max(a,b,c...) 和 Math.min(a,b,c...)

从任意数量的参数中返回最大/最小值

alert( Math.max(3, 5, -10, 0, 1) ); // 5
alert( Math.min(1, 2) ); // 1

(3).Math.pow(n,power)

返回n的power次幂

alert( Math.pow(2, 10) ); // 2 的 10 次幂 = 1024

JavaScript — 数据类型之 Number数字类型相关推荐

  1. oracle输入数字类型吗,PL/SQL Number数字类型函数

    PL/SQL Number数字类型函数 更新时间:2007年03月21日 00:00:00   作者: ABS(x) 函数,此函数用来返回一个数的绝对值. ACOS(x)函数,返回X的反余弦值.X范围 ...

  2. Java中number数字类型的转换_Java下数字类型的转换 (转)

    Java下数字类型的转换 (转)[@more@] 作者:家居猫 各种数字类型转换成字符串型: String s = String.valueOf( value); // 其中 value 为任意一种数 ...

  3. javascript验证是否是数字类型

    正则校验: var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字,//若判断正整数,则后边是:/^[1-9]+[0-9]*]*$/ if(re.test(value) = ...

  4. python的符号函数得到的数字类型_python-1:Number数字类型 之二 相关函数 int.from_bytes,int.to_bytes()...

    函数格式:int.from_bytes(bytes, byteorder, *, signed=False) 简单demo: s1 = b'\xf1\xff' print(int.from_bytes ...

  5. python中number函数_python-1:Number数字类型 之三 相关函数 Fraction

    fractions模块 fractions模块提供了分数类型的支持. Fraction类 该类是fractions模块的核心,它继承了numbers.Rational类并且实现了该类所有的方法. 构造 ...

  6. Python数据类型(一)数字类型

    Python3有六个标准数据类型: .不可变数据类型:Number(数字).String(字符串).Tuple(元组) .可变数据类型: List(列表).Dictionary(字典).Set(集合) ...

  7. 【python】Python的基本数据类型之数字类型与字符串类型

    1. Python的基本数据类型 1.1 数字类型 整型(关键字int) 由0~9组成的所有数字,例如:年龄.存款.尺寸.手机号等. 浮点型(关键字float) 包含有小数点,例如:价格,重量 布尔型 ...

  8. python3中数字类型有哪些_Python3数据类型—列表 | 吴老二

    变量 在没有说数据类型之前,先简单说一下变量.后面会对变量有补充,变量是什么,简单的说就是内存地址的名字.举个例子,wulaoer="吴老二",这就是一个变量,中文"吴老 ...

  9. javaScript数据类型(包括基本数据类型和非基本数据类型)

    一.五种基本数据类型 1.number 数字类型 - 包括浮点数和整数,例如:1,100,3.14 2.string 字符串类型 - 包括任意数字字符组成的序列,例如:"1", & ...

最新文章

  1. Oracle的口令文件(passwordfile)的讲解(摘录)
  2. 查看微码的两种方式hmcaix
  3. 第六十一节,html超链接和路径
  4. MQTT+ActiveMQ实现消息推送
  5. logback的简单使用
  6. 流式计算中为什么需要时间戳和WaterMark
  7. android 获取wifi的加密类型,wifi加密类型
  8. C语言为四维数组申请动态内存空间的方法(二)
  9. 二维数组的最大联通子数组和
  10. 图片简单上色,花开花落云卷云舒。
  11. JavaScript网页简单特效
  12. python调用手机蓝牙_python bluetooth蓝牙信息获取蓝牙设备类型的方法
  13. C#+ AE实现地图注记功能
  14. 【人工智能项目】深度学习实现图像多标签分类
  15. Mybiosource丨Mybiosource玻连蛋白 (VTN),ELISA 试剂盒原理
  16. Babylongjs-纹理
  17. maxima得到简化行阶梯矩阵(RREF)
  18. 代理服务器没有响应解决方案
  19. 微信H5页面分享案例模版
  20. 红帽linux 下qt 5.13.1 编译 mysql80驱动(内含升级gcc版本)

热门文章

  1. 自制Linux精简系统
  2. elasticsearch Java Client用户指南
  3. NX二次开发 截图、向excel表格中插入图片 UF_DISP_create_framed_image
  4. JAVA实现遗传算法
  5. 一句话脚本系列之获取eth0网卡的IP地址(或MAC地址)
  6. Coding and Paper Letter(八十四)
  7. 计算机集成制造系统在线出版,计算机集成制造系统
  8. 等额本息 vs 等额本金
  9. 函数:判断表达式括弧是否匹配
  10. C#/.Net 不要再使用Aspose和iTextSharp啦!QuestPDF操作生成PDF更快更高效!