美文网首页
廖雪峰JS小记

廖雪峰JS小记

作者: LaputCat | 来源:发表于2019-10-09 14:10 被阅读0次
    (function(){})()

    原型,原型链

    浅谈Js原型的理解
    JS 原型与原型链终极详解

    对象

    对象:一种无序的集合数据类型,它由若干键值对组成

    访问对象属性

    通过.操作符完成的 属性名必须是一个有效的变量名 属性名包含特殊字符,就必须用''括起来

    var xiaohong = {
        name: '小红',
        'middle-school': 'No.1 Middle School'
    };
    middle-school不是一个有效的变量,就需要用''括起来
    用['xxx']来访问
    
    xiaohong['middle-school']; // 'No.1 Middle School'
    xiaohong['name']; // '小红'
    xiaohong.name; // '小红'
    

    对象增删属性

    var xiaoming = {
        name: '小明'
    };
    xiaoming.age; // undefined
    xiaoming.age = 18; // 新增一个age属性
    xiaoming.age; // 18
    delete xiaoming.age; // 删除age属性
    

    判断对象是否有某一属性

    第一种:用in操作符
    继承得到的
    var xiaoming = {
        name: '小明'
    };
    'name' in xiaoming; // true
    'grade' in xiaoming; // false
    'toString' in xiaoming; // true
    第二种:用hasOwnProperty()方法
    判断一个属性是否是xiaoming自身拥有的,而不是继承得到的
    xiaoming.hasOwnProperty('name'); // true
    xiaoming.hasOwnProperty('toString'); // false
    
    特殊情况:
    toString定义在object对象中,
    而所有对象最终都会在原型链上指向object,所以xiaoming也拥有toString属性
    

    数组

    数组获取长度

    var arr = [1, 2, 3.14, 'Hello', null, true];
    arr.length; // 6
    
    Array的length赋一个新的值会导致Array大小
    arr.length = 2;
    arr; // arr变为[1, 2]
    
    通过索引赋值时,索引超过了范围,同样会引起Array大小的变化
    var arr = [1, 2, 3];
    arr[5] = 'x';
    arr; // arr变为[1, 2, 3, undefined, undefined, 'x']
    

    数组常用属性

    indexOf
    slice
    splice
    push pop
    unshilft shilft
    sort
    reverse
    concat
    join

    循环

    for
    for in

    1.把一个对象的所有属性依次循环出来
    2.过滤掉对象继承的属性,用hasOwnProperty()来实现
    3.Array也是对象,而它的每个元素的索引被视为对象的属性

    while

    只有一个判断条件,条件满足,就不断循环,条件不满足时则退出循环

    do while

    每次循环完成的时候判断条件

    1.
    var x = 0;
    var i;
    for (i=1; i<=10000; i++) {
        x = x + i;
    }
    x; // 50005000
    
    2.
    var o = {
        name: 'Jack',
        age: 20,
        city: 'Beijing'
    };
    for (var key in o) {
        console.log(key); // 'name', 'age', 'city'
    }
    
    3.
    var x = 0;
    var n = 99;
    while (n > 0) {
        x = x + n;
        n = n - 2;
    }
    x; // 2500
    4.
    var n = 0;
    do {
        n = n + 1;
    } while (n < 100);
    n; // 100
    

    函数定义

    function abs(x) {
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    }
    
    var abs = function (x) {
        if (x >= 0) {
            return x;
        } else {
            return -x;
        }
    };
    
    function (x) { ... }是一个匿名函数,它没有函数名。
    但是,这个匿名函数赋值给了变量abs,所以,通过变量abs就可以调用该函数。
    以上两者等价。注意第二种方式按照完整语法需要在函数体末尾加一个;,表示赋值语句结束。
    

    函数-arguments

    函数内部起作用,并且永远指向当前函数的调用者传入的所有参数
    浅析js中的arguments

    相关文章

      网友评论

          本文标题:廖雪峰JS小记

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