1.什么是js
js是javascript的縮寫哆姻,是web標準的行為標準速兔,負責網(wǎng)頁中內(nèi)容變化的部分
2.在那兒寫js代碼
a.寫在標簽的事件中雁竞,例如按鈕的onclick屬性
b.寫在script標簽中(將js代碼作為script標簽的內(nèi)容)
注意:script標簽理論上是可以寫在html中的任何一個地方秒咐,但是一般都放在head和body中
c.寫在js文件中歉铝,在html中通過script標簽將文件導入(src屬性值就是導入的js文件路徑)
3.js能做什么
a.在網(wǎng)頁指定的位置插入標簽
b.修改網(wǎng)頁中標簽的內(nèi)容
c.修改標簽的樣式
4.怎么寫js代碼
javascript是一門編程語言盈简,和python一樣是動態(tài)語言也是腳本語言,但是和java沒有關系
補充:Windows.alert(信息) - js代碼,在瀏覽器上彈出一個對話框柠贤,對話框中顯示指定的信息
基本語法
1.控制臺輸出
console.log(輸出的內(nèi)容) - 和print的功能一樣
2.標識符
由字母數(shù)字下劃線和$組成香浩,不能是數(shù)字開頭
3.行與縮進
從語法角度,js代碼怎么換行和縮進都可以臼勉,js是通過{}來確定代碼塊
4.常見的數(shù)據(jù)類型:數(shù)字邻吭,字符串。布爾宴霸,數(shù)組囱晴,對象,函數(shù)
數(shù)字(Number) - 包含所有數(shù)字瓢谢,包含整數(shù)小數(shù)畸写,例如:100,12.5恩闻,-394,3e2
支持科學計數(shù)法艺糜,但是不支持虛數(shù)
b.布爾(Boolean) - 只有兩個值true和false,這兩個值是關鍵字幢尚,分別代表真和假
c.字符串(String) - 只有單行字符串用單引號或者雙引號括起來的字符集
d.對象(Object) - 相當于python中的字典和對象{}
e.函數(shù)(Function) - 相當于python中的函數(shù)
變量
1.聲明變量
語法1:變量名=值
變量名 - 標識符,不能是關鍵字翅楼,駝峰式命名(第一個單詞首字母小寫尉剩,后面單詞首字母大寫,見名知義)
語法2 - var 變量名=值 或者 var 變量名
區(qū)別 - 聲明的時候加var毅臊,變量可以不用賦值理茎,默認是undefined;不加var就必須賦值管嬉,否則就報錯
補充:js中有兩個特殊值 - undefined(沒有皂林,空) null(清空)
同時聲明多個變量,賦一樣的值
a1=a2=a3=1
同時聲明多個變量賦不一樣的值
var a1=1,a2=2,a3=3
運算符
1.數(shù)學運算符:+ - * / % ++ --
前面五個運算符和python一模一樣
++ -- 都是單目運算符
2.比較預算符:>,<,==,!=,>=蚯撩,<=础倍,===,胎挎!==
比較大小的運算符和python一樣沟启,結果都是布爾值
a.==判斷值是否相等
b.===判斷值和類型是否相等(完全相等),相當于python中的==,
犹菇!==相當于python中的!=
3.邏輯運算符:&&(與) ||(或) 5录!(非)
運算規(guī)則和python一模一樣
4.賦值運算符:= += -= *= /= %=
和python一模一樣
5.三目運算符
條件語句?值1:值2 - 判斷條件語句是否為真,如果為真結果就是值1揭芍,反之則是值2
6.運算順序 數(shù)學運算符>比較運算符>邏輯運算符>賦值
如果有括號胳搞,先算括號里面的
分支結構
js中分支結構有兩種:if 和switch
1.if語句
a.if
if(條件語句){
滿足條件會執(zhí)行的代碼
}
b.if-else
if(條件語句){
滿足條件會執(zhí)行的代碼
}
else{
不滿足條件會執(zhí)行的代碼
}
c.if-else if-else
if(){
}else if(){
}else{
}
執(zhí)行的過程和python一模一樣
2.switch語句
a.結構
switch(表達式){
case 值1:
代碼段1
case 值2:
代碼段2
case 值3:
代碼段3
default:
代碼段4
}
b.執(zhí)行過程
使用表達式的值依次和后面每個case的值進行比較,看是否相等,找到第一個和表達式的值相等的case肌毅,將這個case作為入口币厕,依次執(zhí)行后面的所有的代碼,直到執(zhí)行完成或者遇到break為止芽腾,如果每個case的值都和表達式的值不相等旦装,就執(zhí)行default后面的代碼
注意:case后面必須是一個有結果的表達式
循環(huán)結構
js中有for循環(huán)和while兩種
for循環(huán)
a. for-in
for(變量 in 序列){
循環(huán)體
}
執(zhí)行過程和python一樣,但是取到的值不是元素摊滔,而知下標/key(屬性名)
序列 - 字符串阴绢、數(shù)組、對象
b.c的循環(huán)
for(表達式1;表達式2;表達式3){
循環(huán)體
}
執(zhí)行過程:先執(zhí)行表達式1艰躺,然后判斷表達式2的值是否為真呻袭,如果為真就執(zhí)行循環(huán)體,循環(huán)體執(zhí)行完就執(zhí)行表達式3腺兴,然后判斷表達式2是否為真左电,如果為真就執(zhí)行循環(huán)體,以此類推页响,知道表達式2不為真篓足,循環(huán)結束
2.while循環(huán)
a.python的循環(huán)一模一樣
while(條件語句){
循環(huán)體
}
b.do-while
do{
循環(huán)體
}while(條件語句)
區(qū)別:do-while的循環(huán)體至少會執(zhí)行一次
typeof() - 獲取值的類型
函數(shù)
1.函數(shù)的聲明
function 函數(shù)名(參數(shù)列表){
函數(shù)體
}
js中的函數(shù)除了聲明關鍵字不一樣,其他都一樣
參數(shù)可以設置默認參數(shù)闰蚕,也可以通過關鍵字參數(shù)來調用函數(shù)
2.匿名函數(shù)(函數(shù)的字面量)
函數(shù)名 = function(參數(shù)列表){函數(shù)體}
3.變量的作用域
a:全局變量 - 只要聲明在函數(shù)的外面的變量就是全局變量栈拖,在函數(shù)中以 變量名=值 的形式聲明的變量也是全局變量,但是要先調用這個函數(shù)没陡,因為只有調用這個函數(shù)涩哟,才會執(zhí)行函數(shù)體
b.局部變量:以var關鍵字在函數(shù)內(nèi)部聲明的變量就是局部變量
js中所有的函數(shù)都有返回值,默認是undefined
字符串
1.字符串字面量
a.使用雙引號或者單引號括起來的字符集
b.除了普通字符以外還可以是轉義字符:\n \t \ ' ''
c.\u4位16進制對應的Unicode編碼
2.獲取字符串
字符串[下標] - 獲取單個字符串
下標 - 范圍是0-字符串的長度-1盼玄,下標如果越界取到的值是undefined
js中沒有切片
3.相關運算:+
NaN - js中一個特殊的值贴彼,類似undefined、null埃儿,用來表示一個不存在的數(shù)值
字符串+數(shù)值 - 支持字符串和其他任何數(shù)據(jù)相加器仗,是將其他數(shù)據(jù)全部轉換成字符串,然后在拼接
4.字符串長度
String.length
js中數(shù)據(jù)類型轉換 類型名()
6.js數(shù)組中只需要關注
1.如何獲取數(shù)組中的值
2.數(shù)組的方法
3.元素可以是任何類型