以下引用網頁內文,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進位嗎?
沒有留言:
張貼留言