1.運(yùn)算符
- 算數(shù)運(yùn)算符:+ - * / (加減乘除)%(取余)算數(shù)運(yùn)算符先乘除后加減有小括號先算小括號內(nèi)的。盡量不要用浮點數(shù)
- 表達(dá)式和返回值:右邊的表達(dá)式計算完畢返回給左邊
- 遞增遞減運(yùn)算符:++(遞增) --(遞減)前置遞增減,后置遞增減(后置自增減是先返回原值,變量在自加減)
- 比較運(yùn)算符:> < >= <= == != === !== (全等需要值與類型都相等)
- 邏輯運(yùn)算符:&& (兩側(cè)都為真才為真)|| (兩側(cè)都為假才為假)?。ㄈ》矗?;邏輯短路運(yùn)算符(返回表達(dá)式)
- 賦值運(yùn)算符:= += -= *= /= %=
- 運(yùn)算符的優(yōu)先級:一元運(yùn)算符 > 算數(shù)運(yùn)算符 > 關(guān)系運(yùn)算符 > 相等運(yùn)算符 > 邏輯運(yùn)算符 > 賦值運(yùn)算符
2.流程控制
- 順序結(jié)構(gòu):順序執(zhí)行
- 分支結(jié)構(gòu):根據(jù)條件執(zhí)行不同的代碼(if、switch)
- 循環(huán)結(jié)構(gòu):根據(jù)循環(huán)執(zhí)行代碼(for、while、do while、continue(跳過本次循環(huán)) break(終止整個循環(huán)))
for (i = 1; i <= 5; i++) {
//循環(huán)體
}
while (true) {
//循環(huán)體
}
do {
//循環(huán)體
} while (true)
3.數(shù)組
var arr = ['數(shù)組一', '數(shù)組二', '數(shù)組三'];
alert(arr[0]);
for (var i = 0; i < arr.length; i++) {
alert(arr[i]);
}
arr[4];
4.函數(shù)
- function聲明函數(shù)的關(guān)鍵字,函數(shù)不調(diào)用不會自動執(zhí)行。(先聲明函數(shù),在調(diào)用函數(shù))
- 函數(shù)的參數(shù):在函數(shù)名中通過設(shè)置不同的參數(shù)執(zhí)行不同的代碼、返回不同的結(jié)果
- 函數(shù)的返回值:return返回結(jié)果(終止本次函數(shù)執(zhí)行,)
function getSum(start, end) {
var sum;
for (i = start; i <= end; i++) {
sum += i;
}
return sum;
}
var sums = getSum(1,100);
5.作用域
- JavaScript作用域
全局作用域:整個script標(biāo)簽或者是一個js文件
局部作用域:在函數(shù)內(nèi)部的就是局部作用域(函數(shù)作用域) - 變量作用域
全局變量:在全局作用域下的變量(在函數(shù)內(nèi)部,沒有聲明直接賦值的變量也是全局變量)
局部變量:在局部作用域下的變量 - 作用域鏈:內(nèi)部函數(shù)訪問外部函數(shù)變量,采用鏈?zhǔn)讲檎?br>
提高程序的可靠性,減少命名沖突
6.預(yù)解析
- 變量預(yù)解析:把所有的變量聲明提升到當(dāng)前作用域最前面,不提升賦值操作
- 函數(shù)預(yù)解析:把所有的函數(shù)聲明提升到當(dāng)前作用域最前面,不調(diào)用函數(shù)
7.對象
- 創(chuàng)建對象的三種方法
字面量:
var sums = getSum(1, 100);
var obj = {
name: '張',
age: 18,
message: function () {
alert('嗨')
}
}
console.log(obj.name);//調(diào)用屬性
console.log(obj['age']);//調(diào)用屬性
obj.message();//調(diào)用方法
new:
var obj = new Object();
obj.name = '張';
obj.age = '18';
obj.message = function(){
alert('嗨');
}
構(gòu)造函數(shù):
function Obj(name, age){
this.name = name;
this.age = age;
this.message = function(msg){
alert(msg);
};
}
var z = new Obj('張', '18');
z.message('嗨');