• <<JavaScript编程全解>>阅读笔记之变量与对象


    1.对变量重复声明,不会覆盖原有的只

      如:var a=1;

           var a;

           alert(a)//1

    2.Js函数返回多个值

    function(x,y)

    {

      reture [y,x];

    }

    3.检查是否该变量为全局变量

    var x=2;

    alert(   'x' in this);

    4.访问未声明的变量,会触发ReferenceError  错误

    5.检查属性是否存在

       访问不存在的属性不会触发ReferenceError  错误

      如 this.x //undefined

    但如果在不存在属性时,再访问属性,就会产生typeErroe

    obj.x && obj.x.y 避免typeErroe

    6.返回多个值的函数

    function fn(x, y,z)
    {
    return {a:x,b:y,c:z} ;
    }
    var obj = fn(1, 2, 3);
    alert(obj.b);//2

    7.function MyClass(x,y)

    {

    this.x=x;

    this.y=y;

    }

    var obj=new MyClass();

    构造函数MyClass最后会隐式返回this,

    javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。 //补充资料

    new的作用就是"构造函数",这种方法与直接声明的函数的区别就是:用new操作符构造出来的函数是一个对象。//补充资料

    8.点运算符与中括号运算符的使用

    中括号运算符可以使用"-"读取属性

    如 obj[f-b]

    而obj.f-b 不行

    中括号运算符可以使用变量读取属性

    如var x=‘1’;

       obj[x];

    9.var map={};

      alert(  map.hasOwnProperty ('tostring'));//判断map中是否有直接属性tostring

    10. delete 只能删除对象中直接属性

        如 delete map['tostring'] //tostring是map继承的属性

    11.js限制对象增删改

     preventExtensions:不能新增

    seal:不能新增,删除

    freeze:不能新增,删除,修改属性值

    var obj = { x: 2, y: 3 };

    Object.preventExtensions(obj);
    obj.z = 33;
    alert(obj.z);//undefined

    Object.seal(obj);
    delete obj.x;
    alert(obj.x); //2

    Object.freeze(obj);
    obj.x=3
    alert(obj.x); //2

    12.关于this引用

    A.构造函数调用,this指所生成的对象

    B.方法调用,this指向接收方对象,方法调用的目标对象叫接收方对象

    C.apply或call调用时,this为 apply或call指定的对象

    13.关于apply与call

    指定this调用的对象

    不同点在于两者传递的参数

    function f(a, b)
    {
    alert('a:' + a + " ,b:" + b + ",this.x:" + this.x);
    }
    f.apply({ x: 5 }, [1, 2]);
    f.call({x:6},1,2);

    14.得到对象的构造函数

    var d = new Date();
    alert(d.constructor); //function Date(){  [native code] }

  • 相关阅读:
    FileZilla Server下载及安装
    FileZilla Server设置虚拟目录
    FileZilla Server超详细配置
    Freaktab将于12月底关闭
    Thinkpad笔记本指点杆(小红点)自动漂移的问题
    STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解)
    STC12C5A56S2和DS12C887做的电子闹铃
    联盛德 HLKW806 (九): 软件SPI和硬件SPI驱动ST7789V液晶LCD
    联盛德 HLKW806 (六): I2C驱动SSD1306 128x64 OLED液晶屏
    联盛德 HLKW806 (五): W801开发板上手报告
  • 原文地址:https://www.cnblogs.com/zhangxiong/p/4911943.html
Copyright © 2020-2023  润新知