• 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

    区别 Jquery对象和Dom对象

    在讨论之前,先约定好定义变量的风格。

    如果获取的对象是jQuery对象,那么在变量前加上$,例如:

    var $variable = jQuery对象;

    如果获取的是DOM对象,则定义如下:

    var variable = DOM对象;

    jQuery对象不能使用DOM中的方法,但是如果对jQuery对象所提供的方法不熟悉,或者jQuery没有封装想要的方法,不得不实用DOM对象的时候,有以下两种处理方法。jQuery提供了两种方法将一个jQuery对象转换成DOm对象,即[index]和get(index).

    1、jQuery对象是一个数组对象,可以通过[index]的方法得到相应的DOM对象。

    var $cr = $("#cr"); //jQuery对象
    var cr = $cr[0] //DOM对象
    alert(cr.checked) //检测这个checkbox是否选中了

    2、通过get(index)方法得到相应的DOM对象。

    var $cr = $("#cr");
    var cr = $cr.get(0);
    alert(cr.checked);

    对于一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了,方式为$(DOM对象)。

    var cr = document.getElementByID("cr"); //DOM对象
    var $cr = $(cr);

    在此总结说明:

    jQuery方法里的get方法事实上是获得Dom元素($(this).get(0)与$(this)[0])

    而jQuery方法里的eq、first、last等方法都是返回的Jquery对象

    DOM对象才能使用DOM中的方法,jQuery对象不可以使用DOM中的方法。jQuery对象提供了一套更加完善的工具用于操作DOM。

    作者:静逸
    出处:http://www.cnblogs.com/liyunhua
    本文版权归作者和博客园所有,欢迎转载,转载请标明出处。
    如果您觉得本篇博文对您有所收获,觉得小女子还算用心,请点击右下角的 [推荐],谢谢!

  • 相关阅读:
    公司后台切图
    XMLHttpRequest对象
    XML/JSDOM处理
    js访问xml之节点操作
    CSS3 输入框阴影效果及其他阴影效果
    GitHub用户仓库批量下载
    WTL10_9163应用向导安装后的小问题
    别学MFC了,要学就学这些...
    使用基于范围的 for 循环迭代范围
    使用未命名的命名空间代替静态全局变量
  • 原文地址:https://www.cnblogs.com/liyunhua/p/4491881.html
Copyright © 2020-2023  润新知