摘要:和作用域只在聲明指令的塊級作用域內(nèi)有效。和導(dǎo)入模塊導(dǎo)出模塊導(dǎo)出默認(rèn)有且只有一個(gè)默認(rèn)全部導(dǎo)入名字可以修改我是一條華麗的分界線部分導(dǎo)出導(dǎo)入部分名字必須和定義的名字一樣。
1 let 和 const
作用域: 只在聲明指令的塊級作用域內(nèi)有效。
① let所聲明的變量可以改變,值和類型都可以改變,沒有限制。
let a = 123 a = 456 // 正確,可以改變 let b = [123] b = [456] // 正確,可以改變
② const聲明的變量不可改變值,這意味著const一旦聲明變量必須立即初始化,不能以后賦值。
const a ;//報(bào)錯(cuò),一旦聲明變量,應(yīng)該立即賦值!! const b = 2; b = 3//報(bào)錯(cuò),因?yàn)槎x常量之后不能成重新賦值??!
對于復(fù)合類型的變量,如數(shù)組和對象,變量名不指向數(shù)據(jù),而是指向數(shù)據(jù)所在的地址。const命令只是保證變量名指向的地址不變,并不保證該地址的數(shù)據(jù)不變,所以將一個(gè)對象聲明為常量必須非常小心
const names = []; names = [1,2,3] //出錯(cuò),因?yàn)樽兞縩ames指向的地址不能發(fā)生改變,應(yīng)始終指向[]所在的地址!?。1,2,3]與[]不是同一個(gè)地址 const names = []; names = [1,2,3] //出錯(cuò),因?yàn)樽兞縩ames指向的地址不能發(fā)生改變,應(yīng)始終指向[]所在的地址?。?![1,2,3]與[]不是同一個(gè)地址 //不會(huì)報(bào)錯(cuò),因?yàn)閚ames指向的地址不變,改變的只是內(nèi)部數(shù)據(jù) const names = []; names[0] = 1 names[1] = 2 names[2] = 32 數(shù)組
一次性聲明多個(gè)變量:
let [a, b, c] = [1, 2, 3]; console.log(a) // 1 console.log(b) // 2 console.log(c) // 33 對象的合并:
Object.assign()方法用于對象的合并,將原對象(source)的所有可枚舉屬性復(fù)制到目標(biāo)對象(target)
const target = { a: 1 }; const source1 = { b: 2 }; const source2 = { c: 3 }; Object.assign(target, source1, source2); target // {a:1, b:2, c:3}
Object.assign方法的第一個(gè)參數(shù)是目標(biāo)對象,后面的參數(shù)都是源對象。
注意,如果目標(biāo)對象與源對象有同名屬性,或多個(gè)源對象有同名屬性,則后面的屬性會(huì)覆蓋前面的屬性。
const target = { a: 1, b: 1 }; const source1 = { b: 2, c: 2 }; const source2 = { c: 3 }; Object.assign(target, source1, source2); target // {a:1, b:2, c:3} Object.assign 方法實(shí)行的是淺拷貝,而不是深拷貝。 const obj1 = {a: {b: 1}}; const obj2 = Object.assign({}, obj1); obj1.a.b = 2; obj2.a.b // 24 Promise對象
Promise 是異步編程的一種解決方案。
5 import 和 exportimport 導(dǎo)入模塊、export 導(dǎo)出模塊
// example2.js // 導(dǎo)出默認(rèn), 有且只有一個(gè)默認(rèn) export default const example2 = { name : "my name", age : "my age", getName = function(){ return "my name" } } //全部導(dǎo)入 // 名字可以修改 import people from "./example2.js" -------------------我是一條華麗的分界線--------------------------- // example1.js // 部分導(dǎo)出 export let name = "my name" export let age = "my age" export let getName = function(){ return "my name"} // 導(dǎo)入部分 // 名字必須和 定義的名字一樣。 import {name, age} from "./example1.js"
//有一種特殊情況,即允許你將整個(gè)模塊當(dāng)作單一對象進(jìn)行導(dǎo)入
//該模塊的所有導(dǎo)出都會(huì)作為對象的屬性存在
import * as example from "./example1.js" console.log(example.name) console.log(example.age) console.log(example.getName()) -------------------我是一條華麗的分界線--------------------------- // example3.js // 有導(dǎo)出默認(rèn), 有且只有一個(gè)默認(rèn),// 又有部分導(dǎo)出 export default const example3 = { birthday : "2018 09 20" } export let name = "my name" export let age = "my age" export let getName = function(){ return "my name"} // 導(dǎo)入默認(rèn)與部分 import example3, {name, age} from "./example1.js"6 字符串拼接
Es6的這種新的“字符串拼接”方法比較簡單,沒有繁瑣的加號和引號,只需要在所需要的字符串“邊界”加上``即可。
var name = "Datura"; var age = 18; var sex = "nü"; var hobby = "敲代碼"; var str1 = `我是${name},今年${age}歲,性別${sex}的了,愛好${hobby}`; //注意此處有兩個(gè)“ `` ” var str2 = "我是"+name+",今年"+age+"歲,性別"+sex+",愛好"+hobby+""; //這個(gè)是原來的寫法 alert(st1r);7 Map對象
ES6提供了新的數(shù)據(jù)結(jié)構(gòu)Map,Map結(jié)構(gòu)提供了“值—值”的對應(yīng),是一種更完善的Hash結(jié)構(gòu)實(shí)現(xiàn)。
我們來新建一個(gè)Map對象,并為其賦值:
let map = new Map(); map.set("a","apple"); map.set("b","banana"); console.log(map); // Map {"a" => "apple", "b" => "banana"}
1 獲取map里面的值:
獲取Map對象里面的值map.get(‘b’): banana
2 刪除Map對象里面的值map.delete()
3 如果我們只需要map里面的值:
for(let name of map.values()){ console.log(name); ////apple banana }
4 如果我們只需要map里面的key
for(let name of map.keys()){ console.log(name); //a b }7 for 循環(huán)
一: for in循環(huán)
//循環(huán)數(shù)組 let arr = [12,5,8]; for(let i = 0;i二: for of循環(huán)
//循環(huán)數(shù)組 let arr = [12,5,8]; for(let name of arr){ console.log(name); // 12 5 8 } //循環(huán)json數(shù)據(jù) let json = {a:"apple",b:"banana"}; for(let name of json){ console.log(name); } //報(bào)錯(cuò),因?yàn)椴荒苡胒or ...of...來循環(huán)json數(shù)據(jù)8 箭頭函數(shù)我們先回顧下ES5函數(shù)定義與調(diào)用:
var show = function(){ alert(12); }; show(); // 12 const show = () =>{ alert(12); }; show(); // 12 //個(gè)人理解:這里將function關(guān)鍵字去掉然后在“()”后面加一個(gè)“=>”
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/100278.html
摘要:常量變量先說說常量和變量的概念吧,常量是說那種進(jìn)行一次賦值后不會(huì)更改的值,比如說游戲賬戶的,變量是說賦值后有更改的需求的,比如游戲名,游戲密碼。常用實(shí)例交換變量的值提取數(shù)據(jù)解構(gòu)賦值對提取對象中的數(shù)據(jù),尤其有用。 本系列文章適合快速掌握 ES6 入門語法,想深入學(xué)習(xí) ES6 的小伙伴可以看看阮一峰老師的《ECMAScript 6 入門》 學(xué)習(xí) 20% 的知識(shí)完成 80% 的工作 關(guān)于 ...
摘要:本系列文章適合快速掌握入門語法,想深入學(xué)習(xí)的小伙伴可以看看阮一峰老師的入門本篇文章是對之前文章的一個(gè)補(bǔ)充,可以使代碼更簡潔函數(shù)參數(shù)默認(rèn)值在傳統(tǒng)語法中如果想設(shè)置函數(shù)默認(rèn)值一般我們采用判斷的形式在新的語法中我們可以在參數(shù)聲明的同時(shí)賦予默認(rèn)值參數(shù) 本系列文章適合快速掌握 ES6 入門語法,想深入學(xué)習(xí) ES6 的小伙伴可以看看阮一峰老師的《ECMAScript 6 入門》 本篇文章是對之前文章...
摘要:的翻譯文檔由的維護(hù)很多人說,阮老師已經(jīng)有一本關(guān)于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會(huì)promise...... 本書的目的是以目前還在制定中的ECMASc...
摘要:結(jié)合工作中使用情況,簡單對進(jìn)行一些復(fù)習(xí)總結(jié),包括常用的語法,等,以及短時(shí)間內(nèi)要上手需要重點(diǎn)學(xué)習(xí)的知識(shí)點(diǎn)不同工作環(huán)境可能有一些差別,主要參考鏈接是阮一峰的博客以及外文博客阮老師大部分文章是直接翻譯的這個(gè)博客簡介先說一下,是一個(gè)標(biāo)準(zhǔn)化組織,他們 結(jié)合工作中使用情況,簡單對es6進(jìn)行一些復(fù)習(xí)總結(jié),包括常用的語法,api等,以及短時(shí)間內(nèi)要上手需要重點(diǎn)學(xué)習(xí)的知識(shí)點(diǎn)(不同工作環(huán)境可能有一些差別),...
摘要:說到肯定是先介紹了,據(jù)阮一峰老師介紹到,是一個(gè)廣泛使用的轉(zhuǎn)碼器,可以將代碼轉(zhuǎn)為代碼,從而在現(xiàn)有環(huán)境執(zhí)行。輸出其他還有等可以查看阮一峰的入門 ES6也出來有一會(huì)時(shí)間了,他新增的語法糖也的確大大提高了開發(fā)者的效率,今天就總結(jié)一些自己用到最多的。 說到ES6肯定是先介紹Babel了,據(jù)阮一峰老師介紹到,Babel是一個(gè)廣泛使用的轉(zhuǎn)碼器,可以將ES6代碼轉(zhuǎn)為ES5代碼,從而在現(xiàn)有環(huán)境執(zhí)行。這意...
摘要:在重寫完了的時(shí)候,就個(gè)人總結(jié)了一下常用的一些常用的語法和比優(yōu)越的方面。參數(shù)字符串是否在原字符串的尾部返回布爾值。第一個(gè)大于的成員的索引方法,用于某個(gè)數(shù)組是否包含給定的值,返回一個(gè)布爾值。 1.前言 前幾天,用es6的語法重寫了我的一個(gè)代碼庫,說是重寫,其實(shí)改動(dòng)的并不多,工作量不大。在重寫完了的時(shí)候,就個(gè)人總結(jié)了一下es6常用的一些常用的語法和比es5優(yōu)越的方面。下面提到的語法可能也就是...
閱讀 3431·2019-08-29 16:17
閱讀 2040·2019-08-29 15:31
閱讀 2731·2019-08-29 14:09
閱讀 2629·2019-08-26 13:52
閱讀 817·2019-08-26 12:21
閱讀 2208·2019-08-26 12:08
閱讀 1097·2019-08-23 17:08
閱讀 2101·2019-08-23 16:59