美文网首页
JavaScript基本数据类型总结

JavaScript基本数据类型总结

作者: HiFi_HighFive | 来源:发表于2018-08-15 16:05 被阅读0次

    数据类型是决定 value 可以存为哪个类型的特性。例如在 JavaScript 中一个 Boolean 只能存放 true或false , 而一个 String 能存放任何字符串 , 一个 Number 存放任何类型的数字 , 等等...值的数据类型也影响哪个操作对该值有效,例如, 一个整数可以乘以一个整数,而不是一个字符串。

    ——MDN

    0七种数据类型

    0.1数值 Number

    0.1.1定义

    在 JavaScript 中, Number 是一种双精度64位浮点格式(double-precision 64-bit floating point format)/binary64 (IEEE 754-2008)/ double (IEEE 754-1958)的数字数据类型(ECMAScript )。

    ——MDN

    0.1.2属性

    格式:

    符号位(用于表示正负号):1位,0表示正数,1表示负数;

    指数(用于表示次方数):11位,数值范围:(2^1024,2^-1023),超出范围的数字会返回infinity;

    尾数、显著精度(用于表示精确度):53位(52显式存储),可以精确表示绝对值小于2^53的数字,超出范围的整数运算的结果会开始出现错误;

    整数字面量:十进制没有前缀0;二进制整数以0b/0B开头;八进制整数以0o/0O开头,只能包括数字0-7,严格模式下必须以0o/0O开头;十六进制整数以0x/0X开头;

    浮点数字面量:一个十进制正数:可以带正负号;小数点;小数部分(一串由十进制表示);指数部分,以e/E开头,后面跟着整数,可以由正负号。(浮点数字面量至少有一位数字,而且必须带小数点或e/E)

    正零和负零:64位浮点数表示法的符号位不同,但是等价的。

    NaN:非数字。

    infinity:无穷,有正负。

    0.1.3关系

    在其他编程语言中,有不同的数字类型存在,比如:整型(Integers),单精度浮点型(Floats),双精度浮点型(Doubles),Bignums。

    优势:双精度二进制浮点格式(double)是计算机使用的一种数据类型。比起单精度浮点数,双精度浮点数(double)使用 64 位(8字节) 來储存一个浮点数。 它可以表示十进位制的15或16位有效数字,其可以表示的数字的绝对值范围大约是[2.23\times 10^((-308)),{\text{1.79))\times 10^((308))],它比单精度浮点格式具有更宽的适用范围。

    劣势:与单精度浮点格式一样,与相同大小的整数格式相比,它缺乏对整数的精度。

    0.2.字符串 String

    0.2.1定义

    由零个或多个字符组成的有限序列。它是编程语言中表示文本的数据类型。

    0.2.2属性

    放在单引号或双引号之中。注意在单/双引号中使用单引号需要在内部的单/双引号前面加上反斜杠用来转义。

    字符串长度:在面向对象语言JavaScript把字符串表示为对象的情况下,如果值可以在运行期变更,则叫做“可变的”(mutable),如果值在建立后就不可变更了,则叫做“不变的”(immutable)

    “定长字符串”,它有固定的极大长度并且不管是否达到了这个极大值都使用同样数量的内存;

    “变长字符串”,它的长度不是专断固定的并且依赖于实际的大小使用可变数量的内存。(如:对象object)

    0..3关系

    如果长字符串需要分成多行,有下面几种方法:

    1)反斜杠;2)操作符+;2)模板字面量`;

    转义符(\):在字符串内用来表示一些特殊字符。

    字符串与数组:

    字符串可以被视为字符数组,也有length属性。

    字符集:JavaScript运行在程序中使用Unicode码点表示字符,即将字符写成\uxxxx的形式。每个字符在JavaScript内部都是以16位(即2个字节)的UTF-16格式储存。

    Base64转码:将任意值转换为0~9,A~Z,a~z,+和/这64个字符组成的可打印字符,JavaScript原生提供两个转换方法:

    1)btoa():任意值转换为Base64;atob():Base64转换为原来值。

    0.3.布尔值 Boolean

    0.1.1定义

    一种逻辑数据类型,它只能具有真值或假值。

    0.1.2属性

    如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转换为布尔值,转换规则是除了undefined,null,false,0,NaN,' '或" "这6个值被转换为false,其他值都被视为true。

    0.1.3关系

    在抽象代数中,布尔代数(英语:Boolean algebra)是捕获了集合运算和逻辑运算二者的根本性质的一个代数结构(就是说一组元素和服从定义的公理的在这些元素上运算)。特别是,它处理集合运算交集、并集、补集;和逻辑运算与、或、非。

    在JavaScript中,布尔条件常常用于决定执行哪部分代码(比如if语句)或重复(比如for循环)等等的逻辑计算。

    0.4.undefined

    0.1.1定义

    当一个表达式未被赋予正确值,但在语法上是正确的时候。

    表示一个“此处无定义”的原始值。

    0.1.2属性

    根据情况,对undefined的评估可能导致异常或未定义行为,但在某些编程语言中,未定义值可能发生在正常的、可预测的程序执行过程中。

    转换数值时为NaN。

    0.1.3关系

    undefined不能与空字符串、布尔“false”或其他“空”(但定义的)值混淆。

    可空(nullable)数据类型保留一个特殊的空值来表示undefined的值,因此null是一种值;注意,undefined通常不是值。

    0.5.null

    0.1.1定义

    空对象。

    ' '

    " "

    0.5.2属性

    转换为数值是0。

    0.5.3关系

    0.6symbol

    0.6.1定义

    Symbol 为字面量基本类型。ES6新引入的数据类型。可以创建独一无二的值。

    0.6.2属性

    “symbol”这个类型的值可以用来创建匿名的对象属性。该数据类型通常被用作一个对象属性的键值——当你想让它是私有的时候。例如,symbol 类型的键存在于各种内置的 JavaScript 对象中。同样,自定义类也可以这样创建私有成员。symbol 数据类型具有非常明确的目的,并且因为其功能性单一的优点而突出;一个 symbol 实例可以被赋值到一个左值变量,还可以通过标识符检查类型,这就是它的全部特性。不能对该类型实例使用其他操作符(将“Symbol”类型的实例与 “Number” 类型的实例对比,例如整数 42,该实例就具有将值与其他类型的值进行比较或组合的运算符)。

    一个具有数据类型 “symbol” 的值可以被称为 “符号类型值”。在 JavaScript 运行时环境中,一个符号类型值可以通过调用函数 Symbol() 创建,这个函数动态地生成了一个匿名,唯一的值。Symbol类型唯一合理的用法是用变量存储 symbol的值,然后使用存储的值创建对象属性。

    0.6.3关系

    使用方法:直接使用symbol()创建新的symbol类型,并用一个可选的字符串作为其描述。

    0.7对象

    0.7.1定义

    对象是七个原始类型中最复杂的数据类型。数组、函数、正则表达式都属于对象类型。

    对象是普通键值对的集合,是一种无序的复合数据集合。

    0.7.2属性

    JavaScript用一个{……}表示对象,键值对以xxx:yyy形式申明,用“,”隔开,xxx是键名,通常称为“属性”,如果一个属性的值是函数,通常把这个属性称为方法,它可以像函数意义调用,yyy是键值,可以是任何数据类型。

    如果一个属性的值还是一个对象,就形成了链式引用。

    0.7.3方法

    属性的读取;属性的赋值;属性和值的查看;属性的删除;属性是否存在;属性的遍历;对象的引用。

    数组的读取;数组的赋值;数组的length属性;数组的空位;属性是否存在;数组的遍历。

    函数的声明;函数的重复声明;函数的调用;函数的参数;函数的参数默认值;argument对象;函数的递归和return语句;函数名的提升;函数的属性和方法;变量作用域。

    参考:https://zhuanlan.zhihu.com/p/48637522

    相关文章

      网友评论

          本文标题:JavaScript基本数据类型总结

          本文链接:https://www.haomeiwen.com/subject/iplbvftx.html