JavaScript杂记(3)

作者: huangli93 | 来源:发表于2016-04-14 21:33 被阅读0次

    1 对象   (无序的数据集)

         由若干个“键值对”(key-value)构成。

    var a={name:xxx};

    name--->key (键名)    xxx--->value(键值)

    name不用引号就是标识名,加了引号就是字符串。

    大括号就定义了一个对象,它被赋值给变量a.

    生成空对象 等价于下图

    1.1 键名

    ①对象的所有键名都是字符串,所以加不加引号都可以。

    ②如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),也不是数字,则必须加上引号。

    ③JavaScript的保留字可以不加引号当作键名(为了ie兼容,不要用保留字)。

    ④如果键名是数字,则会默认转为对应的字符串。键名为数值,则会先转为标准形式的数值,然后再转为字符串。

    1.2 属性

    对象的每一个“键名”又称为“属性”(property),它的“键值”可以是任何数据类型。如果一个属性的值为函数,通常把这个属性称为“方法”,它可以像函数那样调用。

    字符串不是变量,是常量。

    1.2.1 读取属性

    读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。

    varo={p:'Hello World'};

    ①o.p// "Hello World"

    ②o['p']// "Hello World

    如果使用方括号运算符,键名必须放在引号里面,否则会被当作变量处理。但是,数字键可以不加引号,因为会被当作字符串处理。方括号运算符内部可以使用表达式。

    数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符。

    1.2.2检查变量是否声明

    ①如果变量没有声明,会报错。属性没声明,会返回undefined.

    ②全局变量都是window的属性。(不写var的变量时全局变量。)

    全局变量

    检测object有没有a属性

    ①if (object.a===undefined){xxx};

    ②if('a' in object){xxx};         不能用变量a,要用字符串a.

    检测全局变量 对象删除

    1.3 JSON (javaScript object Notation) --标记法

    用字符串表示标记法,json不能表示函数。

    json语法详解

    json对象:

    ①'{}'

    ②'{"name":1}'

    json语法是js语法的子集。想传播有结构信息可以用json语法。

    例:1、function

    {a=function(){}}      --不能当json

           2、{'a':1}       --不是合法的json语法(没用双引号)

    遍历

    2 数组  (有序的数据集)--是一种对象。

     ①var array=[    ]

     ②var array=new Array()

    2.1 数组值

     数组的值可以是任意值。可以是对象也可以不是对象。

    2.2 length属性

    数组的length属性,返回数组的成员数量.

    数组与对象的区别:

    ①数组多了一个length属性。

    ②是有序的。

    ③key是0、1、2、3.....(字符串)。

    遍历

    数组调用方法:MDN

    3 函数 --也是一种对象。(输入参数与输出参数的映射关系)

    函数就是一段预先设置的代码块,可以反复调用,根据输入参数的不同,返回不同的

    3.1 函数的声明

    (1)function命令

    function 函数名(输入参数,输入参数){console.log(输入参数,输入参数);}

    (2)函数表达式

    除了用function命令声明函数,还可以采用变量赋值的写法。

    var  print=function(输入参数,输入参数){console.log(输入参数,输入参数);}

    (3)Function构造函数

    还有第三种声明函数的方式:Function构造函数。

    ```

    var add=new Function ('x','y','return (x + y)');

    // 等同于

    function add(x,y){return(x+y);}

    ```

    在上面代码中,Function构造函数接受三个参数,除了最后一个参数是add函数的“函数体”,其他参数都是add函数的参数。如果只有一个参数,该参数就是函数体。

    3.2声明的赋值

    整体提升 部分提升
    函数赋值 函数的返回值

    行参的作用:给实参起名字。

    length是形参的个数。

    相关文章

      网友评论

        本文标题:JavaScript杂记(3)

        本文链接:https://www.haomeiwen.com/subject/uxaglttx.html