javascript_变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript_变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1849字,纯文字阅读大概需要3分钟。
内容图文
![javascript_变量](/upload/InfoBanner/zyjiaocheng/848/db6309bcce134efda6dacc5adc398110.jpg)
首先说说变量,JavaScript变量可以用来保存两种类型的值:基本类型和引用类型。
1,基本类型很好理解,源于基本数据类型:underfined,null,boolean,number和string。也就是简单的数据段,基本类型在内存中占据固定大小的空间,因此保存在栈内存中,提到栈内存,就想到了进栈出栈压栈,先进后出。下图是栈模型,后面会具体写一篇数据类型的随笔。
,
2,基本类型从一个变量向另一个变量时,会创建这个值的副本。
var a1=8; var a2=a1;
a1是8,a2也是8,它的内存方式就像上面栈模型一样,a1在栈底,a2在它的上面,a1和a2是完全独立,所以对这两个变量操作相互不会影响。
3,引用类型,保存的值是对象,保存在堆内存中,它可以添加修改删除属性和方法。
var person = new 0bject(); person.name="cqy"; console.log(person.name); //"cqy" var person = "cqy"; person.age="23"; console.log(person.age); //underfined
上面我声明了一个对象person,添加一个name属性,赋值为cqy,打印出来name值为cqy,说明成功添加属性name并赋值,而下面字符串就不能增加属性。
4,引用类型,当一个变量向另一个变量复制引用类型的值时,同样也会把值赋给新的变量中,这个值实际上是个指针,指针指向存储堆中的一个对象,
我个人理解啊,堆内存可以说是个完全二叉树,这个我们把这个堆内存,看成一堆,也就相对一个盒子,在盒子里面有多个对象,复制前变量和复制后变量都指向堆里面同一个object对象,所以说这个值,实际就是个指针。所以改变一个变量就会影响到另一个变量。举例说明:
var object1 = new Object(); var object2 = object1; object1.name="cqy"; alert(object2.name); //值为"cqy"
5,传递参数,说白了也就是一个变量向另一个变量赋值,只不过这是从函数外部赋值到函数内部的过程。
注意,在传递参数时只能按参数传递,而不能用引用传递。
function setName(obj){ ocj.name = "cqy"; obj = new Object();//在局部重新定义一个对象, obj.name = "jbname";//定义了一个不同的name } var person = new Object(); setName(person); alert(person.name); //如果按引用传递,person会自动修改为指向其name属性值为"jbname". //这就说明原始的引用依然保持不变,内部重写obj会在函数执行后立即销毁。
内容总结
以上是互联网集市为您收集整理的javascript_变量全部内容,希望文章能够帮你解决javascript_变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。