JavaScript -- 浅谈数据类型及其相互转换

ES 中有 7 种数据类型,分别是 String , Number , Boolean , Undefined , Null ,Object 以及 Symbol (在ES6中引入的概念),其中前面 5 种又被称为基本数据类型,Object 被称为引入数据类型,而 Symbol 是独立于前面两类的数据类型,既不属于基本类型也不属于引用类型。

  • String 类型

使用‘’或“”将变量值引起来,特殊代表是空串“”,有时候合理使用“”会使逻辑简单很多。除此以外,String数据类型还包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符:

  • Number 类型

数值类型,就是我们日常使用的数字,包括整数和小数,特殊的代表是0、NaN(Not a Number的简称,表示非法数字)和Infinity(表示无穷),由于内存的机制,ECMAscript并不能保存所有数值,其中,能保存最小的正数为Number.MIN_VALUE,在大多数浏览器中,这个值为5e-324;能表示最大的数值为Number.MAX_VALUE,在大多数浏览器中,这个值是1.7976e+308,一旦大于或等于这个值就会解释为无穷。

  • Boolean 类型

只有两个值:true 和 false , true 代表真,false 代表假。

  • Undefined 

只有一个值:underfined,代表示已声明但是未赋值。

  • Null

只有一个值:null,表示空值(指向一个空指针对象)。

以上 5 种为基本数据类型,需要注意的有:

  1. 字符串与上面所有类型的加法运算的结果都是一个字符串(拼串)
  2. 数值类型做除法运算时不精确,对于需要特别精确的运算最好别用 js。
  3. 字符串如果是一个数字可以直接使用一元运算符 + 转化为数值类型。
  4. typeof null === object    
  5. 两个表达式做逻辑运算时返回的不一定是true和false,比如 a = 1 && 2 ,a的结果就是2.
  6. 两次取反可以将其他类型转为布尔类型。
  • Object 类型

引用数据类型,包括普通的对象object,数组Array,函数Function,正则RegExp等对象。

  • Symbol 类型

是一种特殊的数据类型,该类型的值是由 Symbol() 函数产生的,是独一无二的值。ES6引入这个概念的原因就是为了防止对象中出现相同的属性名,所以,如今的对象属性名可以为普通的字符串和symbol值。使用typeof检查时返回 symbol。

猜你喜欢

转载自blog.csdn.net/weixin_41030302/article/details/82970944