国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaScript解析】ES6定義變量與箭頭函數(shù)詳解

這篇具有很好參考價值的文章主要介紹了【JavaScript解析】ES6定義變量與箭頭函數(shù)詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【JavaScript解析】ES6定義變量與箭頭函數(shù)詳解

箭頭函數(shù)可以說是ES6的一大亮點,使用箭頭函數(shù),可以簡化編碼過程,使代碼更加的簡潔

本文由千鋒前端老師獨家創(chuàng)作,主要給大家介紹了關(guān)于ES6中箭頭函數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,覺得有幫助的話可以【關(guān)注】持續(xù)追更~

ES6定義變量

我們現(xiàn)在知道定義(聲明)一個變量用的是var

在ES6中又增加了兩種定義(聲明)變量的方式:let和const

let聲明變量: 用let聲明的變量也叫變量

const聲明變量: 用const聲明的變零叫產(chǎn)量

let和const的區(qū)別

聲明時賦值

用let聲明變量的時候可以不賦值

用const聲明變量的時候 必須 賦值

值的修改

用let聲明的變量的是可以任意修改的

用const聲明的變量的是不能修改的,也就是說一經(jīng)聲明就不允許修改

但是 用const聲明的對象,對象里面的屬性的值是可以修改的

<script> 
    //注意:這里的代碼不能整體運行。需要單獨運行。這里是為了整體做比較 
    // let 和 const 的區(qū)別 
    
    // 1. 聲明時賦值 
    let n 
    console.log(n) //undefined 
    n = 200 
    console.log(n) //200 
    // 不能定義常量不賦值 會報錯 
    const n2 
    
    // 2. 值的修改 
    let n = 100 
    console.log(n) //100 
    n = 'hello world' 
    console.log(n) //hello world 
    const str = '我是定義時候就寫好的內(nèi)容' 
    console.log(str)
    // 當你試圖修改一個 const 定義的常量 直接報錯 
    str = 'hello world' 
</script>

let/const和var的區(qū)別

預解析

○var 會進行預解析, 可以先使用后定義

○let/const 不會進行預解析, 必須先定義后使用

變量重名

○var 定義的變量可以重名, 只是第二個沒有意義

○let/const 不允許在同一個作用域下, 定義重名變量

塊級作用域

var 沒有塊級作用域

let/const 有塊級作用域

塊級作用域 任何一個可以書寫代碼段的 {} 都會限制變量的使用范圍

if() {}

for () {}

<script> 
    // 注意:代碼不能整體運行需要分開運行,為了對比需要 
    //let/const 和 var 的區(qū)別 
    
    // 1. 預解析 
    console.log(n) //undefined 
    var n = 100 
    
    // Uncaught ReferenceError: Cannot access 'n2' before initialization 
    //未捕獲引用錯誤:在初始化之前無法訪問“n2” 
    console.log(n2) 
    let n2 = 200  
    console.log(n3) // Uncaught ReferenceError: Cannot access 'n3' before initi 
    const n3 = 300 
    
    // // 2. 變量重名 
    var n = 100 
    var n = 200 
    console.log(n) 
    //Uncaught SyntaxError: Identifier 'n1' has already been declared 
    //未捕獲的語法錯誤:標識符“n1”已聲明 
    let n1 = 100 
    let n1 = 200 //會報錯 
    const n2 = 200 
    const n2 = 300 //會報錯 
    
    // 3. 塊級作用域 
    if (true) { 
        var n = 100 
        console.log(n) //100 
    }
    console.log(n) // 100 
    if (true) { 
        let n = 200 
        console.log(n) //200 
    } 
        console.log(n) //Uncaught ReferenceError: n is not defined 
        const n = 400 
        if (true) { 
            const n = 300 
            console.log(n) //300 
    } 
        console.log(n) //400 
</script>

案例 -選項卡

<!DOCTYPE html> 
<html lang="en"> 
<head> 
   <meta charset="UTF-8"> 
   <meta name="viewport" content="width=device-width, initial-scale=1.0">     
   <meta http-equiv="X-UA-Compatible" content="ie=edge">  
   <title>Document</title> 
   <style> 
     * { 
       margin: 0; 
       padding: 0; 
     } 
     
     .box { 
       width: 500px; 
       height: 320px; 
       display: flex; 
       flex-direction: 
       column; margin: 50px auto; 
       border: 3px solid #333; 
     } 
     
     .box > ul { 
       height: 60px; 
       display: flex; 
     } 
     
     .box > ul > li { 
       flex: 1; 
       display: flex; 
       justify-content: center; 
       align-items: center; 
       font-size: 30px; 
       color: #fff; 
       background-color: skyblue; 
       cursor: pointer; 
     } 
     
     .box > ul > li.active { 
       background-color: orange; 
     } 
     
     .box > ol { 
       flex: 1; 
       position: relative; 
     } 
     
     .box > ol > li { 
       width: 100%; 
       height: 100%; 
       background-color: purple; 
       font-size: 50px; 
       color: #fff; 
       position: absolute; 
       left: 0; 
       top: 0; 
       display: none; 
     } 
     
     .box > ol > li.active { 
       display: block; 
     } 
   </style> 
</head> 
<body> 

  <div class="box"> 
   <ul> 
     <li class="active">1</li> 
     <li>2</li> 
     <li>3</li> 
   </ul> 
   <ol> 
    <li class="active">1</li> 
    <li>2</li> 
    <li>3</li> 
  </ol>
</div> 

<script> 
   /* 
     案例 - 選項卡 
   */ 
  
   for (let i = 0; i < btns.length; i++) {  
     btns[i].onclick = function () { 
       for (let j = 0; j < btns.length; j++) { 
         btns[j].classList.remove('active') 
         boxs[j].classList.remove('active') 
       } 
    
       btns[i].classList.add('active') 
       boxs[i].classList.add('active') 
     } 
   } 
 
   /* 
 
 
  </script> 
</body> 
</html>

ES6箭頭函數(shù)

箭頭函數(shù)是ES6 語法中定義函數(shù)的一種新方式,箭頭函數(shù)只能用來定義函數(shù)表達式,所以箭頭函數(shù)也是匿名函數(shù)

當你把函數(shù)當做一個值賦值給另一個內(nèi)容的時候, 叫做函數(shù)表達式

聲明式函數(shù)的定義方式是不能定義箭頭函數(shù)的

function fn() {} 這樣的方式是聲明式函數(shù),不能用來定義箭頭函數(shù)

語法:() => {}

()中書寫形參

{}中書寫代碼片段

箭頭函數(shù)的特點

可以省略小括號不寫

當你的形參只有一個的時候, 可以不寫小括號

如果你的形參沒有或者兩個及以上, 必須寫小括號

<script> 
    let fn1 = () => { 
        console.log('我是 fn1 函數(shù), 我沒有形參') 
    } 
    fn1() 
        // 一個形參, 可以不寫小括號 
    let fn2 = a => { 
        console.log('我是 fn2 函數(shù), 有一個參數(shù)', a) 
     } 
     fn2(10) 
         // 兩個形參, 必須寫小括號 
     let fn3 = (a, b) => { 
         console.log('我是 fn3 函數(shù), 有兩個參數(shù)', a, b) 
     } 
     fn3(100, 200) 
</script>

●可以省略大括號不寫

○當代碼只有一句話的時候, 可以省略大括號不寫, 并且會自動返回這一句話的結(jié)果,否則, 必須寫大括號

<script> 
    let fn1 = (a, b) => a + b 
    let res = fn1(10, 20) 
    console.log(res) //30 
    var arr = [1, 2, 3, 4, 5, 6, 7] 
    //演變過程 
    // var res = arr.filter(function (item) { return item % 2 }) 
    // var res = arr.filter((item) => { return item % 2 }) 
    // var res = arr.filter(item => { return item % 2 }) 
    var res1 = arr.filter(item => item % 2) 
    console.log(res1) //[1, 3, 5, 7] 
</script>

箭頭函數(shù)中沒有arguements

箭頭函數(shù)內(nèi)天生不帶有 arguments。沒有所有實參的集合

<script> 
    //普通函數(shù) 
    let fn1 = function() { 
        console.log(arguments)//會拿到傳遞的實參 
    } 
    fn1(10, 20, 30, 40, 50) 
    //箭頭函數(shù) 
    let fn2 = () => { 
        console.log(arguments)//會報錯 
     } 
     fn2(10, 20, 30) 
</script>

●箭頭函數(shù)內(nèi)沒有this

○箭頭函數(shù)中的this指向外部作用域

○也就是書寫在箭頭函數(shù)的外面那個函數(shù) this 是誰, 箭頭函數(shù)內(nèi)的 this 就是誰

<script> 
    var obj = { 
        name: '我是 obj 對象', 
        f: function() { 
            console.log('f : ', this) //Object 
        }, 
        f2: () => { 
            // 這里沒有 this, 用的是 外部的 this 
            console.log('f2 : ', this) //Window 
        } 
     } 
     obj.f() 
     obj.f2() 
</script>

到此這篇關(guān)于ES6定義變量與箭頭函數(shù)講解的文章就介紹到這了

更多關(guān)于ES6的內(nèi)容可以持續(xù)關(guān)注我們,技術(shù)問題歡迎大家一起交流討論~文章來源地址http://www.zghlxwxcb.cn/news/detail-454840.html

到了這里,關(guān)于【JavaScript解析】ES6定義變量與箭頭函數(shù)詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • JavaScript全解析——ES6函數(shù)中參數(shù)的默認值和解構(gòu)賦值

    本文為千鋒資深前端教學老師帶來的【JavaScript全解析】系列,文章內(nèi)含豐富的代碼案例及配圖,從0到1講解JavaScript相關(guān)知識點,致力于教會每一個人學會JS! 文末有本文重點總結(jié),可以收藏慢慢看~ 更多技術(shù)類內(nèi)容,主頁關(guān)注一波! 給函數(shù)的形參設(shè)置一個默認值, 當你沒有傳

    2024年02月05日
    瀏覽(38)
  • ES6系列之let、const、箭頭函數(shù)使用的坑

    ES6系列之let、const、箭頭函數(shù)使用的坑

    變量提升 塊級作用域的重要性 箭頭函數(shù)this的指向 rest參數(shù)和arguments Babel是一個廣泛使用的ES6轉(zhuǎn)碼器,可以將ES6代碼轉(zhuǎn)為ES5代碼,從而在老版本的瀏覽器執(zhí)行。這意味著,你可以用ES6的方式編寫程序,又不用擔心現(xiàn)有環(huán)境是否支持。 ?上面的原始代碼用了箭頭函數(shù),Babel將其轉(zhuǎn)

    2024年02月14日
    瀏覽(54)
  • ES6中的箭頭函數(shù)(arrow function)與普通函數(shù)的不同之處

    ES6中的箭頭函數(shù)(arrow function)與普通函數(shù)的不同之處

    前端入門之旅:探索Web開發(fā)的奇妙世界 歡迎來到前端入門之旅!感興趣的可以訂閱本專欄哦!這個專欄是為那些對Web開發(fā)感興趣、剛剛踏入前端領(lǐng)域的朋友們量身打造的。無論你是完全的新手還是有一些基礎(chǔ)的開發(fā)者,這里都將為你提供一個系統(tǒng)而又親切的學習平臺。在這個

    2024年02月10日
    瀏覽(18)
  • 【JavaScript】JavaScript 變量 ① ( JavaScript 變量概念 | 變量聲明 | 變量類型 | 變量初始化 | ES6 簡介 )

    【JavaScript】JavaScript 變量 ① ( JavaScript 變量概念 | 變量聲明 | 變量類型 | 變量初始化 | ES6 簡介 )

    JavaScript 變量 是用于 存儲數(shù)據(jù) 的 容器 , 通過 變量名稱 , 可以 獲取 / 修改 變量 中的數(shù)據(jù) ; 變量 的 本質(zhì) 是 存放數(shù)據(jù) 的 一塊內(nèi)存空間 ; 在 JavaScript 中, 使用 var / let / const 來聲明變量 , 每個變量都有一個 變量名 和 一個 變量值 ; JavaScript 變量聲明 : var : 使用

    2024年03月15日
    瀏覽(32)
  • 深入解析JavaScript中箭頭函數(shù)的用法

    深入解析JavaScript中箭頭函數(shù)的用法

    ????? 個人主頁: 《愛蹦跶的大A阿》 ?? 當前正在更新專欄: 《VUE》?、《JavaScript保姆級教程》、《krpano》、《krpano中文文檔》 ?? ? ????????箭頭函數(shù)(Arrow function)是JavaScript ES6中引入的一大特性。箭頭函數(shù)與傳統(tǒng)函數(shù)有一些區(qū)別,可以幫助我們簡化代碼并處理一些棘

    2024年01月20日
    瀏覽(22)
  • 【React系列】ES6學習筆記(一)let與const、解構(gòu)賦值、函數(shù)參數(shù)默認值\rest參數(shù)\箭頭函數(shù)、數(shù)組和對象的擴展、Set和Map等

    本文參考自電子書《ECMAScript 6 入門》:https://es6.ruanyifeng.com/ 盡量使用 let 聲明變量,而不是 var 。 let 聲明的變量是 塊級作用域 , var 聲明的變量是 全局作用域 。 使用 let 變量 必須先聲明再使用,否則報錯,不存在變量提升 。相對的 var 聲明的變量如果提前使用,不會報錯

    2024年02月03日
    瀏覽(36)
  • JavaScript Es6_2筆記 (深入對象 + 內(nèi)置構(gòu)造函數(shù) + 包裝類型)+包含實例方法

    了解面向?qū)ο缶幊痰幕A(chǔ)概念及構(gòu)造函數(shù)的作用,體會 JavaScript 一切皆對象的語言特征,掌握常見的對象屬性和方法的使用。 了解面向?qū)ο缶幊讨械囊话愀拍?能夠基于構(gòu)造函數(shù)創(chuàng)建對象 理解 JavaScript 中一切皆對象的語言特征 理解引用對象類型值存儲的的

    2024年02月12日
    瀏覽(52)
  • JavaScript 函數(shù)、函數(shù)構(gòu)造、函數(shù)調(diào)用、參數(shù)、函數(shù)返回值、變量的作用域、預解析

    一、函數(shù)及函數(shù)的構(gòu)造 函數(shù)是一個可重用的代碼塊,用來完成某個特定功能。每當需要反復執(zhí)行一段代碼時,可以利用函數(shù)來避免重復書寫相同代碼。 函數(shù)包含著的代碼只能在函數(shù)被調(diào)用時才會執(zhí)行,就可以避免頁面載入時執(zhí)行該腳本 簡單來說就是一個封裝,封裝的是一個特

    2024年02月06日
    瀏覽(34)
  • JavaScript保留字和預定義的全局變量及函數(shù)匯總

    JavaScript保留字和預定義的全局變量及函數(shù)匯總

    保留字也稱,每種語言中都有該語言本身規(guī)定的一些,這些都是該語言的語法實現(xiàn)基礎(chǔ),JavaScript中規(guī)定了一些標識符作為現(xiàn)行版本的或者將來版本中可能會用到的,所以當我們定義標識符時就不能使用這些了,下面介紹下JavaScript保留

    2024年01月16日
    瀏覽(25)
  • 箭頭函數(shù) - JavaScript的新寵兒

    箭頭函數(shù) - JavaScript的新寵兒

    ???鴻蒙專欄:想學鴻蒙的,沖 ?? C語言專欄:想學C語言的,沖 ???VUE專欄:想學VUE的,沖這里 ???CSS專欄:想學CSS的,沖這里 ?? Krpano專欄:想學VUE的,沖這里 ??? JavaScript專欄:想學JavaScript的,沖這里 ?? 上述專欄,都在不定期持續(xù)更新中?。。。。。。?目錄 ? 前

    2024年01月17日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包