zoukankan      html  css  js  c++  java
  • 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);    //20
    10         alert(result);   //10
    11 
    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);  //30
    7         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>
  • 相关阅读:
    84. Largest Rectangle in Histogram (Solution 2)
    84. Largest Rectangle in Histogram (Solution 1)
    73. Set Matrix Zeroes
    【JavaScript】Symbol 静态方法
    【JavaScript】Date
    【JavaScript】Math
    725. Split Linked List in Parts把链表分成长度不超过1的若干部分
    791. Custom Sort String字符串保持字母一样,位置可以变
    508. Most Frequent Subtree Sum 最频繁的子树和
    762. Prime Number of Set Bits in Binary Representation二进制中有质数个1的数量
  • 原文地址:https://www.cnblogs.com/fashion1993/p/4017791.html
Copyright © 2011-2022 走看看