當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript中es6语法
生活随笔
收集整理的這篇文章主要介紹了
javascript中es6语法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
es6語法簡介:
// 1.歷史:// 1995-----JavaScript誕生// 1997-----ECMAScript標準確立// 1999-----ES3出現,與此同時IE5風靡一時// 2009-----ES5出現,現在絕大所數使用的是ES5// 2015-----ES6/ECMAScript2015出現// 2.函數的Rest參數和擴展:----rest參數實際就是一種動態的參數,不知道外面傳遞多少個參數的時候可以說傳入rest參數,語法...m,m是可以寫成其他字母的。// 1.ES6中輸出變量和循環的使用:function sum(...m){var sum = 0;for (var i of m){//----------ES6中 var * of m 循環sum += i;};console.log(`sum:${sum}`);//-----ES6中反引號里面${}可以輸出變量的值};sum(1,2,3);//-----6//2.ES6中箭頭函數使用:let sum2 = (...f)=>{//ES5中小括號就代表function,當函數體里面只有一行代碼時,可以省略箭頭后面的{}直接寫,當為多行時,后面的{}不能省略。var sum = 0;for (var i of f){sum += i;};console.log(`sum:${sum}`);};sum2(2,3);//----5//3.數組的擴展:數組前面放三個點 ... 表示把數組拆分出來。// 1.簡單拆分數組:console.log(...[1,2,3]);//------1,2,3// 2.合并多個數組:----實現concat() API功能var arr1 = [1,2]; [3,4]; var arr3 = [5,6];console.log([...arr1,...[3,4],...arr3]);//-------[1, 2, 3, 4, 5, 6]// 3.數組項前面加... 此項形參為一個數組,實參可以傳遞多個值,沒有...時是一一對應的。var [x,y] = [2,5];console.log(y);//------5// ============================================//var [x,...y] = [2,5,6,7,8];console.log(y);//-------[5, 6, 7, 8]//4.后面接字符串:console.log(...'qwert');//-----q w e r t//============================================//var [x,...y] = 'qwert';console.log(y);//-------["w", "e", "r", "t"]// 3.Promise使用:------解決回調地獄,代碼擁堵問題,演示:// 判斷input是否傳入大于5的參數,并隨機產生一個奇數或者偶數案例:let input = function(x){// new 一個Promise對象,里面傳入一個函數并returnreturn new Promise(function(resolve,reject){//resolve表示接口成功后執行的回調函數,reject表示接口報錯后執行的回調函數let flag = x > 5 ? true : false;if (flag) {resolve({stat:0}) } else {reject({stat:1})}});};let inputs = ()=>{return new Promise((resolves,rejects)=>{var y = Math.floor(Math.random()*100);let flags = y % 2 == 0 ? true : false;if (flags) {resolves({stats:2});} else {rejects({stats:3})}})}// input此時接收到的是Promise返回的一個對象,可以點出屬性then和catchinput(51).then((res)=>{//then屬性表示接口成功后執行的回調函數,回調函數里面的參數實際就是resolve()里面的對象if (res.stat == 0) {console.log('輸入的參數大于5');return inputs();//返回新的帶有Promise函數的對象供下一個then和catch調用}}).catch((rej)=>{//catch屬性表示接口失敗后執行的回調函數,回調函數里面的參數實際就是reject()里面的對象if (rej.stat == 1) {console.log('輸入的參數不大于5');return inputs();//返回新的帶有Promise函數的對象供下一個then和catch調用}}).then((ress)=>{if (ress.stats==2) {console.log('并隨機產生了一個偶數')}}).catch((rejs)=>{if (rejs.stats==3) {console.log('并隨機產生了一個奇數')}})// Promise提供了一個方法:.all()可以同時發多個請求:Promise.all([input(),inputs()]).then(([res1,res2])=>{console.log(`result1:${res1.stat},result2:${res2.stats}`)})// 4.Common.js中和ES6中導入導出模塊區別:// 1.export default {name:'app'}-------ES6中默認導出一個模塊// export var obj = '聲明式' 或者 var obj = '聲明式' , export {obj}---------聲明式導出//module.exports = {name:'app'}------ common.js導出一個模塊// 2.import uter from './uter' -----ES6默認導入模塊// import {obj1,obj2,obj3} from './module' -----ES6聲明式導入模塊//var uter = require('./uter')---common.js導入模塊// 3.import和export只能在頂級作用域執行,其他作用域會報錯,這里介紹全體導入:// import * as obj from './test.js' ------此導入方式返回的是一個導入模塊的對象// 5.AMD、CMD、CommonJS、和ES6對比:// 1.AMD、CMD、CommonJS是模塊化開發的標準,規范。// 1.AMD是RequireJS在推廣過程中對模塊定義的規范化產出,是一個異步模塊定義。define(['package/lib'],function(lib){function foo(){lib.log('hello world!')};return {foo:foo};});// 2.CMD是SeaJS在推廣過程中對模塊定義的規范化產出,是個同步模塊定義。define(function(require,exports,module){var $ = require('jquery');var Spinning = require('./spinning');})// 3.CommonJS規范通過-module.exports定義的,前端瀏覽器不支持module.exports,在node后端使用// 6.對象屬性的聲明:// 1.變量的簡寫var person = {name, //--------當name的屬性值和name屬性一樣時,可以簡寫,這里即表示 name:namesex:1,age:15}// 2.函數的簡寫:var play = {add:function(x){return x;},add2(x){ //-----函數聲明簡寫為:函數名(){ 函數體 }return x;}}提示:本文圖片等素材來源于網絡,若有侵權,請發郵件至郵箱:810665436@qq.com聯系筆者 刪除。
筆者:苦海
總結
以上是生活随笔為你收集整理的javascript中es6语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python元组元素抓7_Python3
- 下一篇: this指向、数据双向流、传递参数、JS