摘要:函數的屬性中,代表形參即希望傳入的參數的數量,如等于中情況有所不同函數默認參數指定了默認參數后,函數的將返回沒有指定默認參數的參數的個數變量名參數也不會計入屬性類數組轉成真正數組的幾種方式中中可以將類似數組的對象和可遍歷的對象轉換為真正的
1.函數的length屬性
ES5中,length代表形參(即希望傳入的參數)的數量,如function display(a,b,c){ / /} ;display.length等于3
ES6中情況有所不同:
(1)函數默認參數
指定了默認參數后,函數的 length 將返回沒有指定默認參數的參數的個數
funciton display(str1="test",str2){ console.log(str1+str2); } display.length;//1
(2)rest(...變量名)
rest參數也不會計入length屬性
funciton display(str1,...strs){ console.log(str1+str2); } display.length;//12.類數組轉成真正數組的幾種方式
ES5中:Array.prototype.slice.call();
Array.prototype.slice.call(arguments);//argemtns->Array
ES6中:
(1)Array.from()可以將類似數組的對象和可遍歷的對象轉換為真正的數組
var arr = Array.from(arguments);
(2)rest參數 形式:“ ...變量名”主要用在將arguments對象轉換為數組
把arguments類數組對象變為真正的對象: funciton display(...arr){ //...arr代替arguments arr instanceof Array //true }
(3)擴展運算符:
[...arrayLive]
(4)set方法:
new Set(arrayLive);3.使用函數函數的幾點注意(重點理解)
箭頭函數沒有自己的this,它們的this都是外層函數的this
(1)函數體內的this對象就是定義時所在的對象,而不是使用時所在的對象
(2)不可以當作構造函數。也就是不可以使用new命令,否則會報錯
(3)不可以使用arguments對象,該對象在函數體內不存在.如果要用可以用rest參數代替
(4)不可以使用yield命令,因此箭頭函數不能做Generator函數
詳細內容請參閱:http://es6.ruanyifeng.com/#do...
Object.assign:用來將源對象的所有的可枚舉屬性復制到目標對象
語法: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)只復制自由屬性并且是可枚舉的屬性
(2)這里的復制是淺復制
(3)如果目標對象與原對象有同名屬性,或者多個原對象有同名屬性,則后面的屬性會覆蓋前面的屬性
ES5中有三種方法會忽略enumerable為false的屬性
(1)for...in循環:遍歷對象自身和繼承的可枚舉的屬性
(2)Object.keys():返回對象自身的所有可枚舉的屬性的鍵名
(3)json.stringify():只串行化對象自身的可枚舉屬性
ES6中新增了兩個操作會忽略enumerable為false的屬性
(1)Object.assign():只復制對象自身的可枚舉屬性
(2)Reflect.enumerate():返回所有for...in會遍歷的屬性
屬性的遍歷:
ES6中有6中方法可以遍歷對象
(1)for...in循環:遍歷對象自身和繼承的可枚舉的屬性
(2)Object.keys():返回對象自身的所有可枚舉的屬性的鍵名
(3)getOwenPropertyNames():返回一個數組,包含對象自身所有的屬性(不包括 Symbol屬性,但是包括不可枚舉屬性)
(4)getOwenSymbolNames():返回一個數組,包含對象自身所有的Symbol屬性
(5)Reflect.ownKeys():返回一個數組,包含對象自身所有的屬性(包括Symbol和不可枚舉屬性)
(6)Reflect.enumerate():返回所有for...in會遍歷的屬性
以上6種方法共同遵守的遍歷次序規則:
(1)首先遍歷屬性名為數字的屬性,按照數字順序排序
(2)其次遍歷所有屬性名為字符串的屬性,按照字符串生成時間排序
(3)最后遍歷所有屬性名為symbol值得屬性,按照生成時間排序
對象屬性從屬關系判斷:
hasOwnPrototyOf():自身 可枚舉
in :自身和繼承
_proto_屬性用來讀取或者設置當前對象的prototype對象。
奉上鏈接:https://github.com/creeperyan...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/111985.html
摘要:函數的屬性中,代表形參即希望傳入的參數的數量,如等于中情況有所不同函數默認參數指定了默認參數后,函數的將返回沒有指定默認參數的參數的個數變量名參數也不會計入屬性類數組轉成真正數組的幾種方式中中可以將類似數組的對象和可遍歷的對象轉換為真正的 1.函數的length屬性 ES5中,length代表形參(即希望傳入的參數)的數量,如function display(a,b,c){ / /} ...
摘要:函數的屬性中,代表形參即希望傳入的參數的數量,如等于中情況有所不同函數默認參數指定了默認參數后,函數的將返回沒有指定默認參數的參數的個數變量名參數也不會計入屬性類數組轉成真正數組的幾種方式中中可以將類似數組的對象和可遍歷的對象轉換為真正的 1.函數的length屬性 ES5中,length代表形參(即希望傳入的參數)的數量,如function display(a,b,c){ / /} ...
摘要:是文檔的一種表示結構。這些任務大部分都是基于它。這個實踐的重點是把你在前端練級攻略第部分中學到的一些東西和結合起來。一旦你進入框架部分,你將更好地理解并使用它們。到目前為止,你一直在使用進行操作。它是在前端系統像今天這樣復雜之前編寫的。 本文是 前端練級攻略 第二部分,第一部分請看下面: 前端練級攻略(第一部分) 在第二部分,我們將重點學習 JavaScript 作為一種獨立的語言,如...
摘要:然而,臨近規范發布時,有建議提及未來的版本號切換為編年制,比如用同來指代在年末前被定稿的所有版本??偟脕碚f就是版本號不再那么重要了,開始變得更像一個萬古長青的活標準。 你不知道的JS(下卷)ES6與之未來 第一章:ES的今與明 在你想深入這本書之前,你應該對(在讀此書時)JavaScript的最近標準掌握熟練,也就是ES5(專業來說是ES 5.1)。在此,我們決定全方面地談論關于將近的...
閱讀 3486·2021-11-18 10:07
閱讀 1586·2021-11-04 16:08
閱讀 1502·2021-11-02 14:43
閱讀 1083·2021-10-09 09:59
閱讀 837·2021-09-08 10:43
閱讀 1073·2021-09-07 09:59
閱讀 954·2019-12-27 11:56
閱讀 994·2019-08-30 15:56