小编给大家分享一下JavaScript数据类型是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
最近面试了三个开发,他们都没有说清楚JS的基本类型有哪些。而且往往错误的说了一些C语言的数据类型,例如int,浮点数,双之类的数据类型。
<强>无论什么语言,熟练掌握数据类型都是这门语言最根本的知识点强>
JS数据类型分为两类,一类是基本类型,他们有
- <李> 李> <李>字符串数量李> <李>布尔李> <李>定义李> <李>空李> <李>符号李>
JS的基本类型就这么几个,除此之外,其他的类型都是对象。
数量类型
在JS没有整型,浮点数,或者两类型的数值,所有数值统一叫做数量类型。
JS使用IEEE754格式表示整数和浮点数,一般来说整数占用了32位,而浮点数数占用64位,因为浮点数占用的内存空间是整数的两倍,所以JS会适当的把浮点数转化为整数储存。
4.0===4//真正的
数值类型都是有大小范围的
。MAX_VALUE//1.7976931348623157 e + 308 号码。MIN_VALUE//5 e - 324 号码。MAX_SAFE_INTEGER//9007199254740991 号码。MIN_SAFE_INTEGER//-9007199254740991
浮点数一般都是计算结果不准确的,这不是JS的问题,所有语言中都有这个问题。
计算<代码> 0.1 + 0.2===0.3 代码>这个结果永远是假的。
要比较浮点数是否相等,可以采用<代码>数量。ε> 代码,Number.EPSILON是一个非常小的数的值,如果两个浮点数相减小于数字。ε,则可以为认为是相等。
Math.abs (0.1 + 0.2 - 0.3) & lt;号码。ε//真正的
数量类型中有三个比较特殊的兄弟
- <李>无穷当数值超过数量类型的最大值,他就会变成正无穷李> <李>无穷当数值类型小于多类型的最小值,就会变成负无穷李> <李>南南的意思是它不是一个数值,例如某个数值除以0,一般语言都会报的错,但是js不会,而是该变量的值会变成南。李>
数值类型一旦变成这三个兄弟,就无法参与后续的数值运算。
字符串类型
从静态语言过来的同学,遇到字符串就会问个问题:请问你能装多少个字符串呢?
字符串傻傻一笑,说:自从我诞生以来,从来就没被装满过!
2016年ECMAScript (ed。7)建立了一个最大长度为2 ^ 53 - 1的元素。以前,没有指定的最大长度。在Firefox中,字符串的最大长度2 <强> 30 - 2 (~ 1 gb)。在65年之前版本Firefox,最大长度是2 强> 28 - 1 (~ 256 mb)。,——MDN 引用>布尔
布尔值很简单,就假和真两个值。但是很多人不能完全回答出,哪些值会被转换成假的。
除了下面几个能够被转成假的值,其他都是真的。
假 & # 39;& # 39; 南 未定义的 0,0,+ 0 空定义和空
定义表示一个变量被定义了,但是没有被赋值.null表示这个变量根本没被定义。总之,无论是定义和空,他们基本上都是不能使用的值。
零类型有个特别的作用,比如有个对象,有很多属性,这时候你想把这个变量给标记为可以被垃圾回收了,那么就可以把它的值设置为零。
最熟悉的陌生人:,对象
我曾认为对象在js中是最简单的,而实际上,是我太天真。引用>//定义一个对象,如此简单 var={男孩 名称:& # 39;wangduanduan& # 39; }={var男人 _sex: 1 } Object.defineProperty(人,& # 39;性与# 39;,{ 设置:函数(v) { 这一点。_sex=v===& # 39;男& # 39;吗?1:0 }, 得到:函数(){ 返回。_sex===1 ?“男”;:“女”; } }) 不结盟运动。性//男想一想如果把上面的_sex改成性会有什么问题?
JavaScript数据类型是什么