JS续
JS中的事件
[JS中的事件分類]
* 1、鼠標(biāo)事件:
* click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup
*
* 2、鍵盤事件:
* keydown: 鍵盤按下去觸發(fā)
* keypress: 鍵盤按下并松開的瞬間觸發(fā)
* keyup: 鍵盤抬起時觸發(fā)
*
* [注意事項(xiàng):(了解)]
* ① 執(zhí)行順序: keydown——keypress——keyup
* ② 長按時,會循環(huán)不斷的執(zhí)行keydown-keypress
* ③ 有keydown事件,不一定有keyup事件(事件觸發(fā)過程中,鼠標(biāo)移走,可能就沒有keyup)
* ④ keypress只能捕獲字母、數(shù)字、符號鍵,不能捕獲功能鍵;keydown/keyup基本可以捕獲所有功能鍵(特殊除外)
* ⑤ keypress區(qū)分大小寫,keydown和keyup不區(qū)分;
* ⑥ keydown/keyup區(qū)分主鍵盤和小鍵盤,keypres不區(qū)分;
*
* [確定鍵盤觸發(fā)按鍵]
* ① 在觸發(fā)函數(shù)中,傳入?yún)?shù)e,代表按鍵時間;
* ② 通過e.keyCode ,確認(rèn)按鍵Ascii碼值,進(jìn)而確定按鍵;
* ③ 所有瀏覽器系統(tǒng)的寫法(一般不必要):
* var evn = e||event; //取到鍵盤事件
* var code = evn.keyCode||evn.which||evn.charCode;//取到按鍵編碼
?
JS中的事件分類
* 1、鼠標(biāo)事件:
* click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup
* 2、鍵盤事件
* keydown:鍵盤按下時觸發(fā)
* keyup:鍵盤抬起時觸發(fā)
* keypress:鍵盤按下并抬起時觸發(fā)
* [注意事項(xiàng)]
* ①執(zhí)行順序:keydown-keypress-keyup
* ②長按時,會不斷執(zhí)行keydown,keypress
* ③有keydown事件不一定有keyup事件,比如事件觸發(fā)時,鼠標(biāo)移走,可能就沒有keyup;
* ④keypress事件只能捕獲字母、數(shù)字、符號鍵,不能捕獲功能鍵,可以捕獲大小寫;keydown/keyup基本可以捕獲所有功能鍵(特殊除外),可以區(qū)分主鍵盤和小鍵盤
* 不區(qū)分大小寫
*
* 【確定鍵盤觸發(fā)按鍵】
* ①在觸發(fā)函數(shù)中傳入函數(shù)e,代表按鍵事件:
* ②通過e.keyCode確認(rèn)按鍵Ascii碼值,進(jìn)而確定按鍵;
* ③兼容所有瀏覽器系統(tǒng)的寫法(一般不必要):
* var evn = e||event 取到鍵盤事件
var code = evn.keyCode||evn.which||evn.charCode; 取到按鍵編碼
?
JS中的內(nèi)置對象
?
JS中的數(shù)組
* 1、數(shù)組的概念:在內(nèi)存中連續(xù)存儲的多個有序元素的結(jié)構(gòu)
* 元素的順序,稱為下標(biāo),通過下標(biāo)查找對應(yīng)元素
* 2、數(shù)組的聲明:
* ①通過字面量聲明:var arr1=[];
* JS中同一數(shù)組可以儲存多種數(shù)據(jù)類型(但一般同一數(shù)組只用于存放同一種數(shù)組類型)
* 例如: var arr1 = [1,"2",true,{},[]];
* ②new關(guān)鍵字聲明:var arr2 = new Array(參數(shù));
* >>>參數(shù)可以為:
* a:空,聲明一個沒有指定長度的數(shù)組
* b:數(shù)組的長度length,聲明一個指定長度的數(shù)組,但數(shù)組的長度隨時可變可追加
* 最大長度為(0~2^32-1);
* c:數(shù)組默認(rèn)的N個值,new Array(1,"2",true);相當(dāng)于[1,"2",true]
* 3、數(shù)組中元素的讀寫/增刪
* ①讀寫:通過下標(biāo)來訪問元素,例如arr[2];
* ②增刪:delete arr[n];刪除數(shù)組的第n+1個值,但數(shù)組長度不變,對應(yīng)位置的值為undefined
* arr3.push(7);數(shù)組最后增加一個值,相當(dāng)于arr3[arr3.length]=7;
* arr3.unshift(0);數(shù)組的第0位插入一個值,其余位數(shù)順延
* arr3.pop();刪除數(shù)組最后一位,與delete不同的是,pop執(zhí)行后數(shù)組長度也會減少一個,
* 相當(dāng)于arr.length-=1;
* arr3.shift(),刪除數(shù)組第0位,長度也會減一;
* 4、數(shù)組中其他常用方法
* ①join("分隔符"),將數(shù)組用指定分隔符分隔,鏈接為字符串。參數(shù)為空時,默認(rèn)用逗號分隔
* ②concat();將數(shù)組與多個數(shù)組的值連接為新的數(shù)組:
* [1,2].concat[3,4],[5,6]=[1,2,3,4,5,6];連接時中括號至多拆一層
* [1,2].concat([1,2],[3,4]])=[1,2,1,2,[3,4]];多層括號中,以二維數(shù)組形式存在
* ③push();數(shù)組最后增加一個數(shù),unshift():數(shù)組開始增加一個數(shù);返回?cái)?shù)組新的長度
* ④pop();刪除數(shù)組最后一個; shift():刪除數(shù)組第一個; 返回被刪除的數(shù)
* 注:調(diào)用上述方法,原數(shù)組均會改變。
* ⑤recerse();數(shù)組翻轉(zhuǎn),逆序排列,原數(shù)組被改變。
* ⑥slice(begin,end);【原數(shù)組不會被改變】截取數(shù)組中某一部分,成為新數(shù)組
* >>>傳遞一個參數(shù):默認(rèn)為begin index,從這個開始,截到最后一個
* >>>傳遞兩個參數(shù),截取從begin到end區(qū)間,左閉右開(包含begin,不含end)
* >>>參數(shù)可以為負(fù)數(shù),-1表示最后一個;
* ⑦sort(function);【原數(shù)組會被改變】對數(shù)組進(jìn)行排序,
* >>>不指定排序順序,按照數(shù)值的ascii碼值進(jìn)行排列;
* >>>傳入排序函數(shù):默認(rèn)兩個參數(shù)a,b,如果返回值>0,則a>b,反之返回<0
arr3.sort(function(a,b){
return a-b;//b在前,a在后,升序排列
return b-a;//a在前,b在后,降序排列
/*if(a>b){
return 1;
}else(a<b){
return -1;
}else{
return 0;
}
二維數(shù)組&稀疏數(shù)組(了解)
①稀疏數(shù)組:數(shù)組并不含有從0開始到length-1的所有索引(length值閉實(shí)際元素個數(shù)多)
②二維數(shù)組:var arr4 = [[1,2,3],[4,5,6],[7,8,9],[0,1,2]]相當(dāng)于四行三列的矩陣
取出二維數(shù)組元素:arr4[行號][列號];可使用循環(huán)遍歷
③indexof(value,index)返回value值對應(yīng)的下表位置,若未找到,返回-1
lastindexof(value,index)返回最后一個value對應(yīng)的下標(biāo)位置,若未找到,返回-1
>>>若未指定index參數(shù),默認(rèn)在數(shù)組所有元素中查找,若指定index,則從當(dāng)前index開始,向后查詢
6、引用數(shù)組類型:(數(shù)組/對象)賦值時將原變量的地址,賦給新變量 ,兩個變量修改的是同一數(shù)據(jù),所以修噶其中一個變量,另一個跟著變化
基本數(shù)據(jù)類型:賦值時,是將變量的值,賦值給新的變量,兩個變量屬于不同的內(nèi)存空間,修改其中一個,互不干擾。
?
?
boolean類型
*/
var isTrue = true;//單純變量
var isTrue1 = new Boolean(true);//一個Boolean類型的對象
console.log(isTrue1)
/*
* number類
* nember.Max_VALUE 可表示的最大數(shù)
* number.Min_VALUE 課表時的最小數(shù)
* .toString();將數(shù)值轉(zhuǎn)為字符串 相當(dāng)于num+空字符串
* .tolocaleString();將數(shù)字按照本地格式的順序轉(zhuǎn)為字符串。一般三個一組加逗號
* .tofixed(n):將數(shù)字轉(zhuǎn)為字符串,保留n位小數(shù),四舍五入
* .toPrecision(n):將數(shù)字格式化為指定長度,n=不含小數(shù)點(diǎn)的所有位數(shù)和
* .valueOf()返回number對象的基本數(shù)字值
*/
/* 重要!!!!
* 字符串String
* 1、屬性str.length返回字符串的長度
* 2、方法:
* .toLocaleLowerCase()所有字符轉(zhuǎn)為小寫
* .toUpperCase()所有字符轉(zhuǎn)為大寫
* .charAt(n)截取字符串中得第n個字符
.indexOf("查詢子串",index)查詢從index開始的,第一個子串的索引,沒找到返回-1,通數(shù)組indexOf()方法
.substr(begin,end)截取子串,只寫一個從begin到結(jié)束,寫兩個則從begin到end,左閉右開。
.rePlace(old,new);將字符串中第一個old替換為new。第一個參數(shù)可以為普通字符串,也可以是正則表達(dá)式
(普通字符串只能匹配第一個,正則可以根據(jù)具體情況區(qū)分)
.split("")將字符串通過指定分隔符分為數(shù)組,傳入""空字符串,將把單個字符傳入數(shù)組
*/
/*date類
* 1、 new Date(); 拿到當(dāng)前最新時間;
* new Date("2017,4,4,14:58:12") 設(shè)置指定時間
* 2、常用方法:
* .getFullYear(): 獲取4位年份
* .getMonth(): 獲取月份 0~11
* .getDate(): 獲取一月中的某一天 1~31
* .getDay(): 獲取一周中的某一天 0~6
* .getHours() 返回 Date 對象的小時 (0 ~ 23)
* .getMinutes() 返回 Date 對象的分鐘 (0 ~ 59)
* .getSeconds() 返回 Date 對象的秒數(shù) (0 ~ 59)
?
自定義對象
?
【自定義對象】
* 1、基本概念
* ①對象概念:對象是包含一系列無序?qū)傩院头椒ǖ募?br /> * ②對象中的數(shù)據(jù):是以鍵值對的形式存在的
* ③屬性:描述對象特征的一系列變量 【對象中的變量】
* ④方法:描述對象行為的一系列方法 【對象中的函數(shù) 】
*
*
* 2、對象的聲明:
* ①字面量聲明 var obj = {
* key1=value1
* key2=value2
* func:function(){};
* };
* 對象中的鍵,可以是任何數(shù)據(jù)類型,但一般用作普通變量名(不需要"")即可
* 對象中的值可以是任何數(shù)據(jù)類型,單字與值符串必須用""包裹
* 多組鍵值對之間用英文逗號分隔,鍵值對的鍵與值之間英文冒號分隔
*
* ④new關(guān)鍵字var lisi = new Object();
lisi.name="李四"
lisi.say = function(){
console.log("我是"+this.name)
}
lisi.say();
*
* 3、屬性和方法的讀寫
* ①.運(yùn)算符:對象內(nèi)部:this.屬性名 this.方法名()
* 對象外部:對象名.屬性名 對象名.方法名
* >>>如果key中包含特殊字符,則無法使用第①種方式,必須使用第②種
* >>>對象中,直接寫變量名,默認(rèn)調(diào)用全局變量,如果需要調(diào)用對象自身屬性,則需要通過this關(guān)鍵字
* ②通過["key"]調(diào)用 對象名["屬性名"] 對象名["方法名"]()
* ③刪除對象的屬性和方法:delete 對象名.屬性名/方法名
*
?
轉(zhuǎn)載于:https://www.cnblogs.com/adaia/p/6753622.html
總結(jié)
- 上一篇: 惠普打印机1106驱动程序下载(惠普11
- 下一篇: bzoj4484[JSOI2015]最小