zoukankan      html  css  js  c++  java
  • javascript变量,作用域和内存问题

    1:ECMAScript所有函数的参数都是按值传递的

    function setName(obj)
    {
    obj.name="finn";
    obj=new Object();
    obj.name="fiona";
    }
    var person=new Object();
    setName(person);
    person.name;

    "finn"

    2:检测什么对象是什么类型的对象

    function test(){};test instanceof Function
    true

    3:执行环境和作用域链,没有块级作用域

    try
    {
    var color="blue";
    function changeColor()
    {
    var anathorColor="red";
    var finn="green";
    changeColor.fiona="ddd";
    function swapColors()
    {
    // var tempColor=anathorColor;
    // anathorColor=color;
    // color=tempColor;
    var test=1;
    with(changeColor)
    {
    try
    {
    var url=test+fiona+href;
    }
    catch(e)
    {
    var jjj=e;
    throw e;
    }
    }
    }
    swapColors();
    }
    changeColor();
    }
    catch(x)
    {
    var d=x;
    }

    4:y可以及时释放(chrome测试)

    function a()
    {
    var x=1;
    var y="111111";
    return function()
    {
    console.log(x);
    }
    }
    var b=a();
    b();

    5:y也可以释放(chrome测试)

    function a()
    {
    var x=1;
    var y="111111";
    setTimeout(function xxx()
    {
    console.log(x);
    },1000);
    };
    a();

    6:垃圾收集(标记清除和引用计数),引用计数缺陷:循环引用问题;IE中有一部分对象并不是原生的javascript对象,例如:BOM和DOM中的对象就是使用C++以COM对象的形式实现的。IE9把BOM和DOM对象都转换成了真正的javascript对象;解除引用的真正作用是让值脱离执行环境

  • 相关阅读:
    Java学习开篇
    《我的姐姐》
    世上本无事,庸人自扰之
    这48小时
    补觉
    淡定
    es java api 设置index mapping 报错 mapping source must be pairs of fieldnames and properties definition.
    java mongodb groupby分组查询
    linux 常用命令
    mongodb too many users are authenticated
  • 原文地址:https://www.cnblogs.com/syf/p/4320933.html
Copyright © 2011-2022 走看看