时间:2021-05-25
基本类型和引用类型的值
ECMAScript变量一般有两种数据类型的值:基本类型和引用类型。
1. 动态的属性
定义两者的值:创建一个变量并为其变量赋值;
执行两者的值:
比如:引用类型 a,可以添加属性 name age
var a = new Object();a.name = "杨子龙";a.age = 24;console.log(a.name); //杨子龙基本类型 name 无法添加属性 age
var name = "杨子龙";name.age = 24;console.log(name.age); //undefined代码中可知:只能给引用类型值动态地添加属性,以便将来使用。
2. 赋值变量值
从一个变量向另一个变量复制基本类型值和引用类型值时:
基本类型:在变量对象上创建一个新值,并将其值复制给新变量分配的位置上;(完全独立的两个变量)
例如
var a = 111; var b = a; console.log(b); //111代码中可知:变量b的值只是变量a的值的一个副本,两者的值111是完全独立的。
引用类型:将存储在变量对象中的值复制一份放到为新变量分配的空间中;(引用同一个对象的两个变量)
引用类型的值的副本实际是一个指针,指向存储在堆中的一个对象。
var obj1 = new Object;var obj2 = obj1;obj1.name = "杨子龙";console.log(obj2,name); // Object { name="杨子龙"} 杨子龙代码中可知:obj1和obj2都指向同一个对象Object;所以,为obj1添加的name属性,通过obj2也可以访问的到。
3. 传递参数
我们都知道基本类型是按值访问的,因为可以访问保存在变量中的实际的值。
所有函数的参数都是按值传递的。
基本类型:基本类型值的传递如同基本类型变量的复制一样;
在向参数传递值,被传递的值会被复制给一个局部变量(命名参数),因此这个局部变量的变化不会反映在函数的外部。
例如:
代码中可知:参数num和变量a互不相识,只是有着相同的值而已,用完之后,你还是你,我还是我,互不干政。
引用类型:引用类型的传递如同引用类型变量的复制一样;
在向参数传递值时,会把这个值在内存中的地址复制给一个局部变量,因此这个局部变量的变化会反映在函数的外部。
例如:
代码中可知:在这个函数内部,参数obj和变量person引用的是同一个对象Object,所以,你不动我也不动,你动我也动,你中有我,我中有你,情义绵绵,经久不息……
也就是说:即使变量person是按值传递的,但是参数obj(想象成局部变量)还是会按引用来访问同一个对象。
访问变量有按值和按引用两种方式,参数只能按值传递。
4. 检测类型
基本类型:typeof
引用类型:instanceof(对象或null)
例如:
所用引用类型的值都是Object的实例。
如下:
使用instanceof检测基本类型,会返回false,基本类型不是对象。
以上所述是小编给大家介绍的JavaScript 的变量详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、变量 从字面上看,变量是可变的量;从编程角度讲,变量是用于存储数据的容器1.1变量特性 javascript中的变量是松散类型的,可以保存任何类型的数据
对于一门编程语言,肯定包含变量和数据类型。今天我们就来看看JavaScript脚本语言的变量和数据类型。相对于其他的Java,C++等高级程序语言,JavaSc
基本类型和引用类型的值ECMAScript变量一般有两种数据类型的值:基本类型和引用类型。基本类型:简单的数据段:Undefined,Null,Boolean,
javascript作用于作用域链的详解一、JavaScript作用域任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制
第一页:JavaScript数据类型详解第二页:JavaScript数据类型详解第三页:JavaScript数据类型详解 数据类型 JavaScript中有