最詳細的ES6基礎語法

2022-09-18 07:42:31 字數 2455 閱讀 8813

netscape(網景)公司創造了j**ascript這個指令碼語言,j**ascript被越來越多的使用,後來出現的指令碼語言也很多,就希望把它提交給國際化標準組織ecma實行秦國的貨幣統一政策,ecma發布的標準就叫做ecmascript 。

ecmascript 6是j**ascript語言的下一代標準,已經在2023年6月正式發布了。es6的目標,是使得j**ascript語言可以用來編寫大型的複雜的應用程式,成為企業級開發語言。

node.js 是乙個基於 chrome v8 引擎的 j**ascript 執行環境。基於nodejs的web框架也應運而生,有express,angularjs,nodejs等等

1.let宣告的變數不存在預解析

js預解析的過程可以這樣理解:

預解析就像是一場遊戲,遊戲開始之前先清點玩家參與的名單,只要你開黑加入了這場團戰,那你就是遊戲的參與者。無論你掛機還是不掛機,都是遊戲的參與者。

underfined就好比掛機的。

報錯找不到的就不是這場遊戲的參與者

console.log(flag);

var flag = 456;結果為undefined

console.log(flag);

var flag = 456;結果會報錯,無法在初始化之前訪問

2.let宣告的變數不允許重複(在同乙個作用域內)

3.es6引入了塊級作用域,塊內部定義的變數,只能先宣告再使用,在外部是不可以訪問的

4.for迴圈括號中宣告的變數只能在迴圈體中使用

適用變數let的所有語法

有一點需要注意點的:const宣告的常量必須初始化

解構賦值,是將 = 右邊的結構分解(解構),然後按照格式給 = 左邊進行賦值

let [a,b,c] = [1,2,3];

let [a=111,b,c] = [,123,];

a=111是指定預設值

let = ;

// 物件屬性別名(如果有了別名abc,那麼原來的名字foo就無效了)

let = ;

let [a,b,c,d,e] = "hello";

console.log(a,b,c,d,e);

對應字串的字元,如果字串不夠,那個變數則為undefined,字串過多,則變數為前面的部分.

includes() 判斷字串中是否包含指定的字串(有的話返回true,否則返回false)

引數一:匹配的字串;引數二:從第幾個開始匹配

startswith()  判斷字串是否以特定的字串開始

endswith()  判斷字串是否以特定的字串結束

比如:console.log('hello world'.includes('world',6));

let url = 'admin/index.php';

console.log(url.startswith('admin'));

console.log(url.endswith('phph'));

結果為true true false

let obj = ;

// 反引號表示模板,模板中的內容可以有格式,通過${}方式填充資料

let tpl = `$$

$$`;function foo(param = 'nihao')

foo('hello kitty');

引數預設值為nihao

//函式引數的解構功能對於實現多參的函式是非常有用的。

function foo(={})

foo();

這裡的物件裡屬性的預設是為lisi ,13

function foo(a,b,...param)

foo(1,2,3,4,5);

列印的結果為1,2,[3,4,5]

剩餘的引數都會加入param裡變成陣列的一部分

和rest引數相對立,把陣列裡的屬性值拆分成乙個個單獨的數值

function foo(a,b,c,d,e,f,g)

let arr = [1,2,3,4,5,6,7];

foo(...arr);

合併陣列:

let arr1 = [1,2,3];

let arr2 = [4,5,6];

let arr3 = [...arr1,...arr2];

console.log(arr3);

基本格式:let 函式名 = (引數1,引數2) =>

如:let foo = (a,b) =>     foo(1,2); 結果列印4

匿名函式:

let arr = [123,456,789];

arr.foreach((element,index)=>);

箭頭函式的注意事項:

1、箭頭函式中this取決於函式的定義,而不是呼叫

2、箭頭函式不可以new

3、箭頭函式不可以使用arguments獲取引數列表,可以使用rest引數代替

ES6 基礎語法

1 var vs let const var 可以定義全域性變數,與之不同,let的重要特性就是提供了塊級作用域和不具備變數提公升。const主要用於定義常量,常量顧名思義不是變數,意思就是一經定義,值就無法改變。首先弄明白塊級作用域 es5中有全域性作用域與函式作用域,塊級作用域是es6中的新語法...

ES6基礎語法

let 變數 不具備變數提公升特性 const 常量 引用位址不可改變 在宣告時必須被賦值 let和const都是塊級作用域 只在最靠近的乙個塊中 花括號內 有效 在es6中新增了模板字串拼接 var name kingfan var age 18 var msg 我是 今年 歲 console.l...

es6語法 基礎

let 1.let宣告的變數只能宣告一次,不能被重新定義 2.let定義的變數必須先定義再使用,不能在宣告之前訪問該變數 3.let定義的變數存在塊級作用域,不能被變數提公升,4.let在for迴圈外部不能被使用 所以for迴圈推薦使用let const的作用 定義常量 常量不允許重新賦值 cons...