前端基础知识:javascript基本类型和引用类型

2021-02-0209:47:37WEB前端开发Comments1,178 views字数 919阅读模式

基本类型:undefined、null、string、number、boolean、symbol文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/20914.html

特点文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/20914.html

  1. 基本类型的值是不可变得
// 任何方法都无法改变一个基本类型的值
 let name = 'jay';
 name.toUpperCase(); // 输出 'JAY'
 console.log(name); // 输出  'jay'
  1. 基本类型的比较是值的比较
// 只有在它们的值相等的时候它们才相等
let a = 1;
let b = true;
console.log(a == b); //true
// 用==比较两个不同类型的变量时会进行一些类型转换。
// 先会把true转换为数字1再和数字1进行比较,结果就是true了
  1. 基本类型的变量是存放在栈区的(栈区指内存里的栈内存)

引用类型:Object、Array、RegExp、Date、Function文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/20914.html

也可以说是就是对象。对象是属性和方法的集合,也就是说引用类型可以拥有属性和方法,属性又可以包含基本类型和引用类型文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/20914.html

特点文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/20914.html

  1. 引用类型的值是可变的
// 我们可为为引用类型添加属性和方法,也可以删除其属性和方法
let person = { name: 'pig' };
person.age = 22;
person.sayName = () => console.log(person.name); 
person.sayName(); // 'pig'
delete person.name;
  1. 引用类型的比较是引用的比较
let person1 = '{}';
let person2 = '{}';
console.log(person1 == person2); // 字符串值相同,true

let person1 = {};
let person2 = {};
console.log(person1 == person2); // 两个对象的堆内存中的地址不同,false
  1. 引用类型的值是同时保存在栈内存和堆内存中的对象

javascript和其他语言不同,其不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。实际上,是操作对象的引用,所以引用类型的值是按引用访问的。准确地说,引用类型的存储需要内存的栈区和堆区(堆区是指内存里的堆内存)共同完成,栈区内存保存变量标识符和指向堆内存中该对象的指针,也可以说是该对象在堆内存的地址。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/20914.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/20914.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定