es5特性 es5语法,javascript语法

发布时间:2019-08-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了es5特性 es5语法,javascript语法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

es5特性

es5新增的string、number、object、Datefunction、json等方法,其中json的方法在ES5中被标准话!

Native JSON

JSON.parse(str)(json的反序列化)

 let str='[{"name":"小勇","age":18},{"name":"小刚","age":23},{"name":"大勇","age":25},{"name":"小花","age":13},{"name":"小黑","age":34},{"name":"小白","age":26}]'
 //用来将json字符串转成json对象(json的反序列化)
        let jsonObj=JSON.parse(str);
        console.LOG(jsonObj)//(6) [Object, Object, Object, Object, Object, Object]

JSON.stringify(arr)(json的序列化)

 let arr=[
            {"name":"小勇","age":18},
            {"name":"小刚","age":23},
            {"name":"大勇","age":25},
            {"name":"小花","age":13},
            {"name":"小黑","age":34},
            {"name":"小白","age":26}
        ];
  //将json对象转成json字符串(json的序列化)
let jsonStr=JSON.stringify(arr);
console.log(jsonStr); //字符串

es5-Array

下列方法全部跟回调函数

Array 迭代方法

foreach 数组遍历 可传值

let arr=[1,2,3,4,5];
        //forEach  s数组遍历 可传值
        arr.forEach(function(value,index){
            console.log(value);
            console.log(index)
        })

map返回数组,数组遍历

let arr1=arr.map(function(value){
            return value*2+1
        } )

filter对数组的值进行选择性的返回

let arr2=arr.filter(function(value){
            return value>2
        })
        console.log(arr2)

some 只要有一个条件满足就返回true

        let arr3=arr.some(function(value){
            return value>5

every 所有的满足

let arr4=arr.every(function(value){
            return value>0
        })
        console.log(arr4)//true

索引

indexOf()返回数组下标

console.log(arr.indexOf(5));
        if(arr.indexOf(5)>1){
            console.log("正确")
        }

lasTindexOf()同上

从后面返回数组下标

累加方法 迭代

reduce() 计算数组和

let arr=[1,2,3,4,5];
        let result=arr.reduce(function(last,now){
            return last+now;
        },0)//后边跟开始跟那个计算
        console.log(result)//15

reduceRight()同上从右边计算

数组的静态方法

isArray() 判断数组是否是数组 ps:是数组返回true,不是返回false

let z=2
console.log(Array.isArray(z));//false

String

string trim 去除字符串的空白

let str='    abc'
        console.log("|"+str+"|")
        console.log("|"+str.trim()+"|")

Date

console.log(Date.now());  返回197071日到现在秒数
        console.log(new Date().toJSON())
        console.log(new Date().toISOString().slice(0,10));
        /*
        1500712773697
        es5方法.htML:18 2017-07-22T08:39:33.697Z  
        2017-07-22

Number

toFixed()小数四舍五入

let a=new Number(1.326);
        let b=new Number(1.324);
        console.log(a.toFixed(2));//1.33
        console.log(b.toFixed(2));//1.32
        let c=1000000000000000000000;
        console.log(c.toPRecision(4));//1.000e+21
        ps:在es5中我们经常用Math.round()

function

VAR x=1;
        let obj5={
            x:2
        }
        
        function fn1(){
            console.log(this.x);   //1 
        }
        //bind用来改变this指针的作用域

        let fn2=fn1.bind(obj5);//2
        fn2()

es5_Object

1.create(指定_proto_)可用来指定原型

let obj={
    x:1,
    y:2
}

let  obj2=Object.create(obj,{z:{
   value:3
}});
console.log(obj2);
//es6
let ob2={
   _proto_:obj,
   z:3
}
console.log(ob2);

2.Object.defineProperty() 指定属性

Object.defineProPErty(obj2,"j",{
           value:5,
           writable:true,   //可以修改
           enumerable:true,  //可遍历 可以遍历原型上的东西
           configurable:false  //可配置吗
        })
        obj2.j=30;
       console.log(obj2)//Object {z: 3, j: 5}
        for(var key in obj2){
            console.log(key);
        }

Object.defineProperties() 定义多个属性

Object.defineProperties(obj2,{
            "m":{
                value:"abc",
            },
            "n":{
                value:"cba"
            }
        })
        console.log(obj2) //Object {j: 30, z: 3, m: "abc", n: "cba"}

getOwnPropertyDescriptor 获取属性描述

let desc=Object.getOwnPropertyDescriptor(obj,"x");
console.log(desc)//Object {value: 1, writable: true, enumerable: true, configurable: true}

Object.keys 返回对象的key值

console.log(Object.keys(obj));

        console.log(Object.values(obj));
        console.log(Object.entries(obj));

Object.getOwnPropertynames() 获取它自己的属性 所有属性名

 let obj3=Object.getOwnPropertyNames(obj)
 console.log(obj3)

Object.preventextensions()阻止对象扩展

let obj={
           x:1,
           y:2
       };
        //Object.preventExtensions(obj);//阻止扩展

Object.seal() 密封 阻止默认对象,不可进行配置

// Object.seal(obj)

Object.freeze() 冻结所有属性可读不可以配置

Object.freeze(obj)  
Object.defineProperty(obj,"x",{
   value:5,
   writable:false,   //可以修改
   enumerable:false,  //可遍历 可以遍历原型上的东西
   configurable:false  //可配置吗
})
//obj.x=5
obj.z=3;
obj.fn=function(){

}
console.log(obj);

Object.isExtensible() 是否可扩展 true false

Object.isSealed() 是否密封

Object.isFrozen() 是否冻结

es5严格模式

'use strict'
 //严格模式弃用以前版本的语法,在用报错
 //让你使用一些最新版本的语法
  • 使用var声明变量严格模式中将不通过

  • 何使用'eval'的操作都会被禁止

  • val作用域

  • ith被禁用

  • aller/callee 被禁用

  • 禁止扩展的对象添加新属性会报错

  • 除系统内置的属性会报错

  • delete使用var声明的变量或挂在window上的变量报错

  • delete不可删除属性(isSealed或isFrozen)的对象时报错

  • 对一个对象的只读属性进行赋值将报错

  • 对象有重名的属性将报错

  • 函数有重名的参数将报错

  • 八进制表示法被禁用

  • arguments严格定义为参数,不再与形参绑定

  • 函数必须声明在顶层

  • ES5里新增的关键字不能当做变量标示符使用,如implements, interface, let, package, private, protected, pulic, static, yield

  • call/apply的第一个参数直接传入不包装为对象

  • call/apply的第一个参数为null/undefined时,thisnull/undefined

  • bind的第一个参数为null/undefined时,this为null/undefined

脚本宝典总结

以上是脚本宝典为你收集整理的es5特性 es5语法,javascript语法全部内容,希望文章能够帮你解决es5特性 es5语法,javascript语法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。