首页 > 代码库 > JavaScript高级程序设计(第三版)第四章 变量,作用域和内存问题
JavaScript高级程序设计(第三版)第四章 变量,作用域和内存问题
JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值。基本类型值和引用类型值具有以下特点:
- 基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中;
- 从一个变量向另一个变量复制基本类型值,会创建这个值的一个副本;
- 引用类型的值是对象,保存在堆内存中;
- 包含引用类型值得变量实际上包含的并不是对象本身,而是一个指向该对象的指针;
- 从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终都指向同一个对象;
- 确定一个值是哪种基本类型可以使用typeof操作符,而确定一个值是哪种引用类型可以使用instanceof操作符。
4.1.3 传递参数
1 <script type="text/javascript"> 2 function addTen(num) { 3 num += 10; 4 return num; 5 } 6 7 var count = 20 8 var result = addTen(count); 9 alert(count); //2010 alert(result); //1011 12 </script>
1 <script type="text/javascript">2 function setName(obj) {3 obj.name = "Nicholas";4 } 5 var person = new Object();6 setName(person);7 alert(person.name); //"Nicholas"8 </script>
4.2.2 没有块级作用域
<script type="text/javascript"> function add(num1, num2) { var sum = num1 + num2; return sum; } var result = add(10, 20); //30 alert(sum); // 由于sum不是有效的变量,因此会导致错误 </script>
1 <script type="text/javascript"> 2 function add(num1, num2) {3 sum = num1 + num2;4 return sum;5 } 6 var result = add(10, 20); //307 alert(sum); //30 8 </script>
1 <script type="text/javascript">2 var color = "blue";3 4 function getColor(){5 return color;6 }7 8 alert(getColor()); //"blue" 9 </script>
1 <script type="text/javascript"> 2 var color = "blue"; 3 4 function getColor(){ 5 var color = "red"; 6 return color; 7 } 8 9 alert(getColor()); //"red" 10 </script>
JavaScript高级程序设计(第三版)第四章 变量,作用域和内存问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。