一:分三個部分。
1.ELMASCRIPT(語法)
2.DOM
3.BOM
二:代碼寫的地方分為:內(nèi)部和外部
1.內(nèi)部:可以寫在HTML的任何位置,寫在一個帶碼中。
注意點(diǎn):如果導(dǎo)入JS文件后這個標(biāo)簽里面的代碼就無效了。
2.外部:重新創(chuàng)建一個JS文件,然后在HTML中導(dǎo)入《script src=“導(dǎo)入的地址”》
三:JS輸出
1.alert("內(nèi)容"):彈出提示框,
2.console。log(1/“內(nèi)容”)輸出在瀏覽器中
3.(不建議使用)在編輯器中的控制臺中顯示:document.write(“hello”)
四:數(shù)據(jù)類型:
和Python相同的(Number,String,Boolearn,)
不同的:Array(數(shù)組),object(對象),underfine(未定義),Null(空)
注意點(diǎn):用underfine定義的變量不能用,所以一般不初始化變量就賦值空值:a= Null
五:創(chuàng)建變量的兩種方式:
1.隱式創(chuàng)建:a=0
2.顯示創(chuàng)建:var a = 0
六:查看類型:
·· type of? 數(shù)據(jù)類型
七:類型轉(zhuǎn)換:
1.parseInt():純數(shù)字和數(shù)字加字幕可以轉(zhuǎn)換成整形,但是字母放前面就不行
如(aaaa123)不行 結(jié)果為NaN
2.perseFloat:轉(zhuǎn)換成浮點(diǎn)型
如: console.log(parseFloat('12.2.3..3'))=》12.2
八:.NaN:not a number (結(jié)果不是數(shù)值)
0/0= NaN
判斷是否為NaN:isNaN():會先將參數(shù)轉(zhuǎn)換成數(shù)值,如果不能轉(zhuǎn)換就是True
如:isNaN(“字符串”)-》true
isNaN(“True”(轉(zhuǎn)換成數(shù)值位1))-》Flase
九:.Infinity(正無窮大)加符號表示(負(fù)無窮大)
-8或者8/0
十基本語法:賦值:
1.==表示值相同就行,類型不同沒事
2.!=同
3.===表示值和類型都得相同
4.!=表示值和類型有一個不同就是不同
字符串拼接-》+
特殊:“1”+1(1+”1“)=》”11“
:1+2+“3”:先進(jìn)行1+2=3
@之后再進(jìn)行3+“3”,將3強(qiáng)制轉(zhuǎn)換類型進(jìn)行字符串拼接
邏輯運(yùn)算:&&與 |或| !非
5.自增或者自減:++a a++ --a a--(這是一個整體如++a*3是*上++a這個整體)
@++在前表示先a的值加1在進(jìn)行操作,在后就先進(jìn)行操作再給a++1,(注意點(diǎn):很容易先操作了,然后忘了給a++1,導(dǎo)致后面用到a算的時候出錯)、
6.三目運(yùn)算符:a%2?console。log(“奇數(shù)”):console.log(“偶數(shù)”)
第一個是條件,判斷是否滿足這個條件,?:后表是滿足這個條件進(jìn)行的操作,:不滿足。。。。
7.函數(shù),定義function函數(shù)名(參數(shù)){函數(shù)體}
匿名函數(shù):fn=function(){函數(shù)體}
注意點(diǎn):console.log(fn):輸出的是fn的整個內(nèi)容:fn=function(){函數(shù)體}
console.log(fn()):輸出的才是函數(shù)值
8.swich語句:
swich(變量或者表達(dá)式){
case 寫具體的數(shù)值比如a=1,不能寫a》1之類:{語句一 break}
如果不加break則會在一開始匹配的位置向下貫穿知道break或者default
......
default:{}以上匹配不到的話執(zhí)行這里面的語句
}
9.for-in
for(i in 【1,2,3,4】):這里i不再是Python中的表示列表的元素,而是表示元素的下標(biāo)
10.object={與Python中的字典相同,遍歷獲取的值也是key的值}
11.for(i=0(初始值只定義一次);i > 0 (條件);i++1(操作可以進(jìn)行其他的操作)){循環(huán)體}
注意“ ;”,注意i如果從0開始一般i的條件一句都是用《。如:i<100;i 如果是從一開始:i=1,i<=100;一般就是用小于等于號
循環(huán)嵌套:不能直接輸出,
str = “”
for(i = 0;i < 5; i++){
操作
for(j = 0;j < 5 ;j++){
str+= i+""
}
str+="\n? 換行
}
conlose.log(str)
12.while:用法與Python相同
do_while:將函數(shù)體放在前面do{}while():注意:函數(shù)體至少會被執(zhí)行一次(一般不用)
for用于次數(shù)固定,while用于次數(shù)不固定
13.數(shù)組:
創(chuàng)建:用new-》var a =new? 數(shù)組名(可以寫多個參數(shù),寫一個參數(shù)的時候表示是一個多..長的空數(shù)組)
直接創(chuàng)建:var a = 【1,2,3】
長度:a.length()一般用于遍歷的條件語句
添加:a.push()(一個或者多個)
排序:a.sort():默認(rèn)以字符串的形式比較,如果要以數(shù)字的形式升序或者降序,需要加參數(shù)
a.sort(funct(a,b) {return a >b (升序) 或者 a < b(降序)})
提?。篴lice(n,m)類似Python中的截取生成新的數(shù)組不會改變原來的數(shù)組,
alice(2,5)= 》list【2,5】也是前閉后開
截?。簊plice(n(截取的下標(biāo)位置)m(截取多少個) str1...(第是三個參數(shù)后面所有的參數(shù)是替換的內(nèi)容,每一個為一個元素))會改變原數(shù)組,包括真的截取,替換(可以看成截取一段后再放一段內(nèi)容進(jìn)去,這一段可以使多個也可以是一個)
splice(2,0,“大薩達(dá)”):在下標(biāo)二的位子0表示插入后面的內(nèi)容
splice(2,3,“大薩達(dá)”,“大薩達(dá)”):在下標(biāo)2的位子后面的3個元素替換成str1str2
得到的還是原來的數(shù)組(改變了的)
join:a。join()得到的是一個字符串 a是數(shù)組? 用法和Python差不多就是寫的位置在括號里面。
得到一個字符串。
1.可以看做一個特殊的字符
2.將ACII碼轉(zhuǎn)換成字符:
chr = string.fromCharCode(97)
3.隨機(jī)數(shù):Math.random()----[ 0 ,1 )?
4.查找:str.inserdof("? 子字符)? 沒找到返回-1
5.替換:str.replace
6.拆分(得到列表):str.split():默認(rèn)是將整個字符串作為一個元素(“”)加空字符是將字符串的每個元素作為一個元素,
7.字符串的倒敘輸出:
str.splict(“”).reverse().join(“”)
8.大寫:toUpper() 小寫toLower()
一:日期
1.創(chuàng)建:
a? = new Date():當(dāng)前時間
a = new Date(指定時間)
2.獲取當(dāng)前時間:
a.getfullTear():獲取當(dāng)前的年份。a.getMonth()獲取當(dāng)前的月份(里面加數(shù)值是獲取指定的年方或月份或天數(shù)(Date')或小時分鐘秒鐘或時間戳:Time)
二:對象
創(chuàng)建:直接創(chuàng)建:和字典一樣,賦值創(chuàng)建:點(diǎn)語法
? 元素有函數(shù)時,函數(shù)名:function(){}或者b.函數(shù)名=func(){}
使用:b.name或者b["name"]
b.函數(shù)名()
一:定時器和Dom操作:
獲取當(dāng)前元素:
var m = documen.getElementByID("元素的ID名")
事件(誰的點(diǎn)解事件 點(diǎn)擊事件)
m .onclik = function(){
元素的內(nèi)容的獲?。簃.innerHTML
獲取文本框的內(nèi)容:文本框先有定義空屬性value,通過m.value獲取
設(shè)置節(jié)點(diǎn)內(nèi)容:
m.innerHTML = 值
b? = backgroColor(原本是backgr-color? “ -”改為...)
}var i = 0
開啟定時器(不關(guān)閉就不要用變量接收):
temp = setInterval( fn()
i++
if (i == 5){? clearInterval(temp)(關(guān)閉計時器) }
}, 時間(毫秒))
創(chuàng)建元素:document.creatElement(“元素名”)
添加元素:a。append(b)
二:延遲期:(運(yùn)行一次)
開啟:temp = setTimeout(fn(){
clearTimeout(temp)
}, 時間(毫秒:過多長時間開始運(yùn)行))
輪播圖:
一:
利用定時器沒過幾秒就修改一下插入圖片的路徑(需要一定樣式的圖片組)
二:先第一一個需要和一張圖片大小一樣的盒子,超出部分隱藏
在定義一個盒子高度和圖片一樣,寬度是所有圖片的總和,然所有圖片左浮動
讓第二個盒子的相對定位用定時器:每隔幾秒改變一下定位的-left值,每次改變一個圖片的寬度
(第一圖片0,第二個圖片-1*200px,第三個圖片-2*200px....)( 1 = 2%圖片數(shù),。。。。 )