js数据类型之数字类型

40 篇文章 1 订阅
39 篇文章 5 订阅

1.科学计数法的写法

 直接举例子可能用法更明确一些
  1000000=1e6 
  7.3e9=73,0000,0000.  //73亿
   
  **总结一下上面用法就是这种写法就等于 “e”把数字乘以1后面跟着给定数量的 0 的数字**

 同上看一些小数用法:
 0.00000123= 1e-6 =1.23 /1000 000         //-6就代表着除以1后面跟着6个0的数字

2.十六进制,二进制和八进制数字

十六进制 在js中广泛用于颜色,编码字符以及许多其他东西,有一种较短的写法:0x, 然后是数字

alert( 0xff ); // 255
alert( 0xFF ); // 255(一样,大小写没影响)

二进制和八进制很少使用,但是也支持用0b 和 0o前缀:

let a = 0b11111111; // 二进制形式的 255
let b = 0o377; // 八进制形式的 255

alert( a == b ); // true,两边是相同的数字,都是 255

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

let num = 255;

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

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

**使用两个点来调用一个方法**
 alert( 123456..toString(36) ); // 2n9c

这样的中间两个点不是打错了,而是我们要想直接在一个数字上调用一个方法,比如上面例子中的 toString ,那么我们需要在他们后面放置两个点 …
如果我们防止一个 点 . ,那么就会出现error,因为JavaScript 语法中隐含了第一个点之后的部分是小数部分,如果我们在一个点,JavaScript 就知道小数部分为空,现在使用该方法。
(123456).toString(36)。

4.舍入

  1. Math.floor. :向下舍入
    向下舍入: Math.floor( 3.7 )=3; Math.floor( -1.1 )=-2
  2. Math.ceil: 向上舍入
    Math.ceil(3.1)=4,Math.ceil(-1.1)=-1
  3. Math.round :四舍五入
    Math.round(3.5)=4 ,Math.round(-1.1)=-1
  4. Math.trunc:移除小数点后面的所有内容而没有舍入(IE浏览器不支持这个方法)
    Math.trunc(3.1)=3。 Math.trunc(-1)=-1

5.处理数字小数部分的方法
a. 乘除法:
例如将数字舍入到小数点后两位,我们可以把数字乘以100(或者更大10的整数次幂),调用舍入的函数后,然后再将其除回

 let num = 1.23456;

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

b. 函数toFixed(n) 将数字舍入到小数点后n 位,并以字符串的形式返回
这个函数会四舍五入进行舍入

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

注意这个函数结果是一个字符串,如果小数部分比所需要的短,则在结尾添加零:

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

5.测试:isFinite 和isNaN

  • Infinity 和 (- Infinity)是一个特殊的值,比任何数值都大(小)
  • NaN 代表一个error

它们属于 number 类型,但不是普通数字,这里有用于检查他们的特殊函数

  • isNaN(value) 将其参数转换为数字,然后测试它是否为NaN :
alert( isNaN(NaN) ); // true
alert( isNaN("str") ); // true

但是我么不能使用=== NaN 比较,因为“NaN”是独一无二的,他不等于任何东西,包括它自身。

alert( NaN===NaN) ); // false
  • isFinite(value) 将其参数转换为数字,如果是常规数字,则返回 true
 alert( isFinite("15") ); // true
alert( isFinite("str") ); // false,因为是一个特殊的值:NaN
alert( isFinite(Infinity) ); // false,因为是一个特殊的值:Infinity

有时isFinite 被用于 验证字符串值是否为常规数字:

let num = +prompt("Enter a number", '');

// 结果会是 true,除非你输入的是 Infinity、-Infinity 或不是数字
alert( isFinite(num) );

注意在数字函数中,包括isFinite,空字符串或仅有空格的字符串均被视为 0

6.内建方法Object.is

这个方法类似于 === 一样对值进行比较,但它对于两种边缘情况更可靠:

1.它适用于 NaN: Object.is(NaN,NaN) === true,
2.值0 和-0 是不同的 Object.is(0,-0) === false,
在其他所有情况下,Object.is(a,b)与 a===b 相同。

7.parseInt 和 parseFloat

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

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

唯一例外的是字符串开头或者结尾的空格,因为他们会被忽略。
这个时候就用到了上述两个方法,他们可以从字符串中读取数字,直到无法读取为止。如果发生error,则返回收集到的数字。函数parseInt 返回一个整数,而parseFloat 返回一个浮点数

alert( parseInt('100px') ); // 100
alert( parseFloat('12.5em') ); // 12.5

alert( parseInt('12.3') ); // 12,只有整数部分被返回了
alert( parseFloat('12.3.4') ); // 12.3,在第二个点出停止了读取

某些情况下,这两个函数也会返回NaN。当没有数字可读时会发生这种情况。

alert( parseInt('a123') ); // NaN,第一个符号停止了读取

parseInt(str, radix)` 的第二个参数
第二个参数是用来指定数字系统的基数,默认情况下为十进制,也可以解析十六进制、二进制数字等字符串。

alert( parseInt('0xff', 16) ); // 255
alert( parseInt('ff', 16) ); // 255,没有 0x 仍然有效

alert( parseInt('2n9c', 36) ); // 123456

8. 其他数字函数

1.Math.random() //返回一个从0到1的随机数(不包括1)
2.Math.max(a, b, c…) / /Math.min(a, b, c…) //从任意的参数中返回最大/小值
3.Math.pow(n, power)。 //返回 n的 power次幂

alert( Math.random() ); // 0.5435252343232
alert( Math.random() ); // ... (任何随机数)
alert( Math.max(3, 5, -10, 0, 1) ); // 5
alert( Math.min(1, 2) ); // 1
alert( Math.pow(2, 10) ); // 2 的 10 次幂 = 1024

当然Math 对象中还有更多函数和常量,可以在下面的链接文档中找到

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值