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变量可能包含两种不同数据类型的值:基本类型值和引用类型值,基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 在将一个值赋给变量时,解析器必须确定这个值是基本 ...
随机推荐
- 50行代码写的一个插件,破解一个H5小游戏
小游戏链接:测测你的眼睛对色差的辨识度http://www.webhek.com/post/color-test.html?from=timeline 废话不多说,先放代码: window.onloa ...
- Antecedent Membership Functions相关资料
属于模糊控制领域 前件隶属函数(Antecedent Membership Functions) 基于模糊近似的强化学习方法研究 - 豆丁网 https://www.docin.com/p-13022 ...
- 安装SQL server 提示重新启动计算机失败
SQL Server2008是一款功能强大.实用性强的mysql数据库管理系统,因此很多用户都会在Win7系统中安装SQL Server2008,但是不少用户在安装过程中遇到问题,安装SQL Serv ...
- Kibana Query Language(KQL)
语法: 官方文档 If you’re familiar with Kibana’s old lucene query syntax, you should feel right at home wit ...
- python一个文件里面多个函数同时执行(多进程的方法,并发)
#coding=utf-8 import timefrom selenium import webdriverimport threading def fun1(a): print a def fun ...
- Method org/apache/commons/dbcp/DelegatingResultSet.isClosed()Z is abstract
按照网络上的排除建议,换成了alibaba的druid. 相关maven依赖如下,注意版本匹配问题 spring版本使用4.3.24.RELEASE <dependency> <gr ...
- html table设置成强制不换行
在html文件中添加如下代码: <style type="text/css"> table td{word-break: keep-all;white-space:no ...
- InfluxDB入门教程
前言InfluxDB是一个时序性数据库,详细资料如下http://liubin.org/blog/2016/02/18/tsdb-intro/ 下载和安装LZ从官网下载的是influxdb-1.2.4 ...
- RestHighLevelClient 之 Scroll
ES中默认最大查询结果为10000,大于10000时查不出结果,报错超过最大值,如把 from调到大于10000. 针对这个问题,有两种解决办法. 第一种,修改 max_result_window 很 ...
- java -io 读取文件操作
主要分为字节读取和字符读取,字节读取可以一个一个读取和字节数组读取,字符读取同样之,字符读取适合文本读取,字节读取皆可以 这里直接上代码,读取文件的9个小demo package com.io; im ...