目錄
- 基礎知識
- 數(shù)據(jù)類型
- 操作符和表達式
- 語句
- 函數(shù)
- 數(shù)組與字符串
- 定時器
- 數(shù)學對象
- 時間與日期
- DOM文檔對象模型
- BOM瀏覽器對象模型
- 事件流
1> 基本知識
三大組成部分:
1) ECMAScript赡磅,提供核心語言
2) DOM 文檔數(shù)據(jù)類型 提供訪問和操作網(wǎng)頁內(nèi)容的方法和接口
3) BOM 瀏覽器數(shù)據(jù)類型 提供與瀏覽器交互的方法和接口
引入
<script src=””></script>
-
alert()
系統(tǒng)彈出框 阻斷程序運行 -
console.log()
控制臺輸出 用于調(diào)試程序 報錯信息的收集 -
document.write()
打印到頁面
2> 數(shù)據(jù)類型
5種基本數(shù)據(jù)類型:
undefined
—— 未定義類型
null
—— 空類型
boolean
—— 布爾類型
number
—— 數(shù)值型
string
—— 字符串類型
1種復雜數(shù)據(jù)類型:
object
—— 對象類型
Typeof類型:
undefined
—— 如果這個值未定義魄缚;
boolean
—— 如果這個值是布爾值;
number
—— 如果這個值是數(shù)值焚廊;
string
—— 如果這個值是字符串冶匹;
object
—— 如果這個值是對象或null;
function
—— 如果這個值是函數(shù)咆瘟。
3> 操作符和表達式
1) 一元操作符(單目操作符)
- ++是遞增操作符嚼隘,--是遞減操作符
- i++ 先賦值 后自加 i-- 先賦值 后自減
- ++i 先自加 再賦值 --i 先自減 再賦值
- 乘法操作符 / 除法操作符 % 取余操作符
2) 布爾操作符
-
&&
(與):找第一個為false的值并返回 -
||
(或):找第一個為true的值并返回 -
!
(非):取反
&&
(與)和||
(非)中袒餐,如果有一個操作數(shù)是null
飞蛹,則返回null
谤狡;如果有一個操作數(shù)是NaN
,則返回NaN
卧檐;如果有一個操作數(shù)是undefined
墓懂,則返回undefined
。
語句
1)If語句:
If(){
}else if{
}else
2)swichi語句:
swich(a){
case 滿足條件:
滿足條件,執(zhí)行;
break;
case 滿足條件:
滿足條件,執(zhí)行;
break;
default:
都不滿足執(zhí)行;
}
3) for語句:
for(start;end;step){
循環(huán)體;
}
4) for in 語句:
for (var 變量 in 對象){
循環(huán)體
}
6) while語句
7) do……while語句
8) break以及continue
5> 函數(shù)
1)函數(shù)聲明
function fn(){ }
2)函數(shù)表達式
var fn = function (){};
兩者區(qū)別:函數(shù)聲明有函數(shù)聲明提升的過程
6> 數(shù)組與字符串
1) 創(chuàng)建方式
//數(shù)組
var arr = new Array();
var arr = [ ];
//字符串
var str = new String();
var str = “ ”;
2) 屬性
console.log($.length) // 返回值為長度
3)數(shù)組轉(zhuǎn)字符串方法
$.toString( )
$.join( ) // 數(shù)組轉(zhuǎn)字符串
3) 棧方法和隊列方法
// 棧方法
$.push():將任意參數(shù)添加到數(shù)組末尾 // 返回值為新數(shù)組的長度
$.pop( ):將數(shù)組末尾的參數(shù)刪除 //返回值為被刪除項
// 隊列方法
$.unshift():將任意參數(shù)添加到數(shù)組開頭 // 返回值為新數(shù)組的長度
$.shift():將數(shù)組開頭的參數(shù)刪除 // 返回值為被刪除項
4) 重排序和操作方法
$.reverse(): 翻轉(zhuǎn)數(shù)組 // 返回值為翻轉(zhuǎn)后的新數(shù)組
$.sort(): 排序
$.sort(function(a,b)){
Return a-b 升序
Return b-a 降序
}
$.concat():拼接兩個或幾個數(shù)組 // 返回值為新數(shù)組
$.slice():提取數(shù)組中的某個部分 // 返回值為被提取項
$.splice():添加霉囚、刪除捕仔、替換
$.indexOf():通過元素找下標 // 返回值為該元素首次出現(xiàn)的索引值
5) 迭代方法
$.some():數(shù)組中任何一個值為true,就返回true
$.every():數(shù)組中每一項為true盈罐,才返回true
內(nèi)容很多是不是有點困了...
7> 定時器
<h1 id='names'></h1>
<script>
var names = document.getElementById('names');
console.log(names);
var arr = ['三國演義', '紅樓夢', '西游記',"水滸傳","白夜行","放課后","解憂雜貨店","東野圭吾","百年孤獨"];
var timer = null;
timer = setInterval(function () {
var num = Math.floor(Math.random() * arr.length);
names.innerHTML = arr[num];
}, 50)
setTimeout(function () {
clearInterval(timer);
timer = null;
}, 5000)
8> 數(shù)學對象
1) 屬性
$.Math.min() //最小值
$.Math.max() //最大值
2) 舍入方法
$.Math.ceil() //向上舍入
$.Math.floor() // 向下舍入
$.Math.round() //標準舍入(四舍五入)
3) 隨機數(shù)
$.Math.random()
4) 封裝一個方法:隨機生成n到m的隨機數(shù)榜跌。
function random(n,m){
return Math.floor(Math.random()*(m-n+1) + n);
}
9> 時間與日期
倒計時案例:
Html:
<h3 id="downtime"></h3>
Css:
span {
display: inline-block;
color: #fff;
width: 30px;
height: 30px;
background-color: #000;
text-align: center;
line-height: 30px;
font-size: 15px;
}
Js:
var timedown = document.getElementById("downtime")
function djs(year, mo, day) {
var nowtime = new Date();
var futuretime = new Date(year, mo, day);
var shicha = futuretime - nowtime;
var tian = Math.floor(shicha / 1000 / 60 / 60 / 24);
var hour = Math.floor(shicha / 1000 / 60 / 60 % 24);
var minutes = Math.floor(shicha / 1000 / 60 % 60);
var secend = Math.floor(shicha / 1000 % 60);
var all = `<span>${tian}</span> 天 <span>${hour}</span>時 <span>${minutes}</span>分 <span>${secend}</span>秒`
return all;
}
var tim = null;
tim = setInterval(function () {
timedown.innerHTML = djs(2019, 9, 1);
}, 0)
10 >DOM文檔對象模型
etElementById()
獲取特定ID元素的節(jié)點
getElementsByTagName()
獲取相同元素的節(jié)點列表
getElementsByClassName()[0]
獲取Class名稱元素的節(jié)點
getElementsByName()
獲取相同名稱的節(jié)點列表
getAttribute()
取特定元素節(jié)點屬性的值
setAttribute()
設置特定元素節(jié)點屬性的值
removeAttribute()
移除特定元素節(jié)點屬性
$.innerHTML
寫入頁面
獲取元素的節(jié)點前面需要加
document
11> BOM 瀏覽器對象模型
對話框
var tak = confirm("請點擊確定或取消")
alert(tak)
點擊確定返回值為true
點擊取消返回值為false
12> 事件流
事件分類:
事件冒泡由最深處的元素開始接受,逐層向上傳遞暖呕。
事件捕捉由最外圍的節(jié)點開始接受,逐層傳遞到最具體元素苞氮。
事件類型:
所有事件類型的處理都由 on + 事件名稱 組成湾揽。
1) 鼠標事件
click
:單擊鼠標時觸發(fā)
dblclick
:雙擊鼠標時觸發(fā)
mouseover
:鼠標滑入時觸發(fā)
mouseout
:滑出時元素時觸發(fā)
mousemove
:鼠標在元素上移動式觸發(fā)
2) 鍵盤事件
keydown
:按下鍵盤任意鍵時觸發(fā),如果按著不放會重復觸發(fā)
keyup
:釋放鍵盤上按鍵時觸發(fā)
keypress
:按下鍵盤某個字符鍵時觸發(fā)笼吟,如果按著不放會重復觸發(fā)
3) HTML事件
load
:當頁面所有內(nèi)容加載完成后库物,在整個頁面之上觸發(fā)
unload
:當頁面所有內(nèi)容卸載后觸發(fā)
focus
:獲取焦點時觸發(fā)
blur
:失去焦點時觸發(fā)
本人新建的公眾號,有興趣的小可愛可以關注一下子嗷qaq