javascript知識點彙總
阿新 • • 發佈:2018-11-15
概述:
ECMA-262
JavaScript 是一種流行的指令碼語言
JavaScript 是一種輕量級的程式語言。
用法
HTML 中的指令碼必須位於 <script> 與 </script> 標籤之間。
指令碼可被放置在 HTML 頁面的 <body> 和 <head> 部分中。
示例
<script> alert("我的第一個 JavaScript"); </script> <script src="myScript.js"></script>
操作DOM
document.getElementById("demo").innerHTML = "我把你的值改了。";
字面量
數字(Number)字面量 3.14 1001 123e5 字串(String)字面量 "John Doe" 'John Doe' 陣列(Array)字面量 [40, 100, 1, 5, 25, 10] 物件(Object)字面量 {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"} 函式(Function)字面量 function myFunction(a, b) { return a * b;}
關鍵字,宣告變數的時候不要用這些詞
abstract else instanceof super boolean enum int switch break export interface synchronized byte extends let this case false long throw catch final native throws char finally new transient class float null true const for package try continue function private typeof debugger goto protected var default if public void delete implements return volatile do import short while double in static with
註釋
// 我不會執行
資料型別
undefined型別
var x; // x 為 undefined
物件型別null
var car=null
數字
var x1=34.00; //使用小數點來寫
var x2=34; //不使用小數點來寫
var y=123e5; // 12300000
var z=123e-5; // 0.00123
字串
var carname="Volvo XC60";
var carname='Volvo XC60';
布林
var x=true;
var y=false;
陣列
var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";
物件
var person={
firstname : "John",
lastname : "Doe",
id : 5566
};
物件定址
name=person.lastname;
name=person["lastname"];
作用域
區域性作用域
// 此處不能呼叫 carName 變數
function myFunction() {
var carName = "Volvo";
// 函式內可呼叫 carName 變數
}
全域性變數
var carName = " Volvo";
// 此處可呼叫 carName 變數
function myFunction() {
// 函式內可呼叫 carName 變數
}
如果變數在函式內沒有宣告(沒有使用 var 關鍵字),該變數為全域性變數。
// 此處可呼叫 carName 變數
function myFunction() {
carName = "Volvo";
// 此處可呼叫 carName 變數
}
變數的生命週期
JavaScript 變數生命週期在它宣告時初始化。
區域性變數在函式執行完畢後銷燬。
全域性變數在頁面關閉後銷燬。
事件
HTML 事件可以是瀏覽器行為,也可以是使用者行為。
onchange
onclick
onmouseover
onmouseout
onkeydown
onload
undefined和null
null 和 undefined 的值相等,但型別不等:
null是物件型別,undefined就是undefined型別
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
閉包
閉包是可訪問上一層函式作用域裡變數的函式,即便上一層函式已經關閉。閉包使物件擁有私有屬性和方法稱為可能。
var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
add();
add();
add();
// 計數器為 3
正則表示式
var patt = /runoob/i
正則表示式是由一個字元序列形成的搜尋模式。
正則表示式的使用
String.search() 方法
String.replace() 方法
RegExp.test() 方法
RegExp.exec() 返回匹配到的元素
正則表示式符號含義
i 不區分大小寫
g 全域性
m 執行多行匹配(不常用)
\d 查數字
\D 非數字
\w 查英文字母加數字加下劃線
\W 非單詞字元,等於這個[^A-Za-z0-9_]
\s 查詢空白\f換頁符 \n換行符 \r回車符 \t製表符 \v垂直製表符(這個不常用)
\S 非空白字元
\b 以什麼結尾
\B 不以什麼結尾
\uxxxx 中文
^ 開始位置
$ 結束位置
+ 至少一個
* 0個也可以,當執行exec方法時很貪婪,有多少取多少
? 0個也可以,當執行exec方法時只取一個
{n} 要出現多少次
{n,} 至少出現多少次
{n,m} 至少n次,最多m次
x|y 或者,一般跟小括號一起使用
自動型別轉換
5 + null // 返回 5 null 轉換為 0
"5" + null // 返回"5null" null 轉換為 "null"
"5" + 1 // 返回 "51" 1 轉換為 "1"
"5" - 1 // 返回 4 "5" 轉換為 5