摘要:走在前端的大道上本篇將自己讀過的相關數據類型文章中,對自己有啟發的章節片段總結在這會對原文進行刪改會不斷豐富提煉總結更新。相當于相當于相當于基礎類型不屬于包裝的對象類型參考文章基礎初談現有的數據類型
走在前端的大道上
本篇將自己讀過的相關 javascript 數據類型 文章中,對自己有啟發的章節片段總結在這(會對原文進行刪改),會不斷豐富提煉總結更新。
數據類型js 目前有以下幾大數據類型
undefined
null
string
boolean
number
symbol (ES6新增)
object
undefined類型原始值類型. 表示某個變量已經聲明, 但是未分配內存空間給予該變量.
var foo; console.log(foo); /* 申明變量, 卻沒有賦值 */
function bar (a) { console.log(a); /* 函數形參聲明, 卻沒有對應實參賦值 */ } bar();
function foo2 () {} var bar2 = foo2(); /* 函數無return 或者, return 不帶任何返回值 */
var o = {foo: "foo"} console.log(o.bar); /* 在對象中尋找不存在的屬性 */
var foo = "foo"; foo = undefined; /* 顯示將某個變量指向undefined, 消除引用標記 */null 類型
原始值類型. 聲明變量此時為一個空的原始值. 由于歷史原因, 使用typeof null 返回 object表示為一個對象.
如果要驗證一個變量是否為null, 可以有以下幾種方式
function is_null (o) { return o === null; } function is_null (o) { return Object.prototype.toString.call(o) === "[object Null]"; }string類型
原始值類型. string屬于不可變值類型, 當一個字符串進行相加后, 返回一個新的字符串引用。
var str = "hello world"; str = str + " liyanlong"; // 1. 棧內存 創建一個str變量 // 2. "hello wolrd" 內容存儲在堆中, 并將引用賦給 str變量 // 3. 獲取str的變量引用, 與新字符串 ` liyanlong` 進行連接操作. 產生新的引用地址并傳給str
簡單理解: string 類型的內容與 object的 內容都存儲在堆中。不同的一點是, 無法對string的堆進行修改, 任何連接,分割字符串的操作都會產生一個新的堆引用。
boolean 類型原始值類型, 只有true, false 兩個原始值.
typeof true // boolean typeof false // booleannumber 類型
原始值類型. 存儲一切數值類型, 包括正負數, 整數, 小數, 科學計數.
typeof NaN // number typeof Infinity // number typeof 0 // number typeof 1e2 // number typeof -0.5 // number
檢查一個變量是否可成為無法成為合法的 number 類型
window.isNaN("12") // false window.isNaN("foo") // true
檢查number是否為有限的number(非無窮)值
window.isFinite("123") // true window.isFinite(Infinity) // falsesymbol類型
原始值類型. 屬于ES6新增的一種數據類型. ES6允許屬性的key 為 symbol類型. 以此可以提供一個私有的屬性
let obj = (function () { let key = Symbol("你好"); let obj = { }; obj[key] = "私有變量"; return { get foo () { return this[key]; } }; })(); obj.foo = "hello world"; console.log(Object.getOwnPropertyNames(obj)); // ["foo"] console.log(Object.getOwnPropertySymbols(obj)); // [Symbol(你好)] let anotherKey = Symbol("你好"); console.log(obj[anotherKey]) // undefined typeof anotherKey // "symbol"object類型
引用類型. js中常見的引用對象 有Array, Object, Date.
var arr = []; var o = {}; var date = new Date() typeof o // object typeof arr // object typeof date // object
函數也屬于對象類型, 它是一種可調用的對象, 并且能創建調用棧執行內部代碼. 只是函數在執行typeof 時,返回的是function
function Foo() { } typeof Foo // function Foo instanceof Object // true值類型與引用類型
值類型屬于不可變類型, 由于具有固定長度大小, 因此可以存放在棧內存中,而引用類型屬于可變類型, 一個對象可以賦予多個屬性及值,屬性值又可以為一個新的引用對象。因此將引用類型存放在堆中
包裝類型為了方便boolean, number, string 基本類型的處理及調用, 當我們在執行toString(), valueOf(), +操作符 以及函數方法的時候, 會隱世轉換為Boolean,Number, String對象類型. 執行后返回的又是基本類型。
var bool = true var number = 1 var string = "hello world" console.log(bool + number) // 2 // 相當于 console.log(Boolean(bool).valueOf() + number) // 2 console.log(bool + string) // true hello world // 相當于 console.log(Boolean(bool).toString() + string) // true hello world string.charAt(0) // h // 相當于 console.log(String(string).charAt(0)) // h // 基礎類型不屬于包裝的對象類型 bool instanceof Boolean // false number instanceof Number // false string instanceof String // false
參考文章:
1.【JS基礎】初談JS現有的數據類型
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107446.html
摘要:模塊化是隨著前端技術的發展,前端代碼爆炸式增長后,工程化所采取的必然措施。目前模塊化的思想分為和。特別指出,事件不等同于異步,回調也不等同于異步。將會討論安全的類型檢測惰性載入函數凍結對象定時器等話題。 Vue.js 前后端同構方案之準備篇——代碼優化 目前 Vue.js 的火爆不亞于當初的 React,本人對寫代碼有潔癖,代碼也是藝術。此篇是準備篇,工欲善其事,必先利其器。我們先在代...
摘要:社區的認可目前已經是相關最多的開源項目了,體現出了社區對其的認可。監聽事件手動維護列表這樣我們就簡單的完成了拖拽排序。 完整項目地址:vue-element-admin 系類文章一:手摸手,帶你用vue擼后臺 系列一(基礎篇)系類文章二:手摸手,帶你用vue擼后臺 系列二(登錄權限篇)系類文章三:手摸手,帶你用vue擼后臺 系列三(實戰篇)系類文章四:手摸手,帶你用vue擼后臺 系列...
摘要:社區的認可目前已經是相關最多的開源項目了,體現出了社區對其的認可。監聽事件手動維護列表這樣我們就簡單的完成了拖拽排序。 完整項目地址:vue-element-admin 系類文章一:手摸手,帶你用vue擼后臺 系列一(基礎篇)系類文章二:手摸手,帶你用vue擼后臺 系列二(登錄權限篇)系類文章三:手摸手,帶你用vue擼后臺 系列三(實戰篇)系類文章四:手摸手,帶你用vue擼后臺 系列...
摘要:靈活性和針對性。所以我覺得大部分組件還是自己封裝來的更為方便和靈活一些。動手開干接下來我們一起手摸手教改造包裝一個插件,只要幾分鐘就可以封裝一個專屬于你的。 項目地址:vue-countTo配套完整后臺demo地址:vue-element-admin系類文章一:手摸手,帶你用vue擼后臺 系列一(基礎篇)系類文章二:手摸手,帶你用vue擼后臺 系列二(登錄權限篇)系類文章三:手摸手,帶...
閱讀 2520·2021-09-26 10:18
閱讀 3397·2021-09-22 10:02
閱讀 3196·2019-08-30 15:44
閱讀 3332·2019-08-30 15:44
閱讀 1838·2019-08-29 15:25
閱讀 2581·2019-08-26 14:04
閱讀 2047·2019-08-26 12:15
閱讀 2446·2019-08-26 11:43