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...