Javascript ES5简介(严格模式、扩展方法、call apply bind)

ES5

1.ES5严格模式

在全局或者函数的第一行使用字符串 ‘use strict’ 来表明使用严格模式

严格模式下的规范:

  • 必须使用var来声明遍历
  • 禁止自定义函数中的this指向window
  • 创建eval作用域(不会污染全局的变量)
  • 对象不能有重名的属性

2.JSON对象扩展

将对象与JSON对象互相转换

  • JSON.stringfy(obj):转换成JSON对象
  • JSON.parse(obj):解析成JS对象

3.Object扩展

ES5给Object扩展了一些静态方法

常用两个

  • Object.create(prototype,[descriptors]):以指定对象的原型创建新的对象
    • value:指定值
    • writable:标识当前属性值是否可修改,默认为false
    • configurable:标识当前属性是否可以被删除,默认为false
    • enumerable:标识当前属性是否可以用for in枚举,默认为false
  • Object.defineProperties(object,decriptors):为指定对象定义扩展多个属性
// create()方法
var obj = {username:'vincent', age: 30};
var obj1 = {};
obj1 = Object.create(obj, {
    sex: {//添加sex属性
        value: '男',
        writable: true, //标识可修改
        configurable: true, //标识属性可以删除
        enumerable: true //标识属性可以用for in 枚举
    }   
});
console.log(obj1);


//defineProperties()方法
var obj2  = {firstName: 'kobe', lastName: 'bryant'};
Object.defineProperties(obj2,{
    fullName:{
        get: function(){ //获取扩展属性的值
            return this.firstName+ ' ' + this.lastName;
        },
        set: function(data){ //设置扩展属性的时候会自动调用
            var names = data.split(' ');
            this.firstName = names[0];
            this.lastName = names[1];
        }
    }
});

4.数组的扩展

  • Array.prototype.indexOf(value):得到值在数组中的第一个下标
  • Array.prototype.lastIndexOf(value):最后一个下标
  • Array.prototype.foreach(function(item, index){}):遍历数组
  • Array.prototype.map(function(item, index){}):遍历数组返回一个新的数组,返回加工后的值
  • Array.prototype.filter(function(item, index){}):遍历过滤出一个新的子数组,返回条件为true的值

5.call apply bind用法

call

从第二个参数开始传入,用逗号依次隔开

var obj  {username: 'kobe'};
function foo(data){
    console.log(this, data);
}
foo.call(obj, 33);

apply

第二个参数必须是数组,传入参数放在数组中

var obj  {username: 'kobe'};
function foo(data){
    console.log(this, data);
}
foo.apple(obj, [33]);

bind

绑定函数,并不会立即调用,而是将函数返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值