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

    1基本类型是指那些保存在栈内存的简单数据段,引用类型是指那些保存在堆内存中的对象,变量中保存的实际上只是一个指针。

    2javascript中5种基本数据类型Undefined,Null,Boolean,Number和String

    3事实上我们不能给基本类型的值添加属性,尽管在javascript这样做不会导致任何错误。

    var name = "Angela";
    name.age = 23;
    alert(name.age);//undefined;

    4ECMAScript中所有函数的参数都是按值传递的。

    function setName(obj) {
    obj.name = "Angela";
    }
    var person = new Object;
    setName(person);
    alert(person.name); //Angela
    也就是虽然是值传递 但是obj事实是是person的一个副本 里面保存的是引用堆内存的一个指针
    所以person和obj指向同一个对象

    下面的例子可以更深刻的反应ECMAScript中所有函数的参数都是按值传递的

    function setName(obj) {
    obj.name = "Angela";
    obj = new Object;
    obj.name = "Yanlong";
    }
    var person = new Object;
    setName(person);
    alert(person.name); //Angela

    5typeof操作符是确定一个变量是字符串、数值、布尔值,还是undefined的最佳工具,如果变量的值是一个对象或者是null,则typeof操作符会返回object

    6如果使用instanceof操作符检测基本类型的值,则该操作符始终返回false,因为基本类型不是对象。如果检测的类型为引用类型的实例,则返回true

    7所有全局变量和函数都是作为window对象的属性和方法创建的。

    8每个函数都有自己的执行环境 ,当代码在一个环境中执行时,会创建变量对象的一个作用域链

    var obj = {};
    alert(obj instanceof Object);//true

    7

  • 相关阅读:
    第11组 Alpha冲刺(4/6)
    第11组 Alpha冲刺(3/6)
    第11组 Alpha冲刺(2/6)
    第11组 Alpha冲刺(1/6)
    团队Git现场编程实战
    第11组 团队项目-需求分析报告
    团队项目-选题报告
    第10组 Alpha冲刺(2/6)
    第10组 Alpha冲刺(1/6)
    2019 SDN上机第2次作业
  • 原文地址:https://www.cnblogs.com/ctriphire/p/2730410.html
Copyright © 2011-2022 走看看