2017年6月22日 星期四

[JS]網頁學習 第一章 JS Type Conversion, JS Bitwise 小節 心得小記

最喜歡樹狀圖 & 條列式了!
以下引用網頁內文,type們的彙整:

In JS there are 5 different data types that can contain values:

  •   string
  •   number
  •   boolean
  •   object
  •   function

There are 3 types of objects:

  • Object
  • Date
  • Array

And 2 data types that cannot contain values:

  • null
  • undefined
----

這個章節出現一個回傳並印出 "true" 的範例,在此練習解釋:

<p id="demo"></p>

<script>
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = isArray(fruits);

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}
</script>

在 id = "demo" 的標籤加入 isArray(fruits) method 的回傳值,
所以要解釋 isArray():
isArray(example) 回傳括弧中參數 example 的 constructor 為何種型別方法,
並將回傳結果顯示為字串 (string? array?),
indexOf使得若字串 (string? array?) 中有 "Array" 字串,則 indexOf 必大於等於0,
故 > -1 為 true.


以上除了 (string? array?),其他都較有把握解釋正確。
這邊將腳本碼改成下述也是回傳 true,意義應該相同:(待高人指點)

<script>
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = 
(fruits.constructor.toString().indexOf("Array") > -1);
</script>

網頁中還有更簡化的範例,使用到" === ",也不難該試著想想看。

----

Bitwise 的章節,以下範例有疑問:
Converting Decimal to Binary
Example

function dec2bin(dec){
    return (dec >>> 0).toString(2);
}

dec >>> 0 表示什麼?將參數補0右移0個位子?
toString(2) 的2表示2進位嗎?

沒有留言:

張貼留言