首頁  >  文章  >  web前端  >  JavaScript學習之路

JavaScript學習之路

巴扎黑
巴扎黑原創
2017-07-17 14:57:121154瀏覽

1.浮點數在運算過程中會產生誤差,因為電腦無法精確表示無限循環小數。
要比較兩個浮點數是否相等,只能計算它們之差的絕對值,看是否小於某個閾值(某個可接受的範圍):
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

2.null和undefined
null表示一個「空」的值,它和0以及空字串''不同,0是一個數值,''表示長度為0的字串,而null表示“空”。
在JavaScript中,還有一個和null類似的undefined,它表示「未定義」。 JavaScript的設計者希望用null表示一個空的值,而undefined表示值未定義。
事實證明,這並沒有什麼卵用,區分兩者的意義不大。大多數情況下,我們都應該用null。 undefined僅在判斷函數參數是否傳遞的情況下有用。

3.strict模式
JavaScript在設計之初,為了方便初學者學習,並不會強制要求用var申明變數。
這個設計錯誤帶來了嚴重的後果:如果一個變數沒有通過var申明就被使用,那麼該變數就自動被申明為全域變數:
i = 10; // i現在是全域變數
在同一個頁面的不同的JavaScript檔案中,如果都不用var申明,恰好都使用了變數i,將造成變數i互相影響,產生難以調試的錯誤結果。
使用var申明的變數則不是全域變量,它的範圍被限制在該變數被申明的函數體內,同名變數在不同的函數體內互不衝突。
為了修補JavaScript這一嚴重設計缺陷,ECMA在後續規範中推出了strict模式,
在strict模式下運行的JavaScript程式碼,強制通過var申明變量,未使用var申明變量就使用的,將導致運行錯誤。
啟用strict模式的方法是在JavaScript程式碼的第一行寫入:
'use strict';
這是一個字串,不支援strict模式的瀏覽器會把它當作一個字串語句執行,支援strict模式的瀏覽器將開啟strict模式運行JavaScript。

來測試你的瀏覽器是否能支援strict模式:
'use strict';
// 如果瀏覽器支援strict模式,
// 下面的程式碼會報ReferenceError錯誤:
abc = 'Hello, world';
alert(abc);

4.多行字串--反引號
由於多行字串用\n寫起來比較費事,所以最新的ES6標準新增了一種多行字串的表示方法,用反引號` ... `(esc下方的鍵) 表示:
`這是一個
多行
字串`;

5.模板字串--${變數名稱}
ES6新增了一種模板字串,表示方法和上面的多行字串一樣,但是它會自動替換字串中的變數:
var name = '小明';
var age = 20;
var message = `你好, ${name}, 你今年${age}歲了!`;
alert(message);

6.JavaScript把null、undefined、0、NaN和空字串''視為false,其他值一概視為true.

#7.swtich為javascript關鍵字,不可作為函數名使用

以上是JavaScript學習之路的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn