摘要:特性新增的等方法,其中的方法在中被標準話的反序列化小勇小剛大勇小花小黑小白用來將字符串轉成對象的反序列化的序列化小勇小剛大勇小花小黑小白將對象轉成字符串的序列化字符串下列方法全部跟回調函數迭代方法數組遍歷可傳值數組遍歷可傳值返回數組,數組
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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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 來滿足我們使用新特性的需求。以下內容為了不讓項目產生環境依賴,沒...
閱讀 919·2023-04-25 23:40
閱讀 3706·2021-11-22 15:22
閱讀 3541·2021-10-09 09:44
閱讀 3399·2021-09-23 11:52
閱讀 1251·2021-09-22 15:43
閱讀 780·2021-09-10 10:51
閱讀 2202·2021-09-06 15:02
閱讀 3185·2021-09-06 15:02