摘要:對象可被不定參數和默認參數完美代替。將對象納入規范,提供了原生的對象。規定,命令和命令聲明的全局變量,屬于全局對象的屬性命令命令命令聲明的全局變量,不屬于全局對象的屬性。。這些函數表達式最適合用于非方法函數,并且它們不能用作構造函數。
ES6的了解
新增模板字符串(為JavaScript提供了簡單的字符串插值功能)、箭頭函數(操作符左邊為輸入的參數,而右邊則是進行的操作以及返回的值Inputs=>outputs。)、for-of(用來遍歷數據—例如數組中的值。)arguments對象可被不定參數和默認參數完美代替。ES6將promise對象納入規范,提供了原生的Promise對象。增加了let和const命令,用來聲明變量。增加了塊級作用域。let命令實際上就增加了塊級作用域。ES6規定,var命令和function命令聲明的全局變量,屬于全局對象的屬性;let命令、const命令、class命令聲明的全局變量,不屬于全局對象的屬性。。還有就是引入module模塊的概念
let var const
let 允許你聲明一個作用域被限制在塊級中的變量、語句或者表達式
let綁定不受變量提升的約束,這意味著let聲明不會被提升到當前
該變量處于從塊開始到初始化處理的“暫存死區”。
var 聲明變量的作用域限制在其聲明位置的上下文中,而非聲明變量總是全局的
由于變量聲明(以及其他聲明)總是在任意代碼執行之前處理的,所以在代碼中的任意位置聲明變量總是等效于在代碼開頭聲明
const 聲明創建一個值的只讀引用 (即指針)
這里就要介紹下 JS 常用類型
String、Number、Boolean、Array、Object、Null、Undefined
其中基本類型 有 Undefined、Null、Boolean、Number、String,保存在棧中;
復合類型 有 Array、Object ,保存在堆中;
基本數據當值發生改變時,那么其對應的指針也將發生改變,故造成 const申明基本數據類型時,
再將其值改變時,將會造成報錯, 例如 const a = 3 ; a = 5 時 將會報錯;
但是如果是復合類型時,如果只改變復合類型的其中某個Value項時, 將還是正常使用;
箭頭函數
語法比函數表達式更短,并且不綁定自己的this,arguments,super或 new.target。這些函數表達式最適合用于非方法函數,并且它們不能用作構造函數。
快速的讓一個數組亂序
var arr = [1,2,3,4,5,6,7,8,9,10]; arr.sort(function(){ return Math.random() - 0.5; }) console.log(arr);
首先: 當return 的值
小于 0 ,那么 a 會被排列到 b 之前;
等于 0 , a 和 b 的相對位置不變;
大于 0 , b 會被排列到 a 之前;
這里你會 發現起始 的時候數組是正序排列,每當進行一次排列的時候, 都會先隨機一個隨機數 (注意這里的每一次排列 指 每一個紅框指一次排列, 共9次排列 , 一次排列中可能存在多次比較);
當一次排列的 隨機數大于0.5 時 將會進行第二次比較, 當第二次隨機數 仍然大于0.5 時 ,將會再 進行一次比較, 直到 隨機數大于0.5 或者排列到第一位;
當一次排列的 隨機數 小于0.5時 當前比較的兩項 索引將不會改變 ,繼續下一次 的排列;
最快捷的數組求最大值
var arr = [ 1,5,1,7,5,9]; Math.max(...arr) // 9
更短的數組去重寫法
[...newSet([2,"12",2,12,1,2,1,6,12,13,6])]
說說你對Promise的理解
依照 Promise/A+ 的定義,Promise 有四種狀態:
pending: 初始狀態, 非 fulfilled 或 rejected.
fulfilled: 成功的操作.
rejected: 失敗的操作.
settled: Promise已被fulfilled或rejected,且不是pending
另外, fulfilled 與 rejected 一起合稱 settled
Promise 對象用來進行延遲(deferred) 和異步(asynchronous ) 計算
Promise 的構造函數
構造一個 Promise,最基本的用法如下:
var promise = new Promise(function(resolve, reject) { if (...) { // succeed resolve(result); } else { // fails reject(Error(errMessage)); } });
Promise 實例擁有 then 方法(具有 then 方法的對象,通常被稱為thenable)。它的使用方法如下:
promise.then(onFulfilled, onRejected)
接收兩個函數作為參數,一個在 fulfilled 的時候被調用,一個在rejected的時候被調用,接收參數就是 future,onFulfilled 對應 resolve, onRejected 對應 reject
什么是 Promise ?
Promise 就是一個對象,用來表示并傳遞異步操作的最終結果
Promise 最主要的交互方式:將回調函數傳入 then 方法來獲得最終結果或出錯原因
Promise 代碼書寫上的表現:以“鏈式調用”代替回調函數層層嵌套(回調地獄)
談一談你了解ECMAScript6的新特性?
塊級作用區域 let a = 1;
可定義常量 const PI = 3.141592654;
變量解構賦值 var [a, b, c] = [1, 2, 3];
字符串的擴展(模板字符串) var sum = ${a + b};
數組的擴展(轉換數組類型) Array.from($("li"));
函數的擴展(擴展運算符) [1, 2].push(...[3, 4, 5]);
對象的擴展(同值相等算法) Object.is(NaN, NaN);
新增數據類型(Symbol) let uid = Symbol("uid");
新增數據結構(Map) let set = new Set([1, 2, 2, 3]);
for...of循環 for(let val of arr){};
Promise對象 var promise = new Promise(func);
Generator函數 function* foo(x){yield x; return x*x;}
引入Class(類) class Foo {}
引入模塊體系 export default func;
引入async函數[ES7]
async function asyncPrint(value, ms) { await timeout(ms); console.log(value) }
Object.is() 與原來的比較操作符 ===、== 的區別?
== 相等運算符,比較時會自動進行數據類型轉換
=== 嚴格相等運算符,比較時不進行隱式類型轉換
Object.is 同值相等算法,在 === 基礎上對 0 和 NaN 特別處理
+0 === -0 //true NaN === NaN // false Object.is(+0, -0) // false Object.is(NaN, NaN) // true
什么是 Babel ?
Babel 是一個 JS 編譯器,自帶一組 ES6 語法轉化器,用于轉化 JS 代碼。
這些轉化器讓開發者提前使用最新的 JS語法(ES6/ES7),而不用等瀏覽器全部兼容。
Babel 默認只轉換新的 JS 句法(syntax),而不轉換新的API。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93894.html
摘要:使用新特性開發微信小程序國際化與本地化新特性國際化與本地化新增了很多對于國際化的支持,比如時間格式,貨幣格式,數字格式等。 ECMAScript 6(簡稱ES6)是JavaScript語言的最新標準。因為當前版本的ES6是在2015年發布的,所以又稱ECMAScript 2015。 微信小程序支持絕大部分ES6的新增特性。 使用ES6新特性開發微信小程序(1) ES6新特性:Cons...
摘要:更新了個版本,最新正式版是語言的下一代標準,早已在年月正式發布?;静恢С忠苿佣藶g覽器對的支持情況版起便可以支持的新特性。比較通用的工具方案有,,,等。 1、ECMAScript是什么? 和 JavaScript 有著怎樣的關系? 1996 年 11 月,Netscape 創造了javascript并將其提交給了標準化組織 ECMA,次年,ECMA 發布 262 號標準文件(ECMA-...
摘要:但是在中,可以通過關鍵字來實現類的繼承的使用可以使得繼承意義更加明確并且值得一提的是,如果你使用來定義的組件,那么可以在類的構造器里面,用簡單的的聲明方式來替代方法。 原文:The 10 min ES6 course for the beginner React Developer譯者:Jim Xiao 著名的80/20定律可以用來解釋React和ES6的關系。因為ES6增加了超過75...
摘要:,正式名稱是,但是這個名稱更加簡潔。已經不再是最新的標準,但是它已經廣泛用于編程實踐中。而制定了模塊功能。自從年雙十一正式上線,累計處理了億錯誤事件,得到了金山軟件等眾多知名用戶的認可。 譯者按: 人生苦短,我用ES6。 原文: Top 10 ES6 Features Every Busy JavaScript Developer Must Know 譯者: Fundebug 為了保...
摘要:今天閑來無事,看見幾行小字。又說所有對象,繼承終是。強行押韻一波這首詩的意思就是說的我今天沒有什么事情,然后無意中又在網上看到了任何對象都是從對象繼承而來的這句話。一時興起,便去驗證這句話。 今天閑來無事,看見幾行小字。又說所有對象,繼承終是Obj?!?強行押韻一波 這首詩的意思就是說的我今天沒有什么事情,然后無意中又在網上看到了任何對象都是從Object對象繼承而來的這句話。一時興...
閱讀 3323·2021-11-22 12:04
閱讀 2706·2019-08-29 13:49
閱讀 482·2019-08-26 13:45
閱讀 2238·2019-08-26 11:56
閱讀 998·2019-08-26 11:43
閱讀 587·2019-08-26 10:45
閱讀 1266·2019-08-23 16:48
閱讀 2157·2019-08-23 16:07