中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript?ES6的函數怎么用

發布時間:2022-01-18 16:38:34 來源:億速云 閱讀:163 作者:iii 欄目:開發技術

今天小編給大家分享一下JavaScript ES6的函數怎么用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

ES6函數拓展

函數的默認參數

之前的寫法:

function count(x, y) {
    return x + y;
}
count(3);//因為只傳遞了參數x,y的默認值為undefined
//undefined + 3返回NaN

function count(x, y) {
    x = x || 0;
    y = y || 0;
    return x + y;
}
count(3);//3

function count(x, y) {
    x = x??0;
    y = y??0;
    return x + y;
}
count(3);//3

ES6寫法:

ES6的寫法簡潔易讀,能夠讓其他開發者快速了解參數類型,是否可省等信息,也不會對函數體代碼造成過多負擔,有利于后期優化重構

function count(x = 0, y = 0) {
    return x + y;
}
count(3);

注意事項:

1.使用默認參數,在函數體內不能重新命名同名變量

function count(x = 0, y = 0) {
    let x;//報錯
    const y;//報錯
}

參數默認值不是傳值的,而是每次都重新計算默認表達式的值,也就是說參數默認值是惰性求值的

let num = 1;
function count(x = num + 1, y = 0) {
    return x;
}
count();//2

num = 99;
count();//100

參數也可以作為默認值,但是要注意順序

正確示例:

function fn(x = 10, y = x) {
    console.log(x, y);
}
fn(20);//20 20
fn();//10 10

錯誤示例:

function fn(x = y, y = 10) {
    console.log(x, y);
}
fn();//報錯

參數默認值為變量時,如果外部作用域有對應變量,那么這個參數就會指向外部變量(即參數的值等于外部變量的值)

let w = 10;
function fn(x = w) {
    let w = 20;
    return x;
}
fn();//10

注意:

//在()階段,x已經賦值后,再改變w的值,也無法改變x的值
let w = 10;
function fn(x = 2) {
    w = 20;
    return x;
}
fn();//10

reset參數

ES6引入reset參數(形式為…變量名),用于獲取函數的多余參數,這樣就不需要使用arguments對象了

reset參數搭配的變量是一個數組,該變量將多余的參數放入數組中

類似解構賦值,以后就不用call來使arguments調用數組方法了

function count(...values) {
    console.log(values);//[2, 5, 3]
    return values.reduce((acc,curr) => acc + curr);
}
add(2, 5, 3);//10

reset參數必須作為函數最后一個參數

function count(...value, a){}//報錯

name屬性

函數的name屬性,返回該函數的函數名

function count(){}
console.log(count.name); //"count"

(new Function).name // "anonymous"

function foo() {};
foo.bind({}).name // "bound foo"

function foo() {};
foo.bind({}).name // "bound foo"

(function(){}).bind({}).name // "bound " // "bound "

(function(){}).name // ""

箭頭函數

ES6中規定可以使用“箭頭”(=>)定義函數

------------正常函數-------------
function count(x, y) {
    return x + y;
}
------------箭頭函數-------------
let count =(x, y) => x + y;

函數體中可以直接書寫表達式

let count = (x, y) => {
    y = 100;
    x = x * y;
    return x + y;
}
count(3, 4);//400

()中書寫表達式,書寫多個短語語句,最后一個“,”之后的值為返回值

let count = (x, y) => (x = 100, y = 10, x + y);
count(3, 4);//110

{}中書寫多行語句

//報錯 會將{}識別為函數體
let count = id => {id: id, name: "yunjin"};

//不會報錯
let count = id => ({id: id, name: "yunjin"});

以上就是“JavaScript ES6的函數怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寻乌县| 雷波县| 玉山县| 余庆县| 靖远县| 丰城市| 句容市| 玉田县| 海城市| 镇沅| 海口市| 武定县| 岳阳市| 林口县| 平顺县| 沁阳市| 玉门市| 木兰县| 深圳市| 锦州市| 永安市| 府谷县| 武强县| 老河口市| 香港| 沅陵县| 英德市| 丽江市| 芦山县| 肇庆市| 铅山县| 白城市| 上饶市| 藁城市| 泸西县| 公安县| 永泰县| 平安县| 上思县| 晋州市| 林州市|