js.第七周总结

5月10日

constructor属性

     1.constructor 属性指向就是构造函数本身
     原型对象(prototype)上有一个属性 :constructor
     原型对象(__proto__)上也有一个属性 :constructor
     

     2.constructor的作用:它的作用就是用来记录对象产生于那个构造函数,可以让原型对象重       新指向原来的构造函数。 

原型链

    什么是原型链?
    只要是对象内部就有__proto__;
    通过对象的__proto__属性形成的链式查找机制,即原型链

    查找规则
    1.当访问一个对象的属性或方法时,首先看对象自身是否有没有该属性
    2.如果没有就查找它的原型,即__proto__,看__proto__指向的原型对象有没有。
    3.没找到继续查找,
    4.直到找到Object.prototype.__proto__为null为止;

原型对象的应用(拓展内置对象)

    //内置数组求和
    //字面量创建数组;//只能通过此方式
    Array.prototype.sum = function(){
        var s = 0;
        for(var i =0; i<this.length;i++){
            s +=this[i];
        }
        return s;
    };
    var arr = new Array(2,3,5,7,8);
    var res = arr.sum();
    console.log(res);

通过构造函数和原型链组合实现继承

<script>
    function Father(uname,age,sex){
        this.uname = uname;
        this.age = age;
        this.sex = sex;
    }
    Father.prototype = {
        constructor:Father,
        eat:function(food){
            alert(this.uname + '不喜欢吃' +food)
        },
        speak:function(lang){
            alert(this.uname + ':' +lang)
        }
    }

    function Son(uname,age,sex){
      // 实现属性的继承
    Father.call(this,uname,age,sex);

    }
    //不能使用该方法  不可取不能实现继承  Father,Son 会相互影响
    // Son.prototype = Father.prototype

    // 通过原型链方法实现的继承
    // 正确的方式
    Son.prototype = new Father();
    Son.prototype.constructor = Son;
    var s = new Son('离',17,'');
    s.eat('土');

    console.log(Father.prototype);
</script>

数组常用的API()

 1.Array.from(arrLink,callback)  把一个类数组转化为数字 返回转换后的新数组
    var str = 'hello'
    参数1:要转换的数据(类数组)
    var arr = Array.from(str);
    console.log(arr instanceof Array);

    参数2:回调函数
    [2,4,6,8,10]
    var arr =Array.from('12345',function(ele,i){
        // console.log(ele+'的索引是:'+i);
        return ele *2
    })
    console.log(arr);

    2.forEach(callback) 遍历数组
    参数:对遍历到的每个元素执行对应的操作
    var arr = ['a','b','c']
    arr.forEach(function(ele,i,array){
        console.log(ele+':'+i);
        
    })

    3. map(callback) 返回一个新数组
    对数组中的每个元素运行指定的函数,返回每次调用函数的结果,并将其组成一个新的数组

    var arr = [1,2,3,4,5]
    var arr1 = arr.map(function(ele){
        return ele*2;
    })
    console.log(arr1);


4. filter(callback) 过滤 筛选  对数组中的元素进行过滤筛选 将满足条件的元素组成一个新数组
    var arr = ['张三','王五','王六','张时','李三']
    // 筛选出所有姓王的名字
   var arr1 = arr.filter(function(ele,i,array){
        return /^王/.test(ele)
    })
    console.log(arr1);

var arr = [{
    title:'苹果',
    price:12
},{
    title:'栗子',
    price:1
},{
    title:'西瓜',
    price:15
},{
    title:'南瓜',
    price:11
},{
    title:'清果',
    price:7
},]
 var arr1= arr.filter(function(ele){
    //   if (ele.price>10 && ele.price<15) {
    //       return true;
    //   } 
    return ele.price>10 && ele.price<15
})
console.log(arr1);

检测是否包含某个元素
console.log('avzxczxdaad'.includes('d'));

5.some(callback) 查找数组中是否有满足条件的元素  返回布尔值
  var ber =  arr.some(function(ele,i,array){
        return ele.price >11
    })
    console.log(ber);

6. find(callback) 查找满足条件的第一个元素  返回该元素
   findIndex(callback) 查找满足条件的第一个索引 返回该元素的索引
   var item =arr.find(function(ele,i,array){
       return ele.price >11;
   })
   console.log(item);

5月11日

ES5严格模式

1. 严格模式:即让javascript在更严格的条件下运行
2. 严格模式设计的目的:

- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。

3. 进入严格模式的标志: "use strict"
4. 进入严格模式的两种模式:

- 将"use strict"放在脚本文件的第一行,让整个脚本文件都按照严格模式运行
- 将"use strict"放在函数体的第一行,让整个函数按照严格模式运行

5. 严格模式下一些语法的改变:
   比如: 变量声明  普通函数内this指向

- 详细内容参考文档:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

ES6

1. 什么是ES6?

- ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。它是由ECMA国际标准化组织制订的一项脚本语言的标准化规范。

2. ECMAScript 与 JavaScript的关系?

- ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。日常场合,这两个词是可以互换的。

3. E
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值