js变量以及作用于
2015-06-22 20:46
525 查看
变量基本类型值有:undefined,NUll,Boolean,Number和String,这些类型分别在内存中占有固定的大小空间,他们的值,保存在栈空间。(1)值类型:数值、布尔值、null、undefined。
(2)引用类型:对象、数组、函数。如果赋值的是引用类型的值,则必须在堆内存中为这个值分配空间。由于这种值的大小不固定(对象有很多属性和方法),因此不能把他们保存到栈内存中。但内存地址大小是固定的,因此可以将内存地址保存在栈内存中。
(2)引用类型:对象、数组、函数。如果赋值的是引用类型的值,则必须在堆内存中为这个值分配空间。由于这种值的大小不固定(对象有很多属性和方法),因此不能把他们保存到栈内存中。但内存地址大小是固定的,因此可以将内存地址保存在栈内存中。
var tmp = new Object(); //创建一个引用类型 var tmp = "hah"; //基本类型值是字符串 tmo.age = 22; //基本类型值添加属性很怪异,因为只有对象才可以添加属性。 alert(tmo.age); //不是引用类型,无法输出; 变量值的复制
var man = new Object();//man指向了栈内存的空间地址 man.name = "hah"; var man2 = man;//man2获得了man的指向地址 man2.name = "ming";//因为他们都指向同一个object,同一个name,不管修改谁,大家都修改了 alert(man2.name);//两个都弹出ming alert(man.name); 基本类型和引用类型也有所不同,基本类型复制的是值本身,而引用类型复制的是地址。 传参
function test(num){ //按值传递 num+=10; return num; } var num = 10; var result = test(num); alert(result); //如果是按引用传递,那么函数里的num会成为类似全局变量,把外面的number替换掉 alert(num); //也就是说,最后应该输出20(这里输出10) 变量没有在函数内声明或者声明的时候没有带var就是全局变量,拥有全局作用域,window对象的所有属性拥有全局作用域;在代码任何地方都可以访问,函数内部声明并且以var修饰的变量就是局部变量,只能在函数体内使用,函数的参数虽然没有使用var但仍然是局部变量。
相关文章推荐
- js数组2
- 自己动手封装js工具类(JS中定义类的几种方式)
- js数组学习整理
- js中的this
- js document
- JavaScript学习笔记4
- 图解JavaScript 继承
- JavaScript学习笔记(数组篇)
- jsp的自定义标签
- js--小结④
- Unable to compile class for JSP
- jquert结合原生javascript实现的checkbox全选与全不选
- 通过JavaScript原型链理解基于原型的编程
- js中几种实用的跨域方法原理详解
- JS实现归并排序
- JSP页面中四种“返回按钮”的使用
- js获取url传递参数
- javascript基础知识--函数定义
- bzoj1012 [JSOI2008]最大数maxnumber
- 关于JS数组中every与some两者迭代方法探索