Integer 数据类型
Integer 数据类型
简介
JavaScript 所有数字都保存成 64 位浮点数,这决定了整数的精确程度只能到 53 个二进制位。大于这个范围的整数,JavaScript 是无法精确表示的,这使得 JavaScript 不适合进行科学和金融方面的精确计算。
现在有一个提案,引入了新的数据类型 Integer(整数),来解决这个问题。整数类型的数据只用来表示整数,没有位数的限制,任何位数的整数都可以精确表示。
为了与 Number 类型区别,Integer 类型的数据必须使用后缀n
表示。
1n + 2n // 3n
二进制、八进制、十六进制的表示法,都要加上后缀n
。
0b1101n // 二进制
0o777n // 八进制
0xFFn // 十六进制
typeof
运算符对于 Integer 类型的数据返回integer
。
typeof 123n
// 'integer'
JavaScript 原生提供Integer
对象,用来生成 Integer 类型的数值。转换规则基本与Number()
一致。
Integer(123) // 123n
Integer('123') // 123n
Integer(false) // 0n
Integer(true) // 1n
以下的用法会报错。
new Integer() // TypeError
Integer(undefined) //TypeError
Integer(null) // TypeError
Integer('123n') // SyntaxError
Integer('abc') // SyntaxError
运算
在数学运算方面,Integer 类型的+
、-
、*
和**
这四个二元运算符,与 Number 类型的行为一致。除法运算/
会舍去小数部分,返回一个整数。
9n / 5n
// 1n
几乎所有的 Number 运算符都可以用在 Integer,但是有两个除外:不带符号的右移位运算符>>>
和一元的求正运算符+
,使用时会报错。前者是因为>>>
要求最高位补 0,但是 Integer 类型没有最高位,导致这个运算符无意义。后者是因为一元运算符+
在 asm.js 里面总是返回 Number 类型或者报错。
Integer 类型不能与 Number 类型进行混合运算。
1n + 1
// 报错
这是因为无论返回的是 Integer 或 Number,都会导致丢失信息。比如(2n**53n + 1n) + 0.5
这个表达式,如果返回 Integer 类型,0.5
这个小数部分会丢失;如果返回 Number 类型,会超过 53 位精确数字,精度下降。
相等运算符(==
)会改变数据类型,也是不允许混合使用。
0n == 0
// 报错 TypeError
0n == false
// 报错 TypeError
精确相等运算符(===
)不会改变数据类型,因此可以混合使用。
0n === 0
// false
Integer 数据类型相关推荐
- c语言sqlite3写数据类型,在sqlite数据库中,int类型不等于integer数据类型
在sqlite数据库中,int类型不等于integer数据类型 这些天一直在忙销售管理软件易卖通客户端的程序编写,由于需要采用本地数据缓存机制来提高程序的数据访问效率,所以需要在客户端使用一个小巧的本 ...
- c语言中integer是什么数据类型,integer是什么数据类型
integer是编程语言的基本数据类型之一,用以指示变量的数据类型,有时也用于常量[变量.表达式]的强制数据类型转换:Integer一个整型数据用来存储整数,整数包括正整数,负整数和零. 本文环境:w ...
- mysql int mediumint,MySQL数据类型:TINYINT, SMALLINT, MEDIUMINT, INT, INTEGER等字段类型区别...
好久没有接触后端数据库方面的知识了,一直没搞清楚像int(4) TINYINT(16)中的4和16表示的是什么含义,以及每种数据类型占用的字节数和表示的范围是多少,今天做个总结学习一下. MySQL支 ...
- Verilog初级教程(3)Verilog 数据类型
文章目录 前言 正文 变量可以取什么样的值? 变量的取值意味着什么? 主要的数据类型 其他数据类型 integer time / realtime real 例子 Verilog的字符串 写在最后 前 ...
- mysql数据类型默认长度_mysql数据类型长度
1个字节= 8位 tinyint 为一个字节 2的8次方= 256 所以最多存储到256 日期和时间数据类型 MySQL数据类型 含义 date 3字节,日期,格式:2014-09-18 time ...
- MySQL数据库数据类型以及INT(M)的含义
nt(M)我们先来拆分,int是代表整型数据那么中间的M应该是代表多少位了,后来查mysql手册也得知了我的理解是正确的,下面我来举例说明. MySQL 数据类型中的 integer types 有点 ...
- mysql Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
使用mysql的时候,用到int类型的蛮多,需要注意一下: 1. 值的范围 Type Storage Minimum Value Maximum Value (Bytes) (Signed/Uns ...
- mysql 数据类型 int_MySQL数据类型 int(M) 表示什么意思?
MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...
- SQLite学习手册(数据类型)
一.存储种类和数据类型: SQLite将数据值的存储划分为以下几种存储类型: NULL: 表示该值为NULL值. INTEGER: 无符号整型值. REAL: 浮点值. ...
最新文章
- 等差数列连续异或模板
- CheckCode.js 前端验证码插件
- 区块链系统之《基于区块链的数字身份认证》
- 代码练习中的bug及修改方法
- 吴恩达深度学习 —— 2.15 python中的广播
- 用c++定义两个坐标点,计算两点间距离;进而计算线段的面积
- POJ - 3046 多重集组合数问题的线性DP(四种方法)
- 人是需要一个圈子互相激励的
- linux程序库设置错误,Linux--C库函数ferror中文翻译
- 前方荆棘遍地,愿砥砺前行
- 【安全知识分享】2021年安全生产月主题宣讲课件(附下载)
- 迭代器Iterator的用法
- 计算机考研调查报告,关于大学生考研的调查报告
- opencv中meanshift和camshift函数的使用
- C语言文件——从创建到删除
- 小城里的“明星”产业,有微信云托管保驾护航
- nodejs爬虫大作业项目
- Spring之自动装配
- 计算机考研最易985,2020考研:盘点那些易考的985院校
- 视频轻量级下载工具 you-get/ lulu/ Annie 合集
热门文章
- tensorflow3
- Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)
- ES6入门笔记(一)
- Jquery需要掌握的技巧
- js去掉html标签和去掉字符串文本的所有的空格
- poj2942(双联通分量,交叉染色判二分图)
- HDU-2525 Clone Wars 模拟
- windows phone 页面导航(6)
- 【开源】我的分页控件正式命名为QuickPager ASP.NET2.0分页控件
- vs studio2015导入本地项目_Visual Studio2019自定义项目模板