摘要:特性新增的等方法,其中的方法在中被标准话的反序列化小勇小刚大勇小花小黑小白用来将字符串转成对象的反序列化的序列化小勇小刚大勇小花小黑小白将对象转成字符串的序列化字符串下列方法全部跟回调函数迭代方法数组遍历可传值数组遍历可传值返回数组,数组
es5特性
Native JSON JSON.parse(str)(json的反序列化)es5新增的string、number、object、Date、function、json等方法,其中json的方法在es5中被标准话!
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>5every 所有的满足
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)//15reduceRight()同上从右边计算 数组的静态方法 isArray() 判断数组是否是数组 ps:是数组返回true,不是返回false
let z=2 console.log(Array.isArray(z));//falseString 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-22Number 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
摘要:但是在中,可以通过关键字来实现类的继承的使用可以使得继承意义更加明确并且值得一提的是,如果你使用来定义的组件,那么可以在类的构造器里面,用简单的的声明方式来替代方法。 原文:The 10 min ES6 course for the beginner React Developer译者:Jim Xiao 著名的80/20定律可以用来解释React和ES6的关系。因为ES6增加了超过75...
摘要:更新了个版本,最新正式版是语言的下一代标准,早已在年月正式发布。基本不支持移动端浏览器对的支持情况版起便可以支持的新特性。比较通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有着怎样的关系? 1996 年 11 月,Netscape 创造了javascript并将其提交给了标准化组织 ECMA,次年,ECMA 发布 262 号标准文件(ECMA-...
摘要:然而,临近规范发布时,有建议提及未来的版本号切换为编年制,比如用同来指代在年末前被定稿的所有版本。总得来说就是版本号不再那么重要了,开始变得更像一个万古长青的活标准。 你不知道的JS(下卷)ES6与之未来 第一章:ES的今与明 在你想深入这本书之前,你应该对(在读此书时)JavaScript的最近标准掌握熟练,也就是ES5(专业来说是ES 5.1)。在此,我们决定全方面地谈论关于将近的...
摘要:一般我们对这种构造函数命名都会采用,并把它称呼为类,这不仅是为了跟的理念保持一致,也是因为的内建类也是这种命名。由生成的对象,其是。这是标准的规定。本文的主题是原型系统的变迁,所以并没有涉及和对原型链的影响。 概述 JavaScript 的原型系统是最初就有的语言设计。但随着 ES 标准的进化和新特性的添加。它也一直在不停进化。这篇文章的目的就是梳理一下早期到 ES5 和现在 ES6,...
摘要:写在前面环境是默认支持的,但我们需要使用来满足我们使用新特性的需求。以下内容为了不让项目产生环境依赖,没有使用全局安装的方式。这里举一个使用的例子现在想使用的,我们需要先安装和然后配置文件此时就可以用对转码了。脚本中打开的命令如下 写在前面:Node 环境是默认支持 ECMAScript6 的,但我们需要使用 babel 来满足我们使用新特性的需求。以下内容为了不让项目产生环境依赖,没...
阅读 918·2023-04-25 23:40
阅读 3705·2021-11-22 15:22
阅读 3540·2021-10-09 09:44
阅读 3398·2021-09-23 11:52
阅读 1251·2021-09-22 15:43
阅读 780·2021-09-10 10:51
阅读 2200·2021-09-06 15:02
阅读 3185·2021-09-06 15:02