js中方法也是一個對象!方法名就是指向方法對象的變量名!
arr.sort(compare);注意!將方法作爲對象傳遞時,僅使用方法名,後不加圓括號。
棧和隊列:
什麼是棧?後進的先出!(LIFO)
棧其實就是數組,只不過用一對兒方法模擬了棧的操作!
結尾入棧出棧:元素下標始終不變,最後一個元素始終最新
入棧:arr.push(值1,...),
出棧:var last=arr.pop();
開頭入棧出棧:所有元素下標隨入棧出棧操作而變化,第一個元素[0],始終最新
入棧:arr.unshift(值1,....)
出棧:var first=arr.shift()
隊列:FIFO
入隊列:arr.push(值1,...)
出隊列:var first=arr.shift()原始類型:數據保存在變量本地
引用類型:數據不保存在變量本地!保存在“堆”中。由地址指向實際數據
引用類型特點:可以保存多個數據,而且數據個數隨時可變
包裝類型:專門封裝原始類型的數據,並提供數據常用操作的內置類型。
讓原始類型的數據也可以像引用類型一樣,擁有方法和屬性。
string number booleanvar num=5.678;//原始類型
//num=new Number(num);//包裝類型
console.log(num.toFixed(2));
//num=null;//釋放包裝類型對象!創建字符串:
1. var str="...";//原始類型
2. var str=String("...");//原始類型,類型轉換
3. var strObj=new String("...");//包裝類型對象
轉義字符: 代替字符串中的非打印字符:\n \t
如果字符串內容中包含和語法衝突的特殊字符,可用\轉爲普通字符*字符串內容一旦創建,不可改變*
如果修改,都要創建新字符串,保存新結果,替換舊字符串
所有字符串API,都需要變量接收返回值!str.length:返回str字符串中的字符個數
大小寫轉換:都轉小寫:str=str.toLowerCase()
都轉大寫:str=str.toUpperCase()
字符串類型底層其實都是用字符數組實現的。
獲取指定位置字符:
var char=str.charAt(index);
在index位置的char
獲取指定位置字符的unicode編號:
var num=str.charCodeAt(index);
字符串三大操作:
1.查找關鍵字 2.替換關鍵字 3.獲取子字符串
查找關鍵字:
var index=str.indexOf("關鍵字");
返回關鍵字所在位置!*如果沒找到,返回-1!*
indexOf:
懶:只找第一個關鍵字位置!
蠢:默認只能從位置0開始!
var index=str.indexOf("關鍵字",from);
from:開始查找的位置,從from開始向後查找
從最後一個字符,向前找:只要關鍵字離結尾近,就用last
var index=str.lastIndexOf("關鍵字",from);
from:開始查找的位置,從from開始向前查找
*返回的index完全相同!字符在數組中的下標是固定的!*
獲取子字符串:
var subStr=str.slice(start,end+1)
str.substring(start,end+1) 用法同slice!
唯一差別:不支持負值作爲參數!
str.substr(start,*count*)
以上三個方法省略第二個參數,默認都是取到結尾!
按規律分割字符串:var subs=str.split("分隔符"[,count])String類型中,提供了專門支持模式匹配的API!
按模式*替換*關鍵字:str=str.replace(reg,"新值");
默認replace僅替換第一個關鍵字!
要想全局替換,要在模式中定義“g”
獲得*所有*關鍵字的*內容*:
var kwords=str.match(reg);
只能取得關鍵字的內容,無法確定每個關鍵字的位置!
kwords.length:
找到的關鍵字個數!
*如果未找到,返回null!*
只要有可能返回null!都要先判斷!=null,再處理!var index=str.search(reg)和indexOf完全相同!
indexOf不支持模式查找!search其實是indexOf的模式查找版
JavaScript知識點總結-4
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.