1.條件語句
1.三目運算符:
num % 2 == 0 ? alert('該數(shù)字是偶數(shù)') : alert('該數(shù)字是奇數(shù)');
2.switch語句
var a = '星期一';
switch(a) {
case '星期一':
alert('今天星期一');
break;
// default:
}
3.break:跳出當前循環(huán)(函數(shù))蛔垢,繼續(xù)向后執(zhí)行。
continue:結束本次循環(huán),開啟下一次循環(huán)型型。
2.數(shù)組
1.數(shù)組中常用的方法
var arr1 = [1, 2, 3, 3, 'hello', 3, '22'];
// 把數(shù)組轉(zhuǎn)為字符串的方法:toString();
var str = arr1.toString();
console.log(str);
console.log(arr1);
// join():把數(shù)組轉(zhuǎn)為字符串時全蝶,可以指定元素與元素之間的連字符
str = arr1.join('+');
console.log(str);
console.log(arr1);
// 從數(shù)組末尾添加新元素:push();
var count = arr1.push('我是新元素1', '我是新元素2','我是新元素3');
console.log(count);
console.log(arr1);
// 從數(shù)組末尾刪除元素:pop()
count = arr1.pop();
console.log(count);
console.log(arr1);
// 從數(shù)組起始位置刪除元素:shift()
count = arr1.shift();
console.log(count);
console.log(arr1);
// 從數(shù)組的起始位置插入新元素:unshift()
count = arr1.unshift('23');
console.log(count);
console.log(arr1);
// 根據(jù)當前數(shù)組創(chuàng)建一個新數(shù)組:concat()
var arr2 = arr1.concat([1, 2, 3, 4, 5])
console.log(arr1);
console.log(arr2);
// 根據(jù)已有的數(shù)組創(chuàng)建新數(shù)組:slice()函數(shù)中的兩個參數(shù)分別表示要獲取當前數(shù)組中元素的起始下標(包含)和結束下標(不包含)闹蒜;
var arr3 = arr1.slice(1,3);
console.log(arr1);
//判斷3在下標為4的地方開始到最后是否存在,存在返回下標抑淫,不存在返回false绷落。
var inde = arr1.indexOf(3, 4);
console.log(inde);
2.冒泡排序
外側循環(huán)控制比較的趟數(shù),內(nèi)層循環(huán)控制比較的次數(shù)丈冬。
var arr = [100, 29, 23, 13, 4]
// 外層循環(huán)控制趟數(shù):元素個數(shù)-1
for (var i = 0; i < arr.length-1; i++) {
// 內(nèi)層循環(huán)控制每一趟比較的次數(shù):元素個數(shù)-趟數(shù)
for (var j = 0; j < arr.length-1-i; j++) {
// j代表當前獲取到的元素下標
if (arr[j] > arr[j+1]) {
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
3. 字符串
1.字符串的管理形式借助于數(shù)組結構嘱函,所以也可以使用變量名[下標]的形式獲取到單個字符,也可以通過遍歷取到每一個字符埂蕊。
2.字符串的方法
// 字符串拼接操作:concat()\+
var str4 = str3.concat(' kitty');
// console.log(str3);
// console.log(str4);
// slice():有一個參數(shù)時往弓,從當前參數(shù)指定的下標截取到字符串末尾
var str5 = str4.slice(5);
// console.log(str4);
// console.log(str5);
// slice():有兩個參數(shù)時,第一個參數(shù)時截取的起始下標蓄氧,第二個參數(shù)是截取的終止下標(不包含終止下標的字符)
var str6 = str4.slice(5, 9);
// console.log(str4);
// console.log(str6);
// substring():如果有一個參數(shù)函似,表示從當前下標一直截取到結束位置;如果有兩個參數(shù)喉童,第一個參數(shù)表示截取起始位置撇寞,第二個參數(shù)表示截取結束位置(不包含結束為止的字符)
// substr():如果有一個參數(shù),表示從當前下標一直截取到結束位置堂氯;如果有兩個參數(shù):第一個參數(shù)是截取起始位置蔑担,第二個參數(shù)是從起始位置開始截取的字符個數(shù)
var str7 = str4.substr(5, 2);
// console.log(str4);
// console.log(str7);
// indexOf():如果只有一個參數(shù),則表示從左向右搜尋和該參數(shù)匹配的字符咽白,并返回該下標啤握,如果沒有,則返回-1晶框;
var inde = str4.indexOf('o');
console.log(str4);
console.log(inde);
// indexOf():如果有兩個參數(shù)排抬,第一個參數(shù)表示要查找的字符懂从,第二個參數(shù)表示從指定的下標開始從左向右查找。
inde = str4.indexOf('o', 5);
// console.log(str4);
// console.log(inde);
// lastIndexOf():如果有一個參數(shù)蹲蒲,表示:從后向前查找匹配的字符并返回第一個匹配成功的字符下標
inde = str4.lastIndexOf('o');
// console.log(str4);
// console.log(inde);
// lastIndexOf():如果有兩個參數(shù)番甩,表示:第一個參數(shù)是要查找的字符,第二個參數(shù)表示查找的起始坐標届搁。從起始坐標開始缘薛,向前查找匹配的字符
inde = str4.lastIndexOf('o', 5);
// console.log(str4);
// console.log(inde);
3.Math對象(數(shù)學函數(shù))
// 獲取數(shù)據(jù)的最大值
var max = Math.max(12,34,0,-1);
console.log(max);
// 獲取數(shù)據(jù)中的最小值
var min = Math.min(12, 34, 0, -1);
console.log(min);
// Math.ceil():向上取整,進一法
console.log(Math.ceil(99.1));
console.log(Math.ceil(99.5));
// Math.floor():向下取整,去尾法
console.log(Math.floor(99.1));
console.log(Math.floor(99.5));
// Math.round():四舍五入取整
console.log(Math.round(99.1));
console.log(Math.round(99.5));
// Math.pow(x,y):求x的y次方
console.log(Math.pow(2,2));
// Math.sqrt():開平方運算
console.log(Math.sqrt(4));
// Math.abs(num):求絕對值
console.log(Math.abs(-100));
4. bom瀏覽器對象模型
屬性 | 描述 |
---|---|
appCodeName | 返回瀏覽器的代碼名咖祭。 |
appMinorVersion | 返回瀏覽器的次級版本掩宜。 |
appName | 返回瀏覽器的名稱。 |
appVersion | 返回瀏覽器的平臺和版本信息么翰。 |
browserLanguage | 返回當前瀏覽器的語言牺汤。 |
cookieEnabled | 返回指明瀏覽器中是否啟用 cookie 的布爾值。 |
cpuClass | 返回瀏覽器系統(tǒng)的 CPU 等級浩嫌。 |
onLine | 返回指明系統(tǒng)是否處于脫機模式的布爾值檐迟。 |
platform | 返回運行瀏覽器的操作系統(tǒng)平臺。 |
systemLanguage | 返回 OS 使用的默認語言码耐。 |
userAgent | 返回由客戶機發(fā)送服務器的 user-agent 頭部的值追迟。 |
userLanguage | 返回 OS 的自然語言設置。 |
1.bom對象:window對象骚腥,location對象敦间,screen對象,history對象束铭,navigator對象廓块。
2.window對象:
window.screenX/screenY主窗口的位置。
window.innerWidth/innerHeight瀏覽器寬度和瀏覽器的高度
window.open()打開新頁面:參數(shù)一:要打開頁面的url鏈接契沫,參數(shù)二三可以省略带猴。
系統(tǒng)對話框:alert(),prompt(),confirm().
定時器:setInteral(),setTimeout()
3.location對象
該對象中的屬性和方法操作瀏覽器的url區(qū)域。
location.reload()沒有參數(shù)時懈万,從緩存中加載一遍頁面拴清。當參數(shù)為true時從服務器請求數(shù)據(jù)。
location.replace('url字符串')該方法修改頁面会通,不會被歷史記錄保存口予。
4.screen對象(一般用于移動設備)
screen.availHeight:屏幕的高度減去系統(tǒng)部件高度的像素值。
scrern.availWidth:寬度
screen.height():屏幕高度
screen.width():屏幕的寬度
5.navigator對象(識別客戶端瀏覽器的事實標準)
屬性 | 描述 |
---|---|
appCodeName | 返回瀏覽器的代碼名涕侈。 |
appMinorVersion | 返回瀏覽器的次級版本苹威。 |
appName | 返回瀏覽器的名稱。 |
appVersion | 返回瀏覽器的平臺和版本信息驾凶。 |
browserLanguage | 返回當前瀏覽器的語言牙甫。 |
cookieEnabled | 返回指明瀏覽器中是否啟用 cookie 的布爾值。 |
cpuClass | 返回瀏覽器系統(tǒng)的 CPU 等級调违。 |
onLine | 返回指明系統(tǒng)是否處于脫機模式的布爾值窟哺。 |
platform | 返回運行瀏覽器的操作系統(tǒng)平臺。 |
systemLanguage | 返回 OS 使用的默認語言技肩。 |
userAgent | 返回由客戶機發(fā)送服務器的 user-agent 頭部的值且轨。 |
userLanguage | 返回 OS 的自然語言設置。 |
5. dom
// 什么是DOM:文檔對象模型虚婿,一份html文件在js中就是一個DOM對象(document對象)
// BOM是包含DOM的
// 節(jié)點的概念:組成一份DOM文檔的所有內(nèi)容都是DOM的節(jié)點旋奢,包括但不僅限于:標簽、空格然痊、換行至朗、注釋、標簽的屬性剧浸、標簽中嵌套的文本
獲取標簽
// 查詢標簽的范圍是整個html文件锹引,也就是在document范圍中搜索指定的標簽,所以要使用document對象調(diào)用相關查找方法唆香。
// 因為W3C協(xié)議規(guī)定id值唯一嫌变,所以通過id獲取標簽,只能獲取一個標簽躬它,如果頁面中出現(xiàn)同名id腾啥,則只獲取匹配的第一個標簽
var pTag = document.getElementById('p');
// console.log(pTag);
// 通過標簽名獲取標簽:可以獲取到頁面中所有的同名標簽
// 返回值是一個類似于數(shù)組的數(shù)據(jù)類型,把所有匹配到的標簽按照先后順序冯吓,利用下標管理起來倘待。
var aTags = document.getElementsByTagName('a');
// console.log(aTags[0]);
// 通過class名獲取標簽
var linkTags = document.getElementsByClassName('link');
// console.log(linkTags);
// 通過name屬性值獲取input類型(form表單)的標簽
var inputs = document.getElementsByName('user');
// console.log(inputs);
// 通過標簽的選擇器獲取標簽
// querySelector():不管頁面中與參數(shù)匹配的標簽有幾個,只能拿到第一個匹配的標簽
var tag = document.querySelector('.link');
// console.log(tag);
// querySelectorAll():可以獲取到頁面中所有與參數(shù)匹配的標簽
var tags = document.querySelectorAll('.link');
console.log(tags);
for循環(huán)添加事件
也可以把var i = 0改為let i = 0桑谍;這樣每一回循環(huán)都會重新聲明一個變量延柠。
還可以用閉包解決。
// for循環(huán)給按鈕添加事件
for (var i = 0; i < btnTags.length; i++) {
console.log(i);
// 利用i充當數(shù)組數(shù)組下標锣披,逐個獲取按鈕贞间,并添加事件
// 使用for循環(huán)給標簽添加事件時,不能在事件函數(shù)中使用循環(huán)變量雹仿,因為當觸發(fā)事件函數(shù)時增热,循環(huán)已經(jīng)結束,循環(huán)變量已經(jīng)變?yōu)樽詈笠粋€數(shù)值了胧辽,點擊任何按鈕峻仇,訪問到的循環(huán)變量都是同一個數(shù)字
// 解決辦法:給每一個標簽添加一個屬性,用這個屬性存儲該標簽對應的下標值邑商,在通過事件函數(shù)獲取標簽下表時摄咆,不能使用循環(huán)變量凡蚜,而是通過該屬性拿值。
btnTags[i].box = i;
btnTags[i].onclick = function () {
// 當點擊事件觸發(fā)時吭从,執(zhí)行該函數(shù)朝蜘,獲取按鈕的下標,借助于當時新添加的屬性獲壬稹(按鈕下標和顏色下標是一一對應的)
var inde = this.box;
contentTag.style.backgroundColor = colorArr[inde];
}
}