JS 数据类型总结

    JavaScript共有七种数据类型,包括六种基本数据类型(number、string、boolean、null、undefined、symbol)和一种引用类型。javascript

一、number(数字类型)

number类型即数字类型,数字能够带小数点也能够不带,也能够经过科学计数法来写。前端

var y=123e5;      // 12300000
var z=123e-5;     // 0.00123
复制代码

js有一个精度问题坑:java

var a = 0.1;
var b = 0.2;
console.log(a+b))//0.30000000000000004
复制代码

原本0.1+0.2应该等于0.3可控制台打印的倒是0.30000000000000004,这是由于js采起了双精度存储。小数在前端通常的解决方法是,先扩大倍数,相加后再除以倍数:函数

(0.1*10 + 0.2*10) / 10 == 0.3 
复制代码

二、string(字符串类型)

字符串类型能够是引号中的任意文本,可以使用单引号或双引号。ui

var str = 'hello'
复制代码

三、boolean(布尔类型)

布尔类型有两种值 true或false,经常使用于判断中。spa

四、null

null类型一般是一个变量或函数未声明致使的,null类型也有一个bug是:指针

console.log(typeof null) //object
复制代码

这也是js一直都存在的bug,注意就好。code

五、undefind

undefind一般是一个变量已经声明,但并未赋值致使的。ip

var a ;
console.log(a)//undefined
复制代码

六、symbol

symbol是ES6新增的,表示独一无二的值,由Symbol()函数生成。字符串

console.log(Symbol('a') === Symbol('a'));//false
复制代码

七、引用类型

引用类型跟前六种简单数据类型相比,不一样在于简单数据类型存储的直接是值,而引用类型存储的是地址(指针)。因此就出现了下边的问题。

var people = {
      name: '小明'
    }
var peoplea = people;
peoplea.name = '小白';
console.log(peoplea.name)//小白
console.log(people.name)//小白
复制代码

咱们原本指望只改变peoplea的name,如今连people的name都改变了,这是复杂类型存储的是指针致使的。能够用深浅拷贝来解决。关于深浅拷贝的问题,我会专门再写一篇文章去介绍。

相关文章
相关标签/搜索