Js-值(null,undefined)-4

1:原始值與對象最大的區別是如何比較的,每個對象有唯一的標識符并且只和自己相等。相反,所有的原始值只要編碼相同,就認為是相等。

2:如果函數中沒有任何顯示的返回值得話,那么會隱式的返回undefined.

3:undefined更多的時候表示的是不存在的元素,比如未初始的變化量,缺失的參數,訪問一個不存在的屬性。函數中沒有任何顯示的返回值。

4:檢測undefined.if(x===undefined) {}還可以用typeof 不過一般推薦是第一個方法。

5:null:他的意思是沒有對象。常用來表示空值。undefiend表示刪除一個對象屬性或是數組元素。null表示將屬性或者元素設置為空。

6:null:由于Js采用了java中的將變量分為原始值和對象的處理方式。同時也使用java中表示“非對象”的值null.遵循java的例子,當對null強制轉換的時候,會出現0.

8:為了彌補上面null的缺點引入了undefiend,那就是這個值沒有指向性,這個值強制轉換不回變成0。

7:防止改變undefiend:if(x===void){}

9:null出現:當正則匹配不到,或者是對象間沒有原型關系的時候。

10: typeof能檢測原始值和對象,并檢測出原始值得類型。

11:instanceof 用來檢測一個對象是否是特定構造函數的一個實例。

12:typeof null=object ? null instanceof ?object().false.

13:NaN 他的類型居然是number 出現的原因:number()中不能被解析的數字。失敗的操作Math.log(-1) 其中一個數是NaN的計算。

14:檢查一個值是否是NaN ?function(value) {retrun value!==value;還有個原生函數:isNaN();

為什么IsNaN()不能檢測非數字。。。他的原理是這樣的:先把這些值轉為數字,然后轉換可能變成NaN,所以返回錯誤的結果。最好就是檢測值的類型,并且使用IsNaN()函數。

15:infinity:是一個錯誤值,一是表示一個大到無法表示的數,一是表示一個數除了0.infinity比任何數字都大。-infinity比任何值都小。

16:全局函數isFinite();檢測一個數字是不是實際的值。既不是NAN也不是infinity.

17:由于js中所有的數字和符號是分開存儲的,所以每一個非負數都由一個負值,包括0.有符號的0可以知道數字是從哪方面接近0的。

18:js數字是64位的,也叫做雙精度。通常是按照十進制引入的,但是在內部時他們其實是二進制的浮點數表示的。在處理舍入錯誤的時候,通常推薦的是不直接比較非整數,取而代之,將邊界錯誤的上界考慮進來。這個上界叫機器精度。把他變大來比較細微的差別。

19:整型數字的范圍問題:安全整型:+-Math.pow(2,53) ?數組索引:【0,Math.pow(2,32)-1】通常情況下,和不超過53位的整型數字打交道是沒問題的,一旦遇到這些超過的,他們必須要以字符串的形式存儲起來,一旦要對他們進行運算,要特殊的庫來實現。

20:安全的整型:js只能安全的表示上述所說的范圍內的數,一旦超過這個范圍內的整型。,那么久和一般的實數集可能不會發生一一對應的關系了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 什么是 JavaScript 語言? JavaScript 是一種輕量級的腳本語言。所謂“腳本語言”(script...
    oWSQo閱讀 1,826評論 0 1
  • 本章內容 語法 數據類型 流控制語句 理解函數 3.1 語法 3.1.1 區分大小寫 區分大小寫 3.1.2 標識...
    悶油瓶小張閱讀 737評論 0 0
  • 有人說過,很多彎路到最后都成了直路,所有的坑到最后也都成了坦途;所謂的直路和坦途并不是擺在眼前的,都是不斷的的...
    老衲法號一眉道人閱讀 1,378評論 0 4
  • 我跟一個女生坐同桌坐了兩年,我們從普通同學變成閨蜜也用了兩年。然而兩個朋友坐同桌是中國式教育所不允許的,而...
    羽汐閱讀 176評論 0 2
  • 文|域往 提起《紅樓夢》,不得不提薛寶釵和史湘云兩人。前者為賈寶玉最終的妻子,對寶玉的愛也是從一而終;后者跟寶玉的...
    域往閱讀 332評論 0 8