zoukankan      html  css  js  c++  java
  • js Object

    对象

    var ob = {};

    键值对

    可以做为key的有 :数字,boolean(某些浏览器不支持,比如IE),字符串(不包含标识符)

    可以作为value的有 :一切可以解析为具体值的代码

    var o = {true:3,sdf:2,2:1};

    取值[]

    alert(o["true"]);     //3
    alert(o[1==1]);      //3
    alert(o[true]);     //3
    alert(o["sdf"]);        //2
    alert(o["s"+"d"+"f"]); //2
    alert(o[sdf]);        //Uncaught ReferenceError: sdf is not defined
    alert(o["2"]);   //1
    alert(o[3-1]);  //1
    alert(o[2]);   //1
    var o = {key:1,key:2,key:3};
    alert(o["key"]);//3
    • 先解析中括号里的内容,然后转成字符串key查询value
    • 中括号里的标识符需要预先定义
    • 对象中存在相同key时,取后者
    • 遭遇error后,下面的代码不继续执行

    取值.

    alert(o.true);    //3
    alert(o."true"); //Uncaught SyntaxError: Unexpected string 
    alert(o.sdf);        //2
    alert(o.2);      //Uncaught SyntaxError: Unexpected number 
    • 点后只能跟字母组成的key,不能包含数字,双引号

    删除

    The delete operator removes a property from an object.

    Syntax

    delete expression 

    where expression should evaluate to a property reference, e.g.:

    delete object.property
    delete object['property']

    方法体

    function f(a){
     return a;
    }
    var o ={f:f};
    alert(o.f);//function(a){return a;}
    alert(o.f());//undefined
    alert(o.f(1));//1

    方法调用

    var o = {a:f(1)};
    alert(o.a); //1

    错误的方法调用

    function f1(a){
    }
    var o = {a:f1(1)};
    alert(o.a);//undefined
    alert(o.a(1));//Uncaught TypeError: undefined is not a function 
    });

    获取对象取key与value

    var o = {
        true: 1,
        false: 2,
        1 : 3,
        aaa: 4
    };
    for (key in o) {
        alert(key + ":" + o[key]);
    }
    • key为关键字,不能用key1等代替
    • 这种方法取到的key均为字符串,如:"1","0","true","false"
    • 可用eval() 得到本来的值,eval("false")==false
    var s = "asdf";  
    var b = "false";  
    alert(eval(b));//false
    alert(eval(s));//Uncaught ReferenceError: asdf is not defined 

    jQuery

    <script type="text/javascript" src = "js/jquery-1.10.2.min.js" ></script>

    $.each(o,function(i,n){  
        alert(i+":"+n);// 第i个n元素  
    });

    扩展***************************

    var o1={};
    var o2={a:1};
    var o3={a:2,b:2}
    var o =  $.extend(o1,o2,o3);
    
    
    for(k in o){
    alert(k+":::::::::"+o[k]);
    }
    • 请事先引入jQuery,src以实际情况为准。
    • jQuery.extend
    • 继承,即扩展某个对象
    • 名字相同直接替换,不是与运算。
    • 名字不同,补充

      

    +++++++++++++++动手试一试(本文章使用Chrome浏览器测试)+++++++++++++++++

    利用文本创建一个简单的html文件。

    aaa.txt

    aaa.html

    <html>
        
        <head>
            <script type="text/javascript">
                var sdf = 'aaa';
                var o = {
                    true: 21,
                    false: 11,
                    sdf: 3,
                    aaa: 4
                };
                alert(o[sdf]);
            </script>
        </head>
        
        <body>
        </body>
    
    </html>
  • 相关阅读:
    URAL1204. Idempotents(扩展欧几里得)
    URAL1049. Brave Balloonists
    URAL1133. Fibonacci Sequence(二分)
    URAL1352. Mersenne Primes
    URAL1118. Nontrivial Numbers
    hdu3270Arranging Your Team(dfs)
    Codeforces Round #209 (Div. 2)C
    KMP
    树状数组求逆序对
    poj2352
  • 原文地址:https://www.cnblogs.com/zno2/p/4488582.html
Copyright © 2011-2022 走看看