摘要:函數(shù)的屬性中,代表形參即希望傳入的參數(shù)的數(shù)量,如等于中情況有所不同函數(shù)默認(rèn)參數(shù)指定了默認(rèn)參數(shù)后,函數(shù)的將返回沒(méi)有指定默認(rèn)參數(shù)的參數(shù)的個(gè)數(shù)變量名參數(shù)也不會(huì)計(jì)入屬性類(lèi)數(shù)組轉(zhuǎn)成真正數(shù)組的幾種方式中中可以將類(lèi)似數(shù)組的對(duì)象和可遍歷的對(duì)象轉(zhuǎn)換為真正的
1.函數(shù)的length屬性
ES5中,length代表形參(即希望傳入的參數(shù))的數(shù)量,如function display(a,b,c){ / /} ;display.length等于3
ES6中情況有所不同:
(1)函數(shù)默認(rèn)參數(shù)
指定了默認(rèn)參數(shù)后,函數(shù)的 length 將返回沒(méi)有指定默認(rèn)參數(shù)的參數(shù)的個(gè)數(shù)
funciton display(str1="test",str2){ console.log(str1+str2); } display.length;//1
(2)rest(...變量名)
rest參數(shù)也不會(huì)計(jì)入length屬性
funciton display(str1,...strs){ console.log(str1+str2); } display.length;//12.類(lèi)數(shù)組轉(zhuǎn)成真正數(shù)組的幾種方式
ES5中:Array.prototype.slice.call();
Array.prototype.slice.call(arguments);//argemtns->Array
ES6中:
(1)Array.from()可以將類(lèi)似數(shù)組的對(duì)象和可遍歷的對(duì)象轉(zhuǎn)換為真正的數(shù)組
var arr = Array.from(arguments);
(2)rest參數(shù) 形式:“ ...變量名”主要用在將arguments對(duì)象轉(zhuǎn)換為數(shù)組
把a(bǔ)rguments類(lèi)數(shù)組對(duì)象變?yōu)檎嬲膶?duì)象: funciton display(...arr){ //...arr代替arguments arr instanceof Array //true }
(3)擴(kuò)展運(yùn)算符:
[...arrayLive]
(4)set方法:
new Set(arrayLive);3.使用函數(shù)函數(shù)的幾點(diǎn)注意(重點(diǎn)理解)
箭頭函數(shù)沒(méi)有自己的this,它們的this都是外層函數(shù)的this
(1)函數(shù)體內(nèi)的this對(duì)象就是定義時(shí)所在的對(duì)象,而不是使用時(shí)所在的對(duì)象
(2)不可以當(dāng)作構(gòu)造函數(shù)。也就是不可以使用new命令,否則會(huì)報(bào)錯(cuò)
(3)不可以使用arguments對(duì)象,該對(duì)象在函數(shù)體內(nèi)不存在.如果要用可以用rest參數(shù)代替
(4)不可以使用yield命令,因此箭頭函數(shù)不能做Generator函數(shù)
詳細(xì)內(nèi)容請(qǐng)參閱:http://es6.ruanyifeng.com/#do...
Object.assign:用來(lái)將源對(duì)象的所有的可枚舉屬性復(fù)制到目標(biāo)對(duì)象
語(yǔ)法:Object.assign(targetObj,source1,source2,...)
例如:
var target = {a:1,b:2}; var source1 = {c:3}; var source2 = {d:4}; Object.assign(target,source1,source2); target//{a:1,b:2,c:3,d:4};
這里有一些需要注意的地方:
(1)只復(fù)制自由屬性并且是可枚舉的屬性
(2)這里的復(fù)制是淺復(fù)制
(3)如果目標(biāo)對(duì)象與原對(duì)象有同名屬性,或者多個(gè)原對(duì)象有同名屬性,則后面的屬性會(huì)覆蓋前面的屬性
ES5中有三種方法會(huì)忽略enumerable為false的屬性
(1)for...in循環(huán):遍歷對(duì)象自身和繼承的可枚舉的屬性
(2)Object.keys():返回對(duì)象自身的所有可枚舉的屬性的鍵名
(3)json.stringify():只串行化對(duì)象自身的可枚舉屬性
ES6中新增了兩個(gè)操作會(huì)忽略enumerable為false的屬性
(1)Object.assign():只復(fù)制對(duì)象自身的可枚舉屬性
(2)Reflect.enumerate():返回所有for...in會(huì)遍歷的屬性
屬性的遍歷:
ES6中有6中方法可以遍歷對(duì)象
(1)for...in循環(huán):遍歷對(duì)象自身和繼承的可枚舉的屬性
(2)Object.keys():返回對(duì)象自身的所有可枚舉的屬性的鍵名
(3)getOwenPropertyNames():返回一個(gè)數(shù)組,包含對(duì)象自身所有的屬性(不包括 Symbol屬性,但是包括不可枚舉屬性)
(4)getOwenSymbolNames():返回一個(gè)數(shù)組,包含對(duì)象自身所有的Symbol屬性
(5)Reflect.ownKeys():返回一個(gè)數(shù)組,包含對(duì)象自身所有的屬性(包括Symbol和不可枚舉屬性)
(6)Reflect.enumerate():返回所有for...in會(huì)遍歷的屬性
以上6種方法共同遵守的遍歷次序規(guī)則:
(1)首先遍歷屬性名為數(shù)字的屬性,按照數(shù)字順序排序
(2)其次遍歷所有屬性名為字符串的屬性,按照字符串生成時(shí)間排序
(3)最后遍歷所有屬性名為symbol值得屬性,按照生成時(shí)間排序
對(duì)象屬性從屬關(guān)系判斷:
hasOwnPrototyOf():自身 可枚舉
in :自身和繼承
_proto_屬性用來(lái)讀取或者設(shè)置當(dāng)前對(duì)象的prototype對(duì)象。
奉上鏈接:https://github.com/creeperyan...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/50746.html
摘要:函數(shù)的屬性中,代表形參即希望傳入的參數(shù)的數(shù)量,如等于中情況有所不同函數(shù)默認(rèn)參數(shù)指定了默認(rèn)參數(shù)后,函數(shù)的將返回沒(méi)有指定默認(rèn)參數(shù)的參數(shù)的個(gè)數(shù)變量名參數(shù)也不會(huì)計(jì)入屬性類(lèi)數(shù)組轉(zhuǎn)成真正數(shù)組的幾種方式中中可以將類(lèi)似數(shù)組的對(duì)象和可遍歷的對(duì)象轉(zhuǎn)換為真正的 1.函數(shù)的length屬性 ES5中,length代表形參(即希望傳入的參數(shù))的數(shù)量,如function display(a,b,c){ / /} ...
摘要:函數(shù)的屬性中,代表形參即希望傳入的參數(shù)的數(shù)量,如等于中情況有所不同函數(shù)默認(rèn)參數(shù)指定了默認(rèn)參數(shù)后,函數(shù)的將返回沒(méi)有指定默認(rèn)參數(shù)的參數(shù)的個(gè)數(shù)變量名參數(shù)也不會(huì)計(jì)入屬性類(lèi)數(shù)組轉(zhuǎn)成真正數(shù)組的幾種方式中中可以將類(lèi)似數(shù)組的對(duì)象和可遍歷的對(duì)象轉(zhuǎn)換為真正的 1.函數(shù)的length屬性 ES5中,length代表形參(即希望傳入的參數(shù))的數(shù)量,如function display(a,b,c){ / /} ...
摘要:是文檔的一種表示結(jié)構(gòu)。這些任務(wù)大部分都是基于它。這個(gè)實(shí)踐的重點(diǎn)是把你在前端練級(jí)攻略第部分中學(xué)到的一些東西和結(jié)合起來(lái)。一旦你進(jìn)入框架部分,你將更好地理解并使用它們。到目前為止,你一直在使用進(jìn)行操作。它是在前端系統(tǒng)像今天這樣復(fù)雜之前編寫(xiě)的。 本文是 前端練級(jí)攻略 第二部分,第一部分請(qǐng)看下面: 前端練級(jí)攻略(第一部分) 在第二部分,我們將重點(diǎn)學(xué)習(xí) JavaScript 作為一種獨(dú)立的語(yǔ)言,如...
摘要:然而,臨近規(guī)范發(fā)布時(shí),有建議提及未來(lái)的版本號(hào)切換為編年制,比如用同來(lái)指代在年末前被定稿的所有版本??偟脕?lái)說(shuō)就是版本號(hào)不再那么重要了,開(kāi)始變得更像一個(gè)萬(wàn)古長(zhǎng)青的活標(biāo)準(zhǔn)。 你不知道的JS(下卷)ES6與之未來(lái) 第一章:ES的今與明 在你想深入這本書(shū)之前,你應(yīng)該對(duì)(在讀此書(shū)時(shí))JavaScript的最近標(biāo)準(zhǔn)掌握熟練,也就是ES5(專(zhuān)業(yè)來(lái)說(shuō)是ES 5.1)。在此,我們決定全方面地談?wù)撽P(guān)于將近的...
摘要:由于系統(tǒng)變得越來(lái)越復(fù)雜,人們提出了稱(chēng)為預(yù)處理器和后處理器的工具來(lái)管理復(fù)雜性。后處理器在由預(yù)處理器手寫(xiě)或編譯后對(duì)應(yīng)用更改。我之前建議的文章,,也涵蓋了預(yù)處理器相關(guān)的知識(shí)。 譯者:前端小智 原文:medium.freecodecamp.org/from-zero-t… medium.freecodecamp.org/from-zero-t… 我記得我剛開(kāi)始學(xué)習(xí)前端開(kāi)發(fā)的時(shí)候。我看到了很多文章及...
閱讀 2911·2021-11-15 11:39
閱讀 1530·2021-08-19 10:56
閱讀 1103·2019-08-30 14:12
閱讀 3753·2019-08-29 17:29
閱讀 728·2019-08-29 16:21
閱讀 3429·2019-08-26 12:22
閱讀 1524·2019-08-23 16:30
閱讀 1032·2019-08-23 15:25