一.操作數組
1.改
2.增
- arr.push(新增的內容):將一個或多個元素添加到數組的結尾
- arr.unshift(新增的內容):方法將一個或多個元素添加到數組的開頭,并返回該數組的長度
3.刪除
- arr.pop():方法從數組中刪除最后一個元素,不帶參數,并返回元素的值
- arr.shift():方法從數組中刪除第一個元素,并返回元素的值
- arr.splice(start,deleteCount):start--起始位置,deleteCount--刪除元素的個數(不寫的話默認全部刪除)
?二.函數
1.函數的使用
先聲明后調用
a.聲明語法
function 函數名(){函數體
}
b.命名規范
- 和變量名基本一致
- 盡量小駝峰
- 前綴應該為動詞
- 常用的動詞約定
動詞 | 含義 |
can | 判斷是否可執行某個動作 |
has | 判斷是否含義某個值 |
is | 判斷是否為某個值 |
get | 獲取某個值 |
set | 設置某個值 |
load | 加載某些數據 |
c.調用語法
函數不調用自己不執行
函數名()
d.函數傳參
(1)聲明語法
function 函數名(參數列表){函數體
}
//如
function getSum(num1,num2){document.write(num1+num2)
}
- 形參:聲明函數寫在函數右括號里的
- 實參:調用函數時寫在函數名的右括號里的
- 形參理解為在函數中聲明的變量,實參理解為給這個變量賦值
- 開發中保持形參和實參的個數一致
(2)函數返回值
//當函數需要返回數據出去時,用return關鍵字
return 數據
- ?有些函數有返回值,有些沒有返回值
- return后面的數據不能換行寫
- 沒有值,默認返回的是undefined
- 返回多個數據時可以使用數組的形式返回
(3)函數注意點
- 函數名相同時,就近原則,后面的函數會覆蓋前面的函數?
- 在JS中形參和實參的個數可以不一致(形參過多--自動填上undefined;實參過多--多余的實參被忽略,函數內部有一個arguments,里面裝著所有的實參)
- 一旦碰到return就不會執行了,所以結束用return
2.匿名函數?
函數可以分為:具名函數+匿名函數
a.沒有名字的函數,無法直接使用
b.使用方式
(1)函數表達式
let fn=function(){
//函數體
}
fn()//調用函數
- 具名函數可以在函數聲明調用 (調用可以寫到任意位置)
- 函數表達式要先聲明
(2)立即執行函數
//方式1--將匿名函數整個直接使用小括號包起來,然后直接小括號調用
(function (){console.log(11)})();//方式2--調用之后再用一個小括號全部括起來
(function(){console.log(11)}());//不需要調用立即執行
- ?避免全局變量之間的污染
- 不需要額外調用
- 多個立即執行函數之間要用分號隔開?
三.作用域?
1.所用到的名字是有可用性的代碼范圍.簡稱作用域
2.組成
a.全局作用域:,整個script標簽包含的是全局作用域
b.局部作用域:函數作用域,跳出函數后不能使用
c.全局變量:函數外的let的變量
d.局部變量:函數內的let的變量
3.變量的特殊情況
- 函數沒有聲明,直接賦值,就當做全局變量(強烈不允許)
- 函數內部的形參可以看作函數的局部變量
4.變量的訪問原則
- 只要是代碼,就至少有一個作用域
- 寫在函數內部的局部作用域
- 如果函數中還有函數,那么在這個作用域中就可以誕生一個作用域
- 在能夠訪問到的情況下,先局部,局部沒有找全局
?四.邏輯運算符里的短路
1.短路
只存在于&&和||中,當滿足一定條件會讓右邊代碼不執行
符號 | 短路條件 |
&& | 左邊為false就短路 |
|| | 左邊為true就短路 |
0、''、undefined、null、false、NaN轉換為布爾值之后都是false,其余為true