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

<!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. Go 代码审查建议

    https://github.com/golang/go/wiki/CodeReviewComments https://studygolang.com/articles/6054

  2. LC 988. Smallest String Starting From Leaf

    Given the root of a binary tree, each node has a value from 0 to 25 representing the letters 'a' to  ...

  3. kotlin 类的委托

    fun main(arg: Array<String>) { val baseImpl = baseImpl() demo(baseImpl).printL() } interface b ...

  4. [Scikit-learn] 2.3 Clustering - kmeans

    参考: 2.3. Clustering 2.4. Biclustering 2.1.2.3. The Dirichlet Process Clusering, GMM, Variational Inf ...

  5. Delphi10.2安装过程详解

    下载好的Delphi10.2是iso镜像,使用虚拟光驱,快速装载后,提示安装   运行setup.exe安装程序,选择安装语言——点击OK,最好关闭网络和退出其他软件   勾选同意条款,点击next ...

  6. pip安装软件报错 utf-8 code can't decode byte 0xcf in position7

    pip安装软件报错 utf-8 code can't decode byte 0xcf in position7 根据错误提示的路径找到__init__.py文件 根据错误提示的最后几句话找到对应的行 ...

  7. mysql查看数据库所占用的空间

    查询某个表所占用的磁盘空间大小: SELECT CONCAT(ROUND(SUM(data_length/1024/1024),2),'MB') AS data_length_MB, CONCAT(R ...

  8. 如何解决docker 官方镜像拉取慢的问题

    转自: http://skycity.today/?thread-307.htm 国内从 docker 官方 Registry 拉取 image 慢的解决,步骤如下: 1.注册一个阿里云账号. 2.阿 ...

  9. Flutter 的一些小技巧

    1. 获取状态栏高度 import 'dart:ui'; MediaQueryData.fromWindow(window).padding.top 2. 设置AppBar的高度 Scaffold( ...

  10. tomcat-APR配置及三种工作模式简介

    安装软件包,之前可以用rpm -q 命令查看一下是否存在,如果有这两个软件包先卸载再重新安装yum -y install apr apr-devel 拷贝Tomcat安装目录下的bin目录下的tomc ...