ECMAscript6(ES6)新特性語法總結(一)


ES6/ES2015,,在ES5的基礎上擴展了很多新的功能,在使用的時候要慎重,因為有一部分js代碼在部分瀏覽器是不兼容的,但是所有寫在服務器端的代碼基本上都支持ES6的寫法.

新特性:

一.開啟嚴格模式

在函數的第一行加上"use strict"字符串,如果需要整個js代碼中開啟,就在js第一行加上這一段字符.

設置"嚴格模式"的目的,主要有:

  • 清除javascript語法的一些不合理,不嚴謹之處,減少怪異行為
  • 清楚代碼運行的一些不安全之處,保證代碼運行的安全.
  • 提高編譯效率,增加運行速度
  • 為未來新版本的javascript做好鋪墊.

注意:

在正常模式下可以直接使用為未聲明的變量 嚴格模式不行

name="jhon"; 
console.log(name);
 //輸出jhon

在正常模式下一個方法可以有很多個同名參數 嚴格模式不行

function fn(aa,aa,bb){ return aa+aa+bb; } console.log(fn("11","22","33")); //輸出222233

二.定義變量使用let(類似var)

javascript中的var:

  • var聲明的變量會有變量提升
  • var沒有塊級作用域
  • var可以多次重復定義一個變量

這些聲明在后天開發語言是不允許的,為了規范變量的聲明ES6退出了新的關鍵字let代替var的聲明變量.

let的特點:

  • let聲明的變量不會有變量提升
  • let存在塊級作用域
  • let不能多次重復定義變量

三.定義常量const

常量是指不會改變的數據.

常量const的特點:

  • 值不能再改變
  • 常量具有塊級作用域
  • 不要在塊級作用域中聲明常量
  • 沒有變量提升,要先聲明后使用
  • 不可以聲明同名的常量
  • 一定要賦初始值,否則會報錯
  • 如果聲明的是常量是一個對象,只要對象的地址不改變,其內部的屬性可以改變

四.字符串的擴展

      如果要判斷字符串”hello word”中是否存在”word”,用字符串中的方法只有indexOf,在ES6中又為我們提供了其它的方法:

  • includes()->返回布爾值,用於判字符串是否包含某些字符串
  • startsWith()->返回布爾值,用於判斷字符串是否以某些字符開頭
  • endWith()->返回布爾值,用於判斷字符串是否以繆謝字符結尾.有兩個參數(字符串,數值)->("o",3)用於判斷下標3的字符串是否是"0".
  • repeat()->傳入一個數字,將字符串重復數字對應的次數返回.

            注意:傳入的是正小數,數字會被向下取整;傳入字符串類型的數值("5"),可以,傳入("5a")不可以當空處理;不能傳入負數.

五.模塊語法:"模塊字符串"

結構:`模板內容${code}`

注意:code可以是變量,方法名,js表達式

 1 //變量
 2 let name='jack';  3 let temp=`我叫${name}`;  4 //temp==>我叫jack
 5 
 6 
 7 //表達式
 8 let a=1;  9 let b=1; 10 let temp=`a+b的和是$(a+b)`; 11 //temp==>2
12 
13 //方法
14 function getName(){ 15 return 'jack'; 16 } 17 let temp=`我叫${getName()}`; 18 //temp==>jack

六.箭頭函數 0=>{}

為了方便書寫,es6規定了一種新的寫法來簡化匿名函數:去掉function改為=>,結構為()=>{}

過程一:去掉function關鍵字

arr.each(function(m,n){
              console.log(n)

});

得到:arr.each((m,n)=>{console.log(n);});

過程二:如果只有一句代碼可以去掉大括號和return關鍵字

得到: arr.each((m,n)=>console.log(n));

過程三:如果參數只一個,可以將參數中的小括號去掉。

得到: arr.each(n=>console.log(n))

過程四:如果代碼只有一句,並且代碼中return,可以去掉return.

得到: arr.sort((n,m)=>n-m);

注意:箭頭函數沒有固定的寫法,它是根據當前方法的參數和方法的返回值來的

箭頭函數中this指向問題:

  • 箭頭函數沒有自己的this,函數體內部寫的this,會順着作用域去找最近真實存在的this。

  • 箭頭函數內部的this是定義時所在的對象,而不是使用時所在的對象,並且不會改變。

  • 箭頭函數不能作為構造函數
  • 箭頭函數中不存在arguments,箭頭函數中的argument指向的是外層的arguments.

未完,待續...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM