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

<!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. php判断为空就插入,判断不为空就更新

    if ($_GET['tplname']!==null) { if ($userinfo[0] == ''){$exec="INSERT INTO cblej_company_pc_temp ...

  2. SpringBoot 部署到Linux开机自启动和运行

    前文 SpringBoot是一个强大的微服务框架,通常都是打包项目成Jar包,并部署到服务器上,本文以Linux服务器部署为主 开机自启动 博文:<https://www.cnblogs.com ...

  3. C++ STL partial_sort_copy iterator

    vector<int>::iterator iter1 = partial_sort_copy(deq1.begin(), deq1.end(), vec1.begin(), vec1.e ...

  4. Qt编写数据可视化大屏界面电子看板12-数据库采集

    一.前言 数据采集是整个数据可视化大屏界面电子看板系统核心功能,没有数据源,这仅仅是个玩具UI,没啥用,当然默认做了定时器模拟数据,产生随机数据,这个可以直接配置文件修改来选择采用何种数据采集方法,总 ...

  5. Flutter 贝塞尔曲线切割

    现在人们对于网站的美感要求是越来越高了,所以很多布局需要优美的曲线设计.当然最简单的办法是作一个PNG的透明图片,然后外边放一个Container.但其内容如果本身就不是图片,只是容器,这种放入图片的 ...

  6. QFramework 使用指南 2020(六):脚本生成(4)小结与补充

    我们花了四篇文章,介绍了 QF 中的脚本生成功能. 实际上 QF 中的脚本生成是有两种的,第一种就是我们现在学习的 ViewController + Bind 模式. 这种模式是为除 UGUI 以外的 ...

  7. linux ssh利用公钥免密登陆

    1.安装检查ssh 如果没有ssh的话,需要安装 #yum  install -y openssh-server openssh-clients 2.生成秘钥 ssh-keygen -t rsa 执行 ...

  8. Java学习笔记-包,classpath,import,jar

    这里介绍Java的包,classpath,import和jar 包(package) 对类文件进行分类管理 给类提供多层命名空间 写在程序文件的第一行 类名的全称的是 包名.类名 包也是一种封装形式 ...

  9. 最新 网龙网络java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.网龙网络等10家互联网公司的校招Offer,因为某些自身原因最终选择了网龙网络公司.6.7月主要是做系统复习.项目复盘.Le ...

  10. Spring 视图层如何显示验证消息提示

    1.示例 <p th:if="${#fields.hasErrors('name')}" th:errors="*{name}" ></p&g ...