標籤:可靠 除了 fun 字串 oat 代碼 位長 單個字元 不同的
- 絕對值小於等於2的53次方的整數,即-253到253,都可以精確表示,也就是說15位的十進位數都可以精確處理;
- JavaScript 能夠表示的數值範圍為21024到2-1023(開區間),超出這個範圍的數無法表示;
NaN不是獨立的資料類型,而是一個特殊數值,它的資料類型依然屬於Number;
NaN不等於任何值,包括它本身;
- 單純的數學運算幾乎沒有可能拋出錯誤;
Infinity與NaN比較,總是返回false ;
- 0乘以
Infinity,返回NaN;
- 0除以
Infinity ,返回0 ;
Infinity除以0,返回Infinity;
parseFloat方法會自動過濾字串前置的空格;
parseFloat 會將Null 字元串轉為NaN;
- 令
isNaN為true的值,有可能不是NaN,而是一個字串;
- 對於對象和數組,
isNaN返回true;
- 但是,對於空數組和只有一個數值成員的數組,
isNaN返回false。
判斷NaN更可靠的方法是,利用NaN為唯一不等於自身的值的這個特點,進行判斷:
function myIsNaN(value) { return value !== value;}
- 除了
Infinity 、-Infinity、NaN和undefined這幾個值會返回false ,isFinite 方法對於其他的數值都會返回true ;
- 字串內部的單個字元無法改變和增刪,這些操作會默默地失敗;
- 字串的length屬性無法改變,但是不會報錯;
- JavaScript 的單位字元長度固定為16位長度,即2個位元組。對於碼點在U+10000到U+10FFFF之間的字元,JavaScript 總是認為它們是兩個字元(length屬性為2)。所以處理的時候,必須把這一點考慮在內,也就是說,JavaScript 返回的字串長度可能是不正確的;
- 屬性可以動態建立,不必在對象聲明時就指定;
- 如果不同的變數名指向同一個對象,那麼它們都是這個對象的引用,也就是說指向同一個記憶體位址。修改其中一個變數,會影響到其他所有變數;
JavaScript 規定,如果行首是大括弧,一律解釋為語句(即代碼塊)。如果要解釋為運算式(即對象),必須在大括弧前加上圓括弧:
eval(‘{foo: 123}’) // 123eval(‘({foo: 123})’) // {foo: 123}
請注意,如果使用方括弧運算子,鍵名必須放在引號裡面,否則會被當作變數處理:
var foo = ‘bar’;var obj = { foo: 1, bar: 2};obj.foo // 1obj[foo] // 2
- 注意,數值鍵名不能使用點運算子(因為會被當成小數點),只能使用方括弧運算子:
var obj = { 123: ‘hello world’};obj.123 // 報錯obj[123] // “hello world”
- 查看一個對象本身的所有屬性,可以使用Object.keys方法:
var obj = { key1: 1, key2: 2};Object.keys(obj);// [‘key1’, ‘key2’]
- delete命令只能刪除對象本身的屬性,無法刪除繼承的屬性;
- in運算子的一個問題是,它不能識別哪些屬性是對象自身的,哪些屬性是繼承的:
var obj = { p: 1 };‘p’ in obj // true‘toString’ in obj // true
javascript基礎學習心得01