摘要:獲取對象長度和遍歷對象的鍵的所有方法關于遍歷,工具庫有很好的擴展可以非常方便地返回一個自身所有的,但不包含從原型鏈繼承下來的除了自身的,還包含從原型鏈繼承下來的獲取對象長度和方法返回一個給定對象自己的所有可枚舉屬性值的數組,值的順序與使用循
獲取對象長度和keys
遍歷對象的鍵的所有方法
關于遍歷keys,工具庫lodash有很好的擴展
https://lodash.com/docs/4.17....
function Foo() { this.a = 1; this.b = 2; } Foo.prototype.c = 3; _.keys(new Foo); // => ["a", "b"] (iteration order is not guaranteed) //可以非常方便地返回一個object自身所有的key,但不包含從原型鏈繼承下來的 _.keys("hi"); // => ["0", "1"]
function Foo() { this.a = 1; this.b = 2; } Foo.prototype.c = 3; _.keysIn(new Foo); // => ["a", "b", "c"] (iteration order is not guaranteed) //除了object自身的key,還包含從原型鏈繼承下來的獲取對象長度 和 values
Object.values()方法返回一個給定對象自己的所有可枚舉屬性值的數組,值的順序與使用for...in循環的順序相同 ( 區別在于 for-in 循環枚舉原型鏈中的屬性 )。
var obj = { foo: "bar", baz: 42 }; console.log(Object.values(obj)); // ["bar", 42] // 類數組對象 var obj = { 0: "a", 1: "b", 2: "c" }; console.log(Object.values(obj)); // ["a", "b", "c"] 注意: var obj = { 0: "a", 1: "b", 2: { 3: "c" , 4: "d" } }; console.log(Object.values(obj)); // ["a", "b", {…}] 內置的對象沒有擴展成數組 // 隨機鍵值的類數組對象 var an_obj = { 100: "a", 2: "b", 7: "c" }; console.log(Object.values(an_obj)); // ["b", "c", "a"] // getFoo 是不可枚舉屬性 var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } }); my_obj.foo = "bar"; console.log(Object.values(my_obj)); // ["bar"] // 參數是非對象會轉變成對象 console.log(Object.values("foo")); // ["f", "o", "o"]_values / _valuesIn
同樣的,lodash對此也有擴展
https://lodash.com/docs/4.17....
把object的每個key-value來個交換,key變成value,value變成key
此實現其實來自lodash的 _invert()源碼,
https://lodash.com/docs/4.17....
注意兩者區別: 原對象變/ 不變
通常我們會用
function isObject(arg) { return typeof arg === "object" && arg !== null; }
但是這樣是有問題的
https://www.cnblogs.com/youho...
最好使用
console.log(Object.prototype.toString.call("jerry"));//[object String] console.log(Object.prototype.toString.call(12));//[object Number] console.log(Object.prototype.toString.call(true));//[object Boolean] console.log(Object.prototype.toString.call(undefined));//[object Undefined] console.log(Object.prototype.toString.call(null));//[object Null] console.log(Object.prototype.toString.call({name: "jerry"}));//[object Object] console.log(Object.prototype.toString.call(function(){}));//[object Function] console.log(Object.prototype.toString.call([]));//[object Array] console.log(Object.prototype.toString.call(new Date));//[object Date] console.log(Object.prototype.toString.call(/d/));//[object RegExp] function Person(){}; console.log(Object.prototype.toString.call(new Person));//[object Object]參考
Object.values()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93228.html
摘要:學習筆記二個人學習筆記參考阮一峰的教學學習筆記二是對學習筆記一的補充歷史是標準新增特性匯總方應航知乎專欄個小變化新增特性匯總方應航知乎專欄以后一年一次只增加了兩個特性只增加了個特性功能最多數據類型補充字符串多行字符串新特性多行字符串 JavaScript學習筆記二 個人學習筆記 參考阮一峰的JavaScript教學 學習筆記二是對學習筆記一的補充 JavaScript歷史 sho...
摘要:它通過數據模型進行鍵值綁定及事件處理,通過模型集合器提供一套豐富的用于枚舉功能,通過視圖來進行事件處理及與現有的通過接口進行交互。 本人兼職前端付費技術顧問,如需幫助請加本人微信hawx1993或QQ345823102,非誠勿擾 1.為初學前端而不知道怎么做項目的你指導 2.指導并扎實你的JavaScript基礎 3.幫你準備面試并提供相關指導性意見 4.為你的前端之路提供極具建設性的...
摘要:對象是所有不同對象的容器,也就是說該對象保存所有物體光源攝像機以及渲染所需的其他對象。對象又是被稱為場景圖,它不僅僅是一個對象數組,還包含了整個場景圖樹形結構中的所有節點每個添加到場景的對象,甚至包括本身都是繼承自一個名為的對象。 THREE.Scene THREE.Scene 對象是所有不同對象的容器,也就是說該對象保存所有物體、光源、攝像機以及渲染所需的其他對象。 THREE.S...
摘要:基本的學習思路是跟著框架設計這本書,甚至可以說是這本書的讀書筆記。也參考很多網上解讀的博客和學習資料。當然,最重要的資料還是框架的源代碼。后來由于開發者反對,新興的框架都在命名空間上構建。 JavaScript框架學習筆記(一) 我為什么要學習框架 更深入的理解工具,以后用起來更順手而且也能做一定的工具取舍,學習理解新工具也就更快, 對提升js水平也很有幫助,框架有很多解決坑的經典思...
摘要:在瀏覽器中的全局對象是對象。程序是由事件驅動執行的單線程模型,也不例外。不斷執行響應事件的函數,直到沒有任何響應事件的函數可以執行,就退出了。方法此方法可以在下一次事件響應中執行代碼。它會返回一個對象,告訴我們文件的詳細信息。 global JS在瀏覽器中的全局對象是window對象。在Node.js環境中,全局對象則叫global。我們可以用它來區分當前JavaScript的執行環境...
摘要:使用和架構創建一個典型的項目。屬性被賦值給傳入的函數運行的結果。渲染,我們使用,這是一個對象,它指向的屬性,使用函數使用的結果替換。最后,啟動整體應用,為了保證完全加載,用包裝器調用完整日常練習一些在對象初始化的時候執行的代碼 使用Backbone.js 和 MVC 架構創建一個典型的Hello world項目。雖然是殺雞用牛刀了,畢竟是我第一次使用Backbone.js 依賴 ...
閱讀 1084·2021-10-08 10:04
閱讀 3523·2021-08-05 10:01
閱讀 2278·2019-08-30 11:04
閱讀 1794·2019-08-29 15:29
閱讀 836·2019-08-29 15:12
閱讀 1670·2019-08-26 12:11
閱讀 3115·2019-08-26 11:33
閱讀 1163·2019-08-26 10:23