while vs. do while vs. for
while:不確定循環次數,或者循環變量的變化規律不固定
do while:第一次條件即使不滿足,也要執行一次
for:循環次數確定,循環變量變化規律固定程序=數據結構+算法。良好的數據結構,可以極大提高程序的執行效率!
對象:凡是存儲在堆中的,都是對象!
使用引用類型的對象:
使用變量,等效於使用對象的地址;使用對象地址,等效於使用對象本身
API:已經實現的方法!可以直接調用!
null vs undefined:
null專用於主動釋放對象!
undefined:專用於自動初始化任何未賦值的變量
垃圾回收:js引擎自動銷燬不再被引用的對象!
垃圾回收程序:隨js程序運行而後臺同時運行
只要對象還有變量引用,就不回收。數組(array):
存儲:連續存儲多個數據的存儲空間
使用:相當於多個變量的集合
如何使用:創建,初始化,訪問
創建:數組都是用[]創建出來的。
2個不限制:1. 不限制元素個數!2. 不限制元素數據類型
*數組是引用類型的對象*
var arr=new Array(num);
new:要在堆中開闢空間!
Array:ECMAScript標準中的內置類型
new Array:在堆中創建一個數組類型的存儲區域
(num):初始創建num個元素
數組中,undefined輸出時,變爲一個空字符
null:一個變量沒有指向任何對象
何時使用null:主動釋放對象!主動釋放的對象不能被找回
Array API:
arr.length屬性:數組中的元素個數
訪問任意數組的最後一個元素:arr[arr.length-1]
js中數組可根據程序需要,“自動擴容”,保證程序正常執行
如果length屬性值>舊值,會擴容;反之,縮容(截斷)
棧中的變量 生命週期:和堆完全不同!
結論:局部變量的生命週期和所在方法的作用域環境棧有關
作用域創建,局部變量一同創建
作用域結束,局部變量一同消失
x.toString()方法:
任何對象都有toString方法。
默認用,分隔每個元素 將任何對象轉爲字符串
x.valueOf()方法:同toString()
var str=arr.join("分隔符"):將數組轉爲字符串。可自定義分隔符!
用法:將字符拼接爲單詞或句子 chars.join("")
var newArr=arr.concat(元素值,[數組],...):將參數拆散成單個元素,追加到數組中。
*不會修改原數組,只能返回新數組對象*
var subArr=arr.slice(start,end+1):
截取數組下標從start開始,到end位置的元素,生成新的子數組對象。
*含頭不含尾*
arr.splice:刪除!插入!替換!
刪除元素:arr.splice(start,count);
替換元素:arr.splice(start,count,值1,值2,...)
插入元素:arr.splice(start,0,值1,值2,...)
返回每次刪除元素組成的新數組
splice:*直接修改原數組*!返回被刪除的元素
arr.reverse():顛倒所有數組元素
arr.sort():默認升序排列。默認都轉爲字符串排序!數組遍歷:對數組中每個元素執行相同的操作
for(var i=0;i<arr.length;i++){
arr[i]-->當前元素
}
二維數組:數組的元素又是另一個數組對象!
關聯數組:數組下標可以自定義名稱!Key/value對兒
for in:專門遍歷關聯數組用的!
for (var key in arr){
//從第一個元素開始,將元素的key賦值給臨時變量key
arr[key]-->當前正在遍歷的元素的值(value)
}
關聯數組直接量定義方式:
強調:大括號 {"key1":"value1","key2":"value2",...}判斷字符的種類:unicode範圍:
48-57:0-9 數字字符
65-90:A-Z 大寫字母
97-122:a-z 小寫字母
19968-40869:漢字什麼是模式匹配:可以設置查找或替換的規則!
何時使用模式匹配:要查找的關鍵字可能發生有規律的變化。
JavaScript 知識點總結-3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.