资讯专栏INFORMATION COLUMN

es5特性 es5语法,javascript语法

wangshijun / 1925人阅读

摘要:特性新增的等方法,其中的方法在中被标准话的反序列化小勇小刚大勇小花小黑小白用来将字符串转成对象的反序列化的序列化小勇小刚大勇小花小黑小白将对象转成字符串的序列化字符串下列方法全部跟回调函数迭代方法数组遍历可传值数组遍历可传值返回数组,数组

es5特性

es5新增的string、number、object、Date、function、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());  返回1970年7月1日到现在秒数
        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时,this为null/undefined

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84255.html

相关文章

  • 给React初学者的10分钟ES6教程

    摘要:但是在中,可以通过关键字来实现类的继承的使用可以使得继承意义更加明确并且值得一提的是,如果你使用来定义的组件,那么可以在类的构造器里面,用简单的的声明方式来替代方法。 原文:The 10 min ES6 course for the beginner React Developer译者:Jim Xiao 著名的80/20定律可以用来解释React和ES6的关系。因为ES6增加了超过75...

    Awbeci 评论0 收藏0
  • ES6-前世今生(0)

    摘要:更新了个版本,最新正式版是语言的下一代标准,早已在年月正式发布。基本不支持移动端浏览器对的支持情况版起便可以支持的新特性。比较通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有着怎样的关系? 1996 年 11 月,Netscape 创造了javascript并将其提交给了标准化组织 ECMA,次年,ECMA 发布 262 号标准文件(ECMA-...

    LeviDing 评论0 收藏0
  • 你不知道的JavaScript(ES6与之未来)

    摘要:然而,临近规范发布时,有建议提及未来的版本号切换为编年制,比如用同来指代在年末前被定稿的所有版本。总得来说就是版本号不再那么重要了,开始变得更像一个万古长青的活标准。 你不知道的JS(下卷)ES6与之未来 第一章:ES的今与明 在你想深入这本书之前,你应该对(在读此书时)JavaScript的最近标准掌握熟练,也就是ES5(专业来说是ES 5.1)。在此,我们决定全方面地谈论关于将近的...

    Julylovin 评论0 收藏0
  • JavaScript 原型系统的变迁,以及 ES6 class

    摘要:一般我们对这种构造函数命名都会采用,并把它称呼为类,这不仅是为了跟的理念保持一致,也是因为的内建类也是这种命名。由生成的对象,其是。这是标准的规定。本文的主题是原型系统的变迁,所以并没有涉及和对原型链的影响。 概述 JavaScript 的原型系统是最初就有的语言设计。但随着 ES 标准的进化和新特性的添加。它也一直在不停进化。这篇文章的目的就是梳理一下早期到 ES5 和现在 ES6,...

    chuyao 评论0 收藏0
  • babel——下一代 JavaScript 语法的编译器

    摘要:写在前面环境是默认支持的,但我们需要使用来满足我们使用新特性的需求。以下内容为了不让项目产生环境依赖,没有使用全局安装的方式。这里举一个使用的例子现在想使用的,我们需要先安装和然后配置文件此时就可以用对转码了。脚本中打开的命令如下 写在前面:Node 环境是默认支持 ECMAScript6 的,但我们需要使用 babel 来满足我们使用新特性的需求。以下内容为了不让项目产生环境依赖,没...

    JeOam 评论0 收藏0

发表评论

0条评论

wangshijun

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<