做爲在碼農圈混跡了 四五年的老碼畜來講,學習一門新的語言,就彷彿是老司機開新車同樣 輕車熟路。
javascript
爲何會這麼快呢?
java
由於各類套路啊~
git
任何一種計算機語言的最開始都是和 數據類型 這個東西分不開,那麼今天,咱們就從 JavaScript 的數據類型開始
es6
由於對於不少的 jser 的初學者而言,或者說說對於不少代碼初學者而言,數據類型是讓人疑惑的地方。那麼必定要解除這個疑慮。 JavaScript 一共有 八種數據類型。其中包含了 基本數據類型 和 引用數據類型 其中基礎數據類型有: string 、 number 、 Boolean 、 null、 undefined 其中 引用類型有: array 、 function 、 object 一共就這麼8種數據類型,每一種類型都會有各自的屬性或者方法,從而構建了這個豐富多彩的 JavaScript 世界。 那咱們經常須要判斷 這個參數的數據類型從而進行下一步的操做。 那麼這個時候 typeOf 就是一個不錯的選擇,可是也有一些問題,我們下面接着聊。
const strA = 'xxx===' const numberB = 123 const boolC = false const nullD = null const undedfinE = undefined const arrayF = [1,2,3] const funcG = function() { let a = '123' console.log(a) } const objH = { a: 1, getName: function() { console.log(this.a) } } const result = function(x) { return typeof x } console.log(result(strA)) // string console.log(result(numberB)) // number console.log(result(boolC)) // boolean console.log(result(nullD)) // object console.log(result(undedfinE)) // undefined console.log(result(arrayF)) // object console.log(result(funcG)) // function console.log(result(objH)) // object
TIPS:
看完上面的八種 數據類型的 讀取。是否是發現有三種數據仍是讓人有點迷糊,分別就是 null、array、Object 。 這三個數據類型的 typeof 都是 object。 那如何再次區分呢?github
typeof null // object typeof [123,133] // object typeof {a:1} // object // 這個時候就沒法判斷了, 如何操做了? const testArray = [11,22,33,44] const testNull = null const testObj = {a:1} const testObjectFun = function(x) { return Object.prototype.toString.call(x) } console.log( testObjectFun(testArray)) // [object Array] console.log( testObjectFun(testNull)) // [object Null] console.log( testObjectFun(testObj)) // [object Object]
TIPS:
目前來看,Object.prototype.toString.call(xxx) 是一個很好判斷當前對象爲 什麼的方法。數組
const arr = [1,2,3] // es6 Array.isArray(arr) arr instanceof Array arr.constructor === Array // es5 Object.prototype.toString.call(arr) === '[object Array]'
在 ES五、6 中提供了一系列的 判斷當前對象爲 數組的方法. 能夠做爲一個炫技的存在了。
在 JS 這門語言中,常見的數據類型在上文中已經做出了 展現,並且也展現了一些判斷當前數據類型的方法,因爲 JS 是一門弱類型語言,所謂弱類型語言實際上是指 數據的類型能夠根據上下文的變化 發生改變。 在下一個章節 咱們會介紹下 數據類型的改變方法。
學習
Github 地址,歡迎Starthis