js中級第四天
函式:
函式在呼叫的時候,會形成一個私有作用域,內部的變數不會被外面訪問,這種保護機制叫閉包。這就意味著函式呼叫完畢,這個函式形成的棧記憶體會被銷燬。
但有時候我們不希望他被銷燬
函式歸屬誰跟它在哪呼叫沒有關係,跟在那定義有關。
Fn()呼叫完畢後得到的是一個匿名函式,但是這個函式在fn這個作用域下定義的,所以這個匿名函式內部的變數在fn作用域下查詢。這種寫法可以是函式的變數不被銷燬。
基本object的子類有
Function Array Number Boolean String Date Math RegExp
函式 陣列 數字 布林 字串 日期 算數 正則 都是類。本質都是函式。
string類
定義字串的方法
var st=new String (“hello world”)
簡寫
var st=“hello world”
1.字串的加號運算 + 僅僅就是拼接 這種方法 叫字串拼接。
2.字串prototypt上的方法
(1)charAt()返回在指定未知的字元 var s=st.charAt(2)
(2)concat()連線兩個或多個字串,並返回新的 vars=st.concat(sd,“hello world”)
(3)indexOf()返回某個字串在字串中首次出現的位置,沒有返回-1。
(4)lastIndexOf()功能和indexOf一樣 不過是從後往前
(5)match()
(6)Search()
(7)Replace()
(8)Slice()擷取字串中一部分
前閉後開 包含2但不包含7
(9)Split()將字串按某種形式分割成陣列
(10)substr()也是擷取和slice有點區別
(11)substring()跟slice一樣
(12)toLowerCase()將字串中的字元都變成小寫
(13)toUpperCase()將字串中的字元都變成大寫
(14)trim()去掉字串兩端的空白
補充
每一個函式都天然自帶一個return。如果寫return返回什麼就是什麼,如果不寫就是undefined
類 它的本質也是函式,裡面也有return但預設是object,如果強制return一個值,不會造成影響,如果return是一個物件,就會造成影響。
Array 陣列這個類
陣列的定義
var arr=new Array(“12”,“zhangsan”)
簡寫
var arr=[12,"zhangsan"]
基本方法
1.Push()在陣列的結尾出鐵甲一個新元素。返回只是陣列長度
2.unshift()在開始處填加一個新元素。返回只是陣列長度
3.pop()刪除陣列中的最後一個元素。返回的是刪除的那個元素
4.shift()刪除陣列中的第一個元素。返回的是刪除的那個元素
5.slice()擷取陣列中的一部分,並返回新的陣列。對原來的陣列沒有影響
6.splice()在陣列中新增或刪除元素
從第三個開始向後刪除一個 新增三個新的
7.sort()給陣列中的元素排序
8.reverse()反轉陣列中元素的順序
9.toString()將陣列轉換成字串格式的陣列,並返回結果
10.concat()合併多個數組,並返回新的值
11.indexof()檢索陣列中的元素,並返回他所有的位置,沒有就是-1。
陣列經典面試題
陣列去重