JavaScript學習筆記-1
阿新 • • 發佈:2021-07-01
1. JS編寫位置
(1)在標籤的屬性中(屬於結構與行為耦合,不推薦使用)
<button onclick=" alert('在這裡'); ">點我看看</button> <a href=" javascript: alert('在這裡'); ">點我看看</a>
(2)在script標籤中 (在<head>或<body>中)
<script> alert("我在這裡"); </script>
(3)外部js檔案
// html檔案中引入js檔案 <script type="text/javascript"src="./test.js"></script>
2. 格式
- 註釋:/* */
- JS嚴格區分大小寫
- JS以分號結尾
- JS會忽略多個空格和換行
3. cookie 和 session
- cookie 資料存放在客戶瀏覽器上,session資料放在伺服器上
- cookie不安全,儲存的資料不能超過4k,很多瀏覽器都限制一個站點最多儲存20個cookie
- session在一定時間內儲存在伺服器上。訪問增多,會比較佔用伺服器的效能
4. 字面量和變數
- 字面量:不可改變的值,如1,2,3。可以直接使用,但一般不直接用
- 變數:可用來儲存字面量
- 宣告變數用 var ,未賦值顯示undefined。如 var a = 123;
5. 識別符號
- 可以由我們自主命名,例:變數名、函式名、屬性名
- 命名規則
- 可以含有字母、數字、“_” 、“$”
- 不能以數字開頭
- 不能是ES中的關鍵字或保留字
- 一般採用駝峰命名法
6. 資料型別
(1)String:用單引號或者雙引號均可,但不可以巢狀使用,如 var a = "today";
(2)Number:超過最大/最小值時返回 Infinity 或 NaN(Not a Number)。若 a =Infinity 或NaN ,a均為Number型別。整數運算基本可以保證精確,浮點數可能不精確
(3)Boolean
(4)Null:var a = null; 定義空物件,typeof返回Object
(5)undefined:var a; 或 var a = undefined; 為未賦值返回undefined
(6)Object
PS:typeof 返回檢查型別( console.log(typeof(a)) )
7. 強制轉換
- string轉換
- String(a); // Number 和Boolean 使用String() 相當於呼叫toString方法,而 null 和 undefined 是直接轉換成字串“null”和“undefined”
- a.toString(); // null 和 undefined 沒有toString方法,會報錯
- number轉換
- Number(a);
- 字串 => 數字①"123" => 123 ②非數字(如 "123px")=> NaN ③空串或空格串 => 0
- Null => 數字 為 0
- Undefined => 數字 為 NaN
- parseInt();
- 將字串轉為整數,"123.3px" =>123,"b12p" => NaN。parseInt( a, 8 ) 中第二位8表示八進位制
- parseFloat();
- 將字串轉為浮點數,"123.3px" => 123.3
- Number(a);
- Boolean轉換
- 數字除了 0 和 NaN,其餘均為true( 包括Infinity也為true )
- 字串除了空格其餘均為true
- null 和 undefined 均為false
- 物件型別也為true
- PS:parseInt 和parseFloat 對非String型別使用會先轉為String型別再進行轉化,即 null => NaN
8. 其他進位制
- 十六進位制:0x開頭
- 八進位制:0開頭
- 二進位制:0b開頭(非所有瀏覽器都支援)
9. 算術運算子
- +(加)、-(減)、*(乘)、/(除)、%(取餘)
- +:
- 非數字轉為數字,false+true = 0+1 = 1
- 任何值和字串相加,均轉為字串,再做拼串處理
- 任意的資料型別 +“”,均轉為String型別
- 除了加法轉字串,其餘運算子字串均轉Number
- 可以通過一個值 -0,*1,%1,/1轉換為Number型別,原理同Number(),使用更加方便
10. 一元運算子
- +(正)、-(負)
- 正號不會有影響、負號取反
- 對於非Number值,會轉成Number再算
- 可以對其他資料型別用+轉為Number
11. 自增、自減
- ++a
- a++
- --a
- a--
- ++ 或 -- 寫在變數前面是先自增後運算,寫在後面是先運算後自增
- 例:var a = 20; console.log( a++ ); console.log( a ); 第一個輸出a的值為20,第二個為21
- 例:var a = 20; a = a++ + ++a + a; a的值為64
12. 與(&&)或(||)非(!)
- 運算時先轉為布林值,再運算,並返回原值
- &&
- true + true = true,返回後面的值,如 a = 5 && 6; a=6
- false + false = false,返回前面的值,如 a = NaN && 0; a=NaN;
- true + 其他,必然返回第二個值
- false + 其他,必然返回第一個值
- ||
- 如果第一個值為true,必然返回第一個值
- 如果第一個值為false,必然返回第二個值
13. 關係運算符
- > < == >= <= != === !==
- 若兩邊均為字串,一個字元一個字元比較
- PS:undefined == null => true,因為 undefined 衍生自 null
- 可以通過 isNaN() 來判斷是否為NaN,NaN不和任何值相等,包括他本身
14. 語句塊
- 可以用 { } 來為語句分組,稱為程式碼塊。要麼一起執行,要麼一起不執行
- 程式碼塊只有分組作用,不會影響內外情況