JavaScript基础——数据类型

一、基本类型

对语言引擎和开发人员来说, 类型是值的内部特征,它定义了值的行为,以使其区别于其它值。如对Number类型的值进行数学运算,对String类型的值进行字符串操作。

简单数据类型:String, Number, Boolean, Undefined, Null, Symbol, BigInt

特性

  1. 值是不可变的

  2. 存放在栈区
    原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储。

  3. 比较是值的比较

var a = 1;
var b = true;
console.log(a == b);    // true
console.log(a === b);   // false

通过=赋值得到的两个基本类型a和b可以记为两家连锁店,两者之间相互独立。
通过=赋值得到的两个引用类型a和b可以记为一家店里的两把钥匙,指向的都是同一家店。

null 和undefined

null表示"没有对象",代表一个空对象指针,即该处不应该有值
(1) 作为函数的参数,表示该函数的参数不是对象。
(2) 作为对象原型链的终点

Object.prototype.__proto__ 	// null

undefined表示"缺少值",就是此处应该有一个值,但是还没有定义
(1)变量被声明了,但没有赋值时,就等于undefined。
(2)对象没有赋值的属性,该属性的值为undefined。
(3)调用函数时,应该提供的参数没有提供,该参数等于undefined。
(4)函数没有返回值时,默认返回undefined。

var i;
i // undefined

var  o = new Object();
o.p // undefined

function f(x){
   console.log(x)}
f() // undefined

var x = f();
x // undefined

两者都可以通过!判断

var a = null;
var b;   // undefined
!a;   // true
!b;   // true

二、引用类型

  1. 值是可变的
var a={
   age:20};
a.age=21;
console.log(a.age)//21
  1. 指针存在栈内存和实体对象存在堆内存
    javascript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间,引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定,如果存储在栈中,将会影响程序运行的性能;引用数据类型在栈中存储指针,该指针指向堆中存储的对象。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。

  2. 比较是堆内存地址的比较

var person1 = {
   };
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值