javascript 基本类型和引用类型的值【javascript高级程序设计】
来源:互联网 发布:零基础学画画的书 知乎 编辑:程序博客网 时间:2024/06/15 02:33
/*
ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。
基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。
而引用类型值则是指那些保存在堆内存中的对象,意思是变量中保存的实际上是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。
5中基本数据类型:Undefined、Null、Boolean、Number和String.
这5种基本数据类型的值在内存中占有固定大小的空间,因此可以把它们的值保存在栈内存中。
这样可以提高查询的速度。对于保存基本类型值的变量,我们说它们是按值访问的,因为我们操作的是它们实际保存的值。
如果赋给变量的是一个引用类型的值,则必须在堆内存中为这个值分配空间。由于这种值得大小不固定,因此不能把它们保存到占内存中。
但内存地址的大小是固定的,因此可以将内存地址保存在栈内存中。这样,当查询引用类型的变量时,就可以首先从栈中读取内存地址,然后再
“顺藤摸瓜”地找到保存在堆中的值。对于这种查询变量值的方式,我们把它叫做按引用访问,因此我们操作的不是实际的值,而是被那个值所引用的对象。
ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。
基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。
而引用类型值则是指那些保存在堆内存中的对象,意思是变量中保存的实际上是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。
5中基本数据类型:Undefined、Null、Boolean、Number和String.
这5种基本数据类型的值在内存中占有固定大小的空间,因此可以把它们的值保存在栈内存中。
这样可以提高查询的速度。对于保存基本类型值的变量,我们说它们是按值访问的,因为我们操作的是它们实际保存的值。
如果赋给变量的是一个引用类型的值,则必须在堆内存中为这个值分配空间。由于这种值得大小不固定,因此不能把它们保存到占内存中。
但内存地址的大小是固定的,因此可以将内存地址保存在栈内存中。这样,当查询引用类型的变量时,就可以首先从栈中读取内存地址,然后再
“顺藤摸瓜”地找到保存在堆中的值。对于这种查询变量值的方式,我们把它叫做按引用访问,因此我们操作的不是实际的值,而是被那个值所引用的对象。
*/
/*//4.1.1 动态属性//引用类型var person = new Object();person.name = "Nicholas";alert(person.name);//Nicholas//基本类型var name = "Nicholas";name.age=27;alert(name.age);//undefined//总结:对于引用类型的值,我们可以为其添加属性和方法,也可以改变和删除其属性和方法。//但是,我们不能给基本型类的值添加属性,尽管这样做不会导致任何错误。*/
/*//4.1.2 复制变量值var num1=5;var num2=num1;alert(num2);var obj1=new Object();var obj2 = obj1;obj1.name="Nicholas";alert(obj2.name);*/
//4.1.3 传递参数/*function addTen(num){num+=10;return num;}var count=20;var result=addTen(count);alert(count);//20alert(result);//30*//*function setName(obj){obj.name="Nicholas";}var person = new Object();setName(person);alert(person.name);//Nicholas*//*function setName(obj){obj.name="Nicholas";obj=new Object();obj.name="Greg";}var person = new Object();setName(person);alert(person.name);//Nicholas*/
//4.1.4 检测类型//基本类型用 typeof 检测var s = "Nicholas";var b = true;var i = 22;var u;var n =null;var o = new Object();alert(typeof s);//stringalert(typeof b);//booleanalert(typeof i);//numberalert(typeof u);//undefinedalert(typeof n);//objectalert(typeof o);//object//引用类型 result=variable instanceof constructoralert(person instanceof Object);alert(colors instanceof Array);alert(pattern instanceof RegExp);
- javascript 基本类型和引用类型的值【javascript高级程序设计】
- javascript高级程序设计第三版 第4章 基本类型和引用类型的值 学习笔记
- javascript的基本类型和引用类型
- JavaScript的基本类型和引用类型
- JavaScript高级程序设计之变量、作用域和内存问题之基本类型和引用类型的值第4.1讲笔记
- JavaScript基本类型和引用类型的值
- 《JavaScript高级程序设计》读书笔记(二):引用类型
- JavaScript高级程序设计笔记-引用类型
- 《JavaScript高级程序设计》读书笔记--5-引用类型
- JavaScript高级程序设计(引用类型)
- Javascript 中的引用类型和基本类型(值类型)
- JavaScript高级程序设计之引用类型之基本包装类型第5.6讲笔记
- javascript 高级程序设计 第5章 引用类型 Object类型
- Javascript中的基本类型和引用类型
- JavaScript基本类型和引用类型
- JavaScript中的基本类型和引用类型
- javascript基本类型和引用类型浅析
- JavaScript基本类型和引用类型
- 打印DataGridView中的内容
- Servlet,Listener和Filter 获取ServletContext (application上下文环境)
- Ext.grid.Panel一定要有renderTo或autoRender属性,不然页面为空
- Android 学习笔记1
- PHP 生成RSS 类 PHP 生成RSS类,非常方便
- javascript 基本类型和引用类型的值【javascript高级程序设计】
- mapreduce调试查询System.out的结果
- OpenCV学习笔记(六)——对XML和YAML文件实现I/O操作
- Android培训班(77)Dalvik虚拟机的dvmInterpretStd函数
- Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)
- javascript执行环境及作用域【javascript高级程序设计】
- 稳定,大容量,不限文件大小,无流量限制的网盘
- 线程互斥
- Java 算法基础 -递归