JS分两种数据类型,你都知道吗?

大牛请无视此篇!

JS主要分基本数据类型和引用数据类型,这两者区别可大了,此篇看完必有长进,下面进入正题

首先我们看下什么是基本数据类型(概念我就不说了,直接上代码):

var i = 10;
var x = 11;
var y = ‘lemon’
var z = ‘柠檬’

这些最基本的就是基本数据类型了,下面看下什么是引用数据类型:

var arr = [1,2,3,4,5];
var arr = [‘lemon1‘,‘lemon2‘,‘lemon3‘];
var obj = {
name:‘lemon‘,
age:‘18‘
}

像这些数组,对象都是引用数据类型。

下面我们来说下两者的区别吧

首先看两个简单的小测试:

//基本数据类型
var i = 1;
var n = i;
n = 10;
console.log(i);
//引用数据类型
var arr1 = [1,2,3,4,5];
var arr2 = arr1;
arr2[0] = 10;
console.log(arr1[0])

此时 i 是多少,arr1[0]又是多少?

想必很多人一眼就看出 i 多少了,不就是1么,没错,那arr[0],是多少呢?

此时arr1[0]就变成10了,这就是引用数据类型与基本数据类型的区别,下面我就用我最熟练的普通话来为大家简单讲解一下:

其实基本数据类型中i与n直接没有任何关系,当然,n改变不会影响到i;但是在引用数据类型中arr1只是指向数组或者是对象的,就是获取到这个数组(或对象)的在内存空间的地址,就像我们的门牌号差不多,当arr2 = arr1 的时候,也就是arr2也指向了这个数组,其中指向这个数组的任何一个变化,其内存空间中的值就会发生变化,当然,所有指向这个数组的也就都会发生变化咯!

学到东西记得点下关注哟!

时间: 2024-12-18 23:31:13

JS分两种数据类型,你都知道吗?的相关文章

js的两种数据类型

js中的数据类型总体来说分为两种,他们分别是: 1 值类型(基本类型):数值型(Number),字符类型(String),布尔值型(Boolean),null 和 underfined 2 引用类型(类):函数,对象,数组等 值类型理解:变量之间的互相赋值,是指开辟一块新的内存空间,将变量值赋给新变量保存到新开辟的内存里面:之后两个变量的值变动互不影响: 例如: var a=10;//开辟一块内存空间保存变量a的值“10”: var b=a;//给变量b开辟一块新的内存空间,将a的值“10”赋值

关于js中两种定时器的设置及清除

1.JS中的定时器有两种: window.setTimeout([function],[interval]) 设置一个定时器,并且设定了一个等待的时间[interval],当到达时间后,执行对应的方法[function],当方法执行完成定时器停止(但是定时器还在,只不过没用了); window.setInterval([function],[interval]) 设置一个定时器,并且设定了一个等待的时间[interval],当到达时间后,执行对应的方法[function],当方法执行完成,定时器

iOS8以后UIAlertView和UIActionSheet两种alert页面都将通过UIAlertController来创建

1. Important: UIAlertView is deprecated in iOS 8. (Note that UIAlertViewDelegate is also deprecated.) To create and manage alerts in iOS 8 and later, instead use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert. //UIAlertView和UI

GUID和INT两种数据类型做主键的比较

转自http://www.cnblogs.com/zhuqil/archive/2010/12/02/1894575.html 我们公司的数据库全部是使用GUID做主键的,很多人习惯使用int做主键.所以呢,这里总结一下,将两种数据类型做主键进行一个比较. 使用INT做主键的优点: 1.需要很小的数据存储空间,仅仅需要4 byte . 2.insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能. 3.index和Join 操作,int的性能最好. 4.

MyEclipse取消验证Js的两种方法

MyEclipse取消验证Js的两种方法 作者: 字体:[增加 减小] 类型:转载 通过js写一个web工程的相关页面时感觉很卡,修改内存也不行下面有两种解决方法,大家可以尝试下 前言:有时我们通过js写一个web工程的相关页面时感觉很卡,修改内存也不行下面有俩种解决方法: 1. 选中当前工程—properties—MyEclipse—validation—Excluded Resource下找到须要作废验证的文件或者文件夹就可以了. 2. 找到在项目路径下面的.project文件中配置了一些验

JavaScript两种数据类型的存储方式

JavaScript中数据类型的存储 区别: 两种类型的区别是:存储位置不同 基本数据类型 原始数据类型是直接存储在栈(stack)中的简单数据段.因为占据空间小.大小固定,属于被频繁使用数据,所以放入栈中存储. 引用数据类型 引用数据类型存储在堆(heap)中的对象,占据空间大.大小不固定.如果存储在栈中,将会影响程序运行的性能. JavaScript中的引用数据类型有: Array Object 引用数据类型是保存在堆内存中的,然后再栈内存中保存一个对堆内存中实际对象的引用(栈内存中保存了一

go两种数据类型的区别、数据类型和操作符、常量、变量声明

值类型和引用类型 1.值类型:变量直接存储值,内存通常在栈中分配. 基本数据类型int.float.bool.string以及数组和struct. 2.引用类型:变量存储的是一个地址,这个地址存储最终的值.内存通常在堆上分配.通过GC回收. 指针.slice(切片).map.chan(管道).interface等都是引用类型. 堆和栈的区别: 一.堆栈空间分配区别: 1.栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈: 2.堆(操作系统

.net开发环境的认识,控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值打印 两种数据类型,整形类型转换

首先感谢向立凯老师带我走进.net这个很好的软件开发程序.通过两天的学习在这个领域的了解也多了很多,让大家先了解一下c#语言 c#是一种全新且简单.安全.快捷面向对象的程序设计语言.是专门为.net应用开发的语言..net的开发都基于一个统一的开发环境 Visual Studio.net.下面我们来看看怎么在Visual Studio.net.下创建以新的项目: 1.打开 2.新建一个项目 通过执行文件-新建-项目菜单命令,会弹出一个新建项目对话框.在这个对话框中选择开发语言为c#,选择框架版本

java中线程分两种,守护线程和用户线程。

java中线程分为两种类型:用户线程和守护线程. 通过Thread.setDaemon(false)设置为用户线程: 通过Thread.setDaemon(true)设置为守护线程. 如果不设置次属性,默认为用户线程. 区别:主线程结束后用户线程会继续运行,JVM存活:主线程结束后,如果没有用户线程,都是守护线程,则JVM结束. public class Mytest extends Thread { public void run() { for(int i=0;;i++){ try { Th