JavaScript-->基础类型和引用类型的区别
先了解一下数组的基础知识:附代码(数组属于引用类型的对象)
<!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-->基础类型和引用类型的区别的更多相关文章
- 【转】Javascript基本类型和引用类型的区别
根据[转贴]进一步补充 今天明白了一个困扰很久的问题:引用类型和基本类型的区别与联系要明白这个问题,首先需要理解堆栈的概念.那什么又是堆栈,有什么区别和联系呢?堆:首先堆是动态分配的,JVM并不会自动 ...
- javascript中基本类型和引用类型的区别分析
大多数人系统学习过的程序设计语言,在这些语言的学习过程中最早学到的几个要点之一就是值类型和引用类型的区别.下面我们来看一下在 JavaScript 中基本数据类型(Primitive Types)和引 ...
- [转]javascript中基本类型和引用类型的区别分析
基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段:引用类型值指由多个值构成的对象.当我们把变量赋值给一个变量时,解析器首先要做的就是确 ...
- JavaScript 基本类型和引用类型
前言 ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 基本类型 Undefined.Null.B ...
- javascript基本类型和引用类型,作用域和内存问题
基本类型(null.undefined.boolean.number.string)和引用类型(Object 对象) 1 基本类型:只能不存一个值,一种类型:从一个变量向另一个变量复制基本类型的值, ...
- js 中的基本类型和引用类型的区别
js中的基本类型赋值之后,只有值相等的时候,二者才会相等,例如 var a='123'; var b=a; console.log(a===b); 返回的是true ,说明他们是相等的, 此时改变a ...
- js中函数参数基本类型和引用类型的区别
高级程序设计中说明,所有函数的参数都是按值传递的. 基本类型 向参数传递基本类型的值时,被传递的值会被复制给对应的命名参数 function addTen(num){ num=+10; return ...
- 【js】基本类型和引用类型的区别
1.保存方式:(一脸懵逼???) 基本类型是按值访问的,可以在变量的生命周期改变它,但是它是储存在哪里的呢?在浏览器缓存吗?[执行环境中定义的所有变量和函数都存储在执行环境的变量对象里,变量对象我们编 ...
- Javascript之基本类型和引用类型
ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值,基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 在将一个值赋给变量时,解析器必须确定这个值是基本 ...
随机推荐
- linux下如何批量替换多个文件中的某个字符串?
答: sed -i "s/<old_string>/<new_string>/g" `grep "<old_string>" ...
- vue+webpack 实现懒加载的三种方式
第一种: 引入方式 就是正常的路由引入方式 const router = new Router({ routes: [ { path: '/hyh', component: hyh, name: 'h ...
- 阿里云服务器怎么用ip访问不了
个人想做个网站,就买了个阿里云服务器,不得不说阿里的安全做的很好,但是对于我这种小白,就成了麻烦了 工具/原料 阿里云服务器 方法/步骤 首先百度搜索阿里云,进入登录界面,输入账号密码登录 ...
- 003-多线程-JUC线程池-几种特殊的ThreadPoolExecutor【newFixedThreadPool、newCachedThreadPool、newSingleThreadExecutor、newScheduledThreadPool】
一.概述 在java doc中,并不提倡我们直接使用ThreadPoolExecutor,而是使用Executors类中提供的几个静态方法来创建线程池: 以下方法是Executors下的静态方法,Ex ...
- Ubuntu16.04安装vmware pro 15激活码
VMware Workstation Pro 15 激活许可证UY758-0RXEQ-M81WP-8ZM7Z-Y3HDAVF750-4MX5Q-488DQ-9WZE9-ZY2D6UU54R-FVD91 ...
- [leetcode_easy]558. Quad Tree Intersection
problem 558. Quad Tree Intersection re 1. Leetcode_easy_558. Quad Tree Intersection; 2. Grandyang; e ...
- 【ARM-Linux开发】打包解包命令
tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip ...
- 【DSP开发】如何获得浮点型的数据的IEEE的表示
[DSP开发]如何获得浮点型的数据的IEEE的表示 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 浮点数的存储规范,由IEEE指定的,具体的规范文件是:IE ...
- Java学习笔记-基础语法
Java基础包含关键字,标识符,注释,常量和变量,运算符 关键字 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 Java的关键字 用于定义数据类型的关键 ...
- WCF服务的Web HTTP方式
NET 3.5以后,WCF中提供了WebGet的方式,允许通过url的形式进行Web 服务的访问.现将WCF服务设置步骤记录如下: endpoint通讯协议设置成 webHttpBinding en ...