什么是js
1.什么是js
js全稱是javascript,是web標(biāo)準(zhǔn)中的行為標(biāo)準(zhǔn),主要負(fù)責(zé)網(wǎng)頁中內(nèi)容的變化。
js和python一樣是腳本語言
2.js代碼寫在什么地方
a.內(nèi)聯(lián) js - 寫在標(biāo)簽的事件相關(guān)屬性中,例如onclick屬性(鼠標(biāo)點(diǎn)擊事件)
b.內(nèi)部js - 寫在script標(biāo)簽中,script可以放在head和body中
c.外部js - 寫在一個js文件中,然后在html中通過script導(dǎo)入
console.log() 相當(dāng)于python中的print
window.alert() 彈出彈框
3.js能做什么
a.可以修改標(biāo)簽內(nèi)容
b.修改標(biāo)簽屬性
c.修改標(biāo)簽樣式
d.添加網(wǎng)頁內(nèi)容
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<!--外部js
在script標(biāo)簽的src中設(shè)置要導(dǎo)入的js的文件路徑(可以是本地的,也可以是網(wǎng)絡(luò)的)
<script type="text/javascript" src="index.js"></script>
<!--內(nèi)部的-->
<script type="text/javascript">
//在這兒寫js代碼
window.alert('內(nèi)部js')
</script>
</head>
<body>
<!--內(nèi)聯(lián)的-->
<button onclick="window.alert('你好')">按扭</button>
<p id='p1'>我是段落</p>
<button onclick="document.getElementById('p1').innerText = 'hello js'">修改內(nèi)容</button>
</body>
</html>
一:js基礎(chǔ)語法
//1.注釋
//單行注釋 - 注釋前加兩個斜杠
/*多行注釋
*
*/
//2.標(biāo)識符
//由數(shù)字、字母、下劃線和$組成,數(shù)字不能開頭.命名一般不用$符,$有特殊功能
//數(shù)字不能開頭
num = 1
$Str1 = 'ads'
//3、關(guān)鍵字
//for , in ,while ,if , else , true , flase等等,有特殊功能的標(biāo)識符
//4.數(shù)據(jù)類型和字面量
// Number - 數(shù)字類型 , String字符串 ,Boolean布爾,Array數(shù)組 ,Object對象 ,Function函數(shù)等
// Number - 23 , 23.12(支持科學(xué)計(jì)數(shù)法)NaN(不存在的數(shù)字Infinity無窮大)
//String字符串 - 'asdf' , "asd"
console.log('asd',"gsda")
//Boolean布爾 - true和false兩個值
// Array數(shù)組 - 相當(dāng)于python中的列表;[]
//對象 - 相當(dāng)于python中的字典 + 對象;{屬性名:屬性值}屬性值可以是任何類型,屬性名可以有引號也可沒有
//Function - 相當(dāng)于python中的函數(shù)
//0.2 查看類型和類型轉(zhuǎn)換
//查看類型: typeof(數(shù)據(jù))
console.log(typeof(100))
//類型轉(zhuǎn)換:類型名()
int1 = parseInt() 轉(zhuǎn)換成整型
Float1 = parseFloat() 轉(zhuǎn)換成浮點(diǎn)型
num = Number('ads') #結(jié)果是NaN
console.log(num)
二:變量
//1.基本語法
// 格式1: 變量名 = 值 和python一樣的
// 格式2:var 變量名 = 值
//單獨(dú)聲明一個變量
同時聲明多個變量賦不同的值;注意,使用var聲明變量的時候,可以不給變量賦值,默認(rèn)是unfefined
a = b = c = 10
a1 = 10 ,b1 = 20
var a2, s2,d2
三:運(yùn)算符
//js支持:數(shù)學(xué)運(yùn)算符,比較運(yùn)算符,邏輯運(yùn)算符,賦值運(yùn)算符,位運(yùn)算符
//1.數(shù)學(xué)運(yùn)算符:+ - * / % ,++ ,--(比python少了//和**,多了++,--)
// ++(自加1) , -- (自減1)
//變量++、++變量 讓變量自己的值加1
//變量-- 、 --變量 讓變量自己的值減1
num = 10
num++ //相當(dāng)于num += 1
--num
console.log(num)
num1 = 10
num2 = num1++ //num2結(jié)果是10,先賦值再加1
num11 = 10
num22 = ++num11 //num22結(jié)果是11,先加1再賦值
//2.比較運(yùn)算符:>,< ,>= ,<=,==,!=,===,!==
//比較大小和python一樣,結(jié)果都是布爾
//== 判斷值是否相等,!=判斷值是否不相等
//===判斷值和類型是否相等,!==判斷值和類型是否不相等(相當(dāng)于python的==和!=)
console.log(5 == 5) //true
console.log(5 == '5') //true
console.log(5 === '5') //false
//3.邏輯運(yùn)算符:&& (邏輯與)、||(邏輯或)、!(邏輯非)
//運(yùn)算規(guī)則和python一樣
//4.賦值運(yùn)算符: = , += ,-=,*=,/=,%=
//運(yùn)算規(guī)則和python一樣
//5.位運(yùn)算:&、|、~,^
//運(yùn)算規(guī)則和python一樣
//6.復(fù)合運(yùn)算和python一樣
//運(yùn)算順序和python一樣
//7.三目運(yùn)算符
// ?: -- 條件語句?值1:值2 (條件語句成立結(jié)果是值1,不成立結(jié)果是值2)
age = 20
console.log(age>=18?'成年':'未成年')
四:分之結(jié)構(gòu)
//js中的分之結(jié)構(gòu)有兩種:if語句、switch語句
//1. if語句
/*
if (條件語句){
條件語句成立時執(zhí)行的代碼段
}
if (條件語句){
條件語句成立時執(zhí)行的代碼段
}else{
不成立時執(zhí)行的代碼段
}
if (條件語句){
條件語句成立時執(zhí)行的代碼段
}else if(條件語句2){
條件語句2成立時執(zhí)行的代碼段
}else{
前面都不成立時執(zhí)行的代碼段
}
//2.switch語句
a.語法:
switch(表達(dá)式){
case 值1:{代碼段1
}
case 值2:{代碼段2
}
default:{代碼段3
}
}
注意:case后面的{}可以省略,代碼段也可以沒有
b.執(zhí)行過程:先計(jì)算表達(dá)式的結(jié)果,然后再從上往下一一和case后面的值進(jìn)行比較,判斷是否相等;
找到第一個和表達(dá)式結(jié)果相等的case,然后將這個case作為入口 ,依次執(zhí)行分之后面的所有代碼段,直到執(zhí)行到最后一個代碼段或者遇到break才結(jié)束。
、、如果表達(dá)式的結(jié)果和每個case的值都不相等,就直接執(zhí)行default作為入口,執(zhí)行后面的代碼段(default一般放在最后)
五:循環(huán)
//js中的循環(huán)結(jié)構(gòu)有兩種:for循環(huán)、while循環(huán)
//1.for循環(huán)
//a,python中的for循環(huán):for- in
/*
for (變量 in 序列){
循環(huán)體
}
注意:不管序列是什么類型,這個變量取的都是下標(biāo)或者屬性名(相當(dāng)于key)
//b.C的for循環(huán)
for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
循環(huán)體
}
執(zhí)行過程:先執(zhí)行表達(dá)式1,再執(zhí)行表達(dá)式2為真,就執(zhí)行循環(huán)體。再執(zhí)行表達(dá)式3,再執(zhí)行表達(dá)式2為真,就執(zhí)行循環(huán)體。
//1-100相加的和
for(num=1,sum=0;num<=100;num ++){
sum +=num
}
/*
1.python的while循環(huán)
*/
while(條件語句){
循環(huán)體
}
/*
C中的do-while
do{
循環(huán)體
}
while(條件語句)
執(zhí)行過程:先執(zhí)行一次循環(huán)體,然后才判斷條件語句是否為true
六:函數(shù)
function 函數(shù)名(參數(shù)列表){
函數(shù)體
}
//js中所有的名字都用駝峰式命名(多個單詞首字母大寫)
//注意:不支持關(guān)鍵字參數(shù) 。 不支持不定長參數(shù)。。不支持多個返回值
//聲明函數(shù)的時候就是聲明類型是Function的變量
//匿名函數(shù)
function(參數(shù)列表){
函數(shù)體
}
注意:如果函數(shù)體中沒有return,函數(shù)的返回值是undefined
</script>
func1 = function(a){
console.log(a)
}