Web前端之路

JavaScript 变量和执行环境

2017-05-01  本文已影响43人  7天苹果

基本类型和引用类型的值

ECMAScript变量包含两种不同的数据类型的值,当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值。

基本数据类型:Undefined、Null、Boolean、Number和String

区别:

function addTen(num) {
    num += 10;
    return num;
}
var count = 20;
var result = addTen(count);
alert(count); //20,没有变化

(2)引用值:对象变量它里面的值是这个对象在堆内存中的内存地址。因此它传递的值也就是这个内存地址,这也就是为什么函数内部对这个参数的修改会体现在外部的原因了,因为它们都指向同一个对象。


执行环境和作用域

在Web浏览器中,全局执行环境被认为是window对象,因此所有的全局变量和函数都是作为window对象的属性和方法创建的。

每个函数都有自己的执行环境。当执行流进入一个函数时,函数的环境就会被推到一个环境栈中。
比如:

<script type="text/javascript">
    function f1(){
        function f2(){
            alert("hello");//BODY
            //other code...
        }
        f2();
    }
    f1();
    //code here
</script>

此时环境栈是这样的:

执行环境栈

某个执行环境中的所有代码执行完毕后,该环境被销毁,保存在其中的所有变量和函数定义也随之销毁。

上一篇 下一篇

猜你喜欢

热点阅读