先了解一下数组的基础知识:附代码(数组属于引用类型的对象)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
// 数组:存储一组变量的内存中连续存储多个数据的存储空间
// 使用数组的好处:连续存储的多个数据便于维护和查询
// 数组的创建:
// 1.创建空数组:
var arr = [];
var arr1 = new Array();
// 2.创建一个已知数据个数的空数组
var arr2 = new Array();
// 3.创建数组同时赋值
var arr = ["王五","李四","张三"];
var arr1 =new Array("王五","李四","张三");
// 通过下标访问数组,若无值就显示undefined
console.log(arr[],arr[],arr[],arr[]);
// 特征:
// 1.不限制元素的存储数据类型
var array = ["jack",true,3.14];
// 2.不限制下标的越界
array[] = ;//自动在制定位置新建元素保存元素
console.log(array);
console.log(array[]);
// 3.不限制数组的元素个数
array[] = "marry";
console.log(array);
// 4.数组的.length属性:记录了理论上的元素个数 永远是最后一个元素的下标+1
console.log(array.length);//10+1
// 5.获取数组的最后一个元素 array.length-1
console.log(array[array.length-]);
// 6.在数据末尾追加新内容 array.length
array[array.length] = "haha";
console.log(array);
// 删掉数组中的某个元素
array[]="";
// 删掉数组的最后一个元素
array.length--;
// 删掉数组末尾的n个元素
array.length = array.length-n;
</script>
</body>
</html>

基础类型:number string boolean undefined null

数据直接保存在变量本地的数据类型
数据进行传值时,是将原变量的值复制一份传递给新变量,新变量的值发生改变时,原变量的值不会发生变化
引用类型:
1.数据无法直接保存在变量本地的数据类型,变量只允许保存一个值
2.引用类型的对象会在window对象之外创建一个独立的存储空间,并给一 个唯一的地址,变量中保存的就只这个存储空间的地址——称为"引用"
3.数据进行传值时,传递的是地址,若新变量修改,则数据也会改变

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>数组是引用类型的对象</title>
</head>
<body>
<script type="text/javascript">
// 基础类型进行传值时 新变量的改变并不会影响原变量
var a =10;
var b=a;
b++;
console.log(a);//值为10
console.log(b);//值为11
// 引用类型进行传值时,新变量的改变会直接改变原变量的值,因为对象之间传递的时存储数据的地址
var arr = [1,2,3,4,5];
var arr1 =arr;
arr1.length--;
console.log(String(arr));//1,2,3,4
arr1 = null;//当赋值为空时,表示此变量不再引用这个数组
console.log(String(arr1)); // undefined js使用 定义变量为赋值时,变量的初值为undefined
// null 程序员使用,手动清楚一个变量的内容
// 基础类型:直接清空变量内容
// 引用类型:表示变量不再引用对象
// 何时清空一个变量
// 垃圾回收:js引擎会自动释放不再被任何变量引用的对象
// 垃圾回收器:专门回收不再使用的对象的小程序
// 1.记录每一个对象,被几个变量引用着,每多一个变量引用,计数器+1
// 当一个变量赋值null时,计数器-1
// 2.当计数器为0时,表示对象不再被任何变量引用,对象就被回收
// 3.使用一个较大的对象时 主动清空
</script>
</body>
</html>

JavaScript-->基础类型和引用类型的区别的更多相关文章

  1. 【转】Javascript基本类型和引用类型的区别

    根据[转贴]进一步补充 今天明白了一个困扰很久的问题:引用类型和基本类型的区别与联系要明白这个问题,首先需要理解堆栈的概念.那什么又是堆栈,有什么区别和联系呢?堆:首先堆是动态分配的,JVM并不会自动 ...

  2. javascript中基本类型和引用类型的区别分析

    大多数人系统学习过的程序设计语言,在这些语言的学习过程中最早学到的几个要点之一就是值类型和引用类型的区别.下面我们来看一下在 JavaScript 中基本数据类型(Primitive Types)和引 ...

  3. [转]javascript中基本类型和引用类型的区别分析

    基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段:引用类型值指由多个值构成的对象.当我们把变量赋值给一个变量时,解析器首先要做的就是确 ...

  4. JavaScript 基本类型和引用类型

    前言 ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 基本类型 Undefined.Null.B ...

  5. javascript基本类型和引用类型,作用域和内存问题

    基本类型(null.undefined.boolean.number.string)和引用类型(Object 对象) 1  基本类型:只能不存一个值,一种类型:从一个变量向另一个变量复制基本类型的值, ...

  6. js 中的基本类型和引用类型的区别

    js中的基本类型赋值之后,只有值相等的时候,二者才会相等,例如 var  a='123'; var b=a; console.log(a===b); 返回的是true ,说明他们是相等的, 此时改变a ...

  7. js中函数参数基本类型和引用类型的区别

    高级程序设计中说明,所有函数的参数都是按值传递的. 基本类型 向参数传递基本类型的值时,被传递的值会被复制给对应的命名参数 function addTen(num){ num=+10; return ...

  8. 【js】基本类型和引用类型的区别

    1.保存方式:(一脸懵逼???) 基本类型是按值访问的,可以在变量的生命周期改变它,但是它是储存在哪里的呢?在浏览器缓存吗?[执行环境中定义的所有变量和函数都存储在执行环境的变量对象里,变量对象我们编 ...

  9. Javascript之基本类型和引用类型

    ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值,基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 在将一个值赋给变量时,解析器必须确定这个值是基本 ...

随机推荐

  1. List和Set 总结

    一 List三个子类的区别和应用场景 Vector:底层是数组,查询快,增删慢 Arraylist:底层是数组,查询块,增删慢 LinkedList:底层是链表,查询慢,增删快 效率: Vector: ...

  2. mySQL 插入,更新和删除数据

    插入数据: 语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 如 ...

  3. unfortunately 遗憾的是

    Yet,unfortunately,when it comes to the time for you to talk about these topics in English,......(unf ...

  4. Build Telemetry for Distributed Services之Open Telemetry来历

    官网:https://opentelemetry.io/ github:https://github.com/open-telemetry/ Effective observability requi ...

  5. ES6深入浅出_汇总贴

    H:\BaiDu\ES6深入浅出-wjw ES 6 新特性一览:https://frankfang.github.io/es-6-tutorials/ 我用了两个月的时间才理解 let https:/ ...

  6. Java中遍历Map的四种方式

    Demo如下 Map<String, String> map = new HashMap<>(); map.put("key1","data1&q ...

  7. 共享打印机,错误0x80070035和错误0x00000709的解决办法

    这两个错误可以说是共享打印机里经常出现的错误了. 首先,要确认客户机可以ping通打印机的直连电脑的IP,如果这一步不通,那别玩了. 其次,很多人会忽略的一点儿,两个电脑的dns最好设置为相同的,经测 ...

  8. C#:获取控件对象在工具箱里的图标

    工作上的需要.要写一个对控件操作的插件. 在插件中需要把设计器界面上的控件以树形结构列出来,配上控件在工具箱的图标.效果如图: 怎么能够获取到这个图标呢?下面用个例子说明. public Class ...

  9. java中length和length()的区别?

    在java中String类可以定义字符串变量和字符串数组,length()用于求String字符串对象的长度,而length用  于求String字符串数组的长度.  length()是求String ...

  10. 蓝牙AT模式

      一.蓝牙AT模式设置方式 在通电前按住蓝牙模块黑色按钮,接电,当蓝牙指示灯按每隔两秒闪烁一次时进入AT模式: 有3种设置方式: 1.默认设置 模块工作角色:从模式    串口参数:38400bit ...