以下摘自《JavaScript語言精粹》
- length屬性的值是其數(shù)組的最大整數(shù)屬性名加上1性宏,但它不一定等于數(shù)組里的屬性的個數(shù)
var myArray = [];
myArray.length // 0
myArray[1000000] = true;
myArray.length // 1000001
// myArray只包含一個屬性
var myArray = ['num',false,true]
myArray.length //3
myArray[100000] = true;
myArray.length //1000003
- 判斷對象是否為數(shù)組的好方法:
var is_array = function (value){
return Object.prototype.toString.apply(value) === '[object Array]'
}
- Array的sort方法不能對一組數(shù)字進(jìn)行正確排序
var n = [3, 4, 23, 45, 122, 9, 8];
n.sort(); // n = [122, 23, 3, 4, 45, 8, 9]
JavaScript的默認(rèn)比較函數(shù)把要被排序的元素都視為字符串褥琐,所以得到了一個錯的離譜的結(jié)果,解決方法如下:
n.sort(function(a, b){
return a-b;
})
摩爾定律并不適用于電池
NaN是IEEE 754中定義的一個特殊的數(shù)量值识啦,它表示的是不是一個數(shù)字,但是下面表達(dá)式返回的是true:
typeof NaN === 'number' //true
所以判斷是否為數(shù)字的最佳方法是:
var isNumber = function(value){
retur typeof value === 'number' && isFinite(value);
}
一門語言最糟糕的特性不是那些一看就知道很危險或者沒有價值的特性神妹,那些特性很容易被避免颓哮。最糟糕的特性就像帶刺的玫瑰,它們是有用的鸵荠,但也是危險的冕茅。
用圓括號把JSON文本括起來是一種避免JavaScript語法歧義的變通方案。
var myData = eval(‘(’+ myJSONText +’)’)
以下摘自《了不起的node.js》