ES5简介

ES5

es5严格模式

“use strict”; 声明严格模式

n = 123
console.log(n); //这个里面会直接报错 采用了严格模式后对应的内容 需要更加规范 不支持八进制
//eslint 代码检查器 
//怪异模式
n = 123
console.log(n);

1、不可以省略var声明变量

"use strict"; //声明严格模式
n = 123 //报错
console.log(n); 

2、禁止函数使用this关键字指向全局变量

<body>
    <div id="box" onclick="handlerClick()">111</div>
    <script>
    	function handlerClick(){
                console.log(this); //打印undefined
            }
    </script>
</body>

3、禁止使用八进制方法

4、不允许在非函数的代码块内声明函数

5、严格模式下,arguments变量,形参是不会变(不同步)

es5的数组高阶函数
什么是高阶函数 以函数作为参数的函数叫做高阶函数

es5数组的方法 静态方法

var arr = ['a','b','c','d']
console.log(Array.isArray(arr)); //判断是否是一个数组 返回为布尔类型的值
es5关于数组的高阶函数

forEach 遍历的函数 没有返回值

arr.forEach(function(value,index,array){
//第一个value表示值 第二个index表示下标 第三个array表示你遍历的数组
console.log(value);
console.log(index);
console.log(array);
//value = value+value //value是只读属性
array[index] = value+value 
})

map遍历的函数 有返回值 //返回数组 数组的长度和我们原本的数组长度一致

var newArr = arr.map(function(value,index,array){
    if(value!='a'){ //当a的时候不返回 a位置的结果 undefined
        return value+value
    }
}) 
console.log(newArr.length);
console.log(arr);
console.log(newArr);

filter 过滤 返回值为数组里面指定是一个function

 var arrs = [10,15,12,13,11]
//过滤掉12以下的数据
var newArr = arrs.filter(function(value,index,array){
    if(value>=12){
        return value
    }
})
console.log(newArr);
var strArr = ["abcdde",'abc','efg','abc123','cab']
//过滤掉 里面包含abc
var strArr1 = strArr.filter(function(v,i,arr){
    if(!/abc/.test(v)){
        return v
    }
})
var strArr2 = strArr.filter(function(v,i,arr){
    if(i%2==0){
        return v
    }
})
console.log(strArr1);
console.log(strArr2);

reduce 计算方法 计算总和(从左到右)

 var arrs = [1,2,3,4]
//上一个值 当值  当前下标 遍历的数组
var sum = arrs.reduce(function(preValue,currentValue,currentIndex,arr){
    return preValue+currentValue
})
console.log(sum);

reduceRigth 计算方法(从右到左)

var count = arrs.reduceRight(function(preValue,currentValue,currentIndex,arr){
    return preValue+currentValue
})
console.log(count);
var strArr3 = ['A','B','C']
var str1 = strArr3.reduce(function(preValue,currentValue,currentIndex,arr){
    return preValue+currentValue
})
var str2 = strArr3.reduceRight(function(preValue,currentValue,currentIndex,arr){
    return preValue+currentValue
})
console.log(str1);
console.log(str2);

every 遍历每一个是否都符合条件 返回布尔类型的值 都符合条件返回true 有一个不符合返回false

var numberArr = [1,20,15,30]
var isTrue = numberArr.every(function(v,i,arr){
    return v<30
})
console.log(isTrue);

some 是否存在符合条件的 有一个就返回true 都没有返回false

var numberArr = [1,20,15,30]
var isTrue = numberArr.some(function(v,i,arr){
    return v<0
})
console.log(isTrue);

针对日期 新增方法 now() 静态方法 获取当前日期离1970年1月1日0时0分0秒的毫秒值(时间戳)

var n = Date.now() //这个使用多
        console.log(n);

字符串模板

var str = `${n}hello`

对于对象来说提供get及set

var user = {
	username:'张三',
    name:{
                get name(){ //获取会自动调用
                    return this.username
                },
                set name(username){ //设置会自动调用
                    this.username = username
                }
           }
        }
console.log(user.name);//获取name属性 默认执行get方法
user.name = '李四' //设置name属性 默认执行set方法
this指向的改变 es5的bind
 var user = {
    username:'张三'
}
function hello(){
    console.log(this); //指向user
}
//bind将这个函数绑定给一个对象 那么这个函数里面的this就会指向对应的对象
//函数对象.bind(绑定的对象)()
hello.bind(user)()
var obj = {
    print:function(){
        console.log(this.username);
    }
}
obj.print.bind(user)() //一般我们绑定的this都是函数里面的 bind绑定对象 一般常用于定时器
setInterval(obj.print.bind(user),2000)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值