【JavaScript】数据类型

  1. JavaScript的数据类型分为两种:原始类型和对象类型
    原始类型又叫基本数据类型
    对象类型又叫引用数据类型
  2. 区别:原始值不能更改,对象值可以更改。
    原始值存储在栈内存(stack)中
    对象值存储在堆内存(heap)中
    栈中存储的是一个具体的值,可以直接拿来用,堆存储的是一块数据,每块数据有一个相应的地址,地址一般存在栈中的一个变量里

原始类型(基本数据类型)

共有5种原始类型
number, string, boolean, null(空), undefined(未定义)

数字(number)

  1. 整型:一般以十进制,也可以使用十六进制。
  2. 浮点型:
    坑!
    js通过一种二进制法表示分数,转换成我们常用过的十进制分数,会产生一个精度问题,如:
var x = 0.3 - 0.2
var y = 0.2 - 0.1
x == y   // false
x == 0.1 //false
x = 0.09999999999999998
y = 0.1

所以当使用浮点数进行计算的时候,要根据需要注意取整,比如动画。

字符串(string)

一组放在引号里的大串字符序列
可以使用String对象的所有属性和方法(存在隐式转换)
属性:str.length
常用方法:str.charAt(0); str.substring(1,4); str.indexOf('e'); str.split('e');

布尔值

任意的JS值都可以转为布尔值
undefined,null,0,-0,NaN,""空字符串都会转成false
除此之外,包括对象、数组,都会转成true

null(空)

是一个控对象的占位符,类型typeof(null)为object

undefined(未定义)

typeof为undefined

null,undefined,NaN的区别
一 类型分析
未定义的值和定义但还没有赋值的值为undefined
null是一种特殊的object
NaN是一种特殊的number
二 比较运算
1)undefined与null是相等(==),但不全等(===);
2)NaN与任何值都不相等,与自己也不相等。

对象类型

对象是属性的集合,每个属性都由名/值对构成。值可以是原始值,如数字、字符串,也可以是对象

  • 普通的JS对象是“命名值”的无序集合
  • 数组是一种特殊的对象,表示带编号的值的有序集合,拥有一些和普通对象不同的特有行为特征
  • 函数也是一种特殊的对象

类(class)
数组(Array)类
函数(Function)类
日期(Date)类
正则(RegExp)类
错误(Error)类

你可能感兴趣的:(【JavaScript】数据类型)