什么是js
1.什么是js
js全稱是javascript,是web標(biāo)準(zhǔn)中的行為標(biāo)準(zhǔn)劳秋,主要負(fù)責(zé)網(wǎng)頁(yè)中內(nèi)容的變化砸西。
js和python一樣是腳本語(yǔ)言
2.js代碼寫(xiě)在什么地方
a.內(nèi)聯(lián) js - 寫(xiě)在標(biāo)簽的事件相關(guān)屬性中刑赶,例如onclick屬性(鼠標(biāo)點(diǎn)擊事件)
b.內(nèi)部js - 寫(xiě)在script標(biāo)簽中,script可以放在head和body中
c.外部js - 寫(xiě)在一個(gè)js文件中顿颅,然后在html中通過(guò)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)頁(yè)內(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">
//在這兒寫(xiě)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ǔ)語(yǔ)法
//1.注釋
//單行注釋 - 注釋前加兩個(gè)斜杠
/*多行注釋
*
*/
//2.標(biāo)識(shí)符
//由數(shù)字、字母琼稻、下劃線和$組成,數(shù)字不能開(kāi)頭.命名一般不用$符饶囚,$有特殊功能
//數(shù)字不能開(kāi)頭
num = 1
$Str1 = 'ads'
//3帕翻、關(guān)鍵字
//for , in ,while ,if , else , true , flase等等坯约,有特殊功能的標(biāo)識(shí)符
//4.數(shù)據(jù)類型和字面量
// Number - 數(shù)字類型 , String字符串 熊咽,Boolean布爾,Array數(shù)組 闹丐,Object對(duì)象 ,Function函數(shù)等
// Number - 23 , 23.12(支持科學(xué)計(jì)數(shù)法)NaN(不存在的數(shù)字Infinity無(wú)窮大)
//String字符串 - 'asdf' , "asd"
console.log('asd',"gsda")
//Boolean布爾 - true和false兩個(gè)值
// Array數(shù)組 - 相當(dāng)于python中的列表被因;[]
//對(duì)象 - 相當(dāng)于python中的字典 + 對(duì)象卿拴;{屬性名:屬性值}屬性值可以是任何類型衫仑,屬性名可以有引號(hào)也可沒(méi)有
//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.基本語(yǔ)法
// 格式1: 變量名 = 值 和python一樣的
// 格式2:var 變量名 = 值
//單獨(dú)聲明一個(gè)變量
同時(shí)聲明多個(gè)變量賦不同的值;注意,使用var聲明變量的時(shí)候,可以不給變量賦值,默認(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)算符:&& (邏輯與)、||(邏輯或)过咬、4蟛场(邏輯非)
//運(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)算符
// ?: -- 條件語(yǔ)句具篇?值1:值2 (條件語(yǔ)句成立結(jié)果是值1纬霞,不成立結(jié)果是值2)
age = 20
console.log(age>=18?'成年':'未成年')
四:分之結(jié)構(gòu)
//js中的分之結(jié)構(gòu)有兩種:if語(yǔ)句、switch語(yǔ)句
//1. if語(yǔ)句
/*
if (條件語(yǔ)句){
條件語(yǔ)句成立時(shí)執(zhí)行的代碼段
}
if (條件語(yǔ)句){
條件語(yǔ)句成立時(shí)執(zhí)行的代碼段
}else{
不成立時(shí)執(zhí)行的代碼段
}
if (條件語(yǔ)句){
條件語(yǔ)句成立時(shí)執(zhí)行的代碼段
}else if(條件語(yǔ)句2){
條件語(yǔ)句2成立時(shí)執(zhí)行的代碼段
}else{
前面都不成立時(shí)執(zhí)行的代碼段
}
//2.switch語(yǔ)句
a.語(yǔ)法:
switch(表達(dá)式){
case 值1:{代碼段1
}
case 值2:{代碼段2
}
default:{代碼段3
}
}
注意:case后面的{}可以省略驱显,代碼段也可以沒(méi)有
b.執(zhí)行過(guò)程:先計(jì)算表達(dá)式的結(jié)果诗芜,然后再?gòu)纳贤乱灰缓蚦ase后面的值進(jìn)行比較,判斷是否相等埃疫;
找到第一個(gè)和表達(dá)式結(jié)果相等的case伏恐,然后將這個(gè)case作為入口 ,依次執(zhí)行分之后面的所有代碼段栓霜,直到執(zhí)行到最后一個(gè)代碼段或者遇到break才結(jié)束翠桦。
、、如果表達(dá)式的結(jié)果和每個(gè)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)體
}
注意:不管序列是什么類型澎蛛,這個(gè)變量取的都是下標(biāo)或者屬性名(相當(dāng)于key)
//b.C的for循環(huán)
for(表達(dá)式1;表達(dá)式2蜕窿;表達(dá)式3){
循環(huán)體
}
執(zhí)行過(guò)程:先執(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(條件語(yǔ)句){
循環(huán)體
}
/*
C中的do-while
do{
循環(huán)體
}
while(條件語(yǔ)句)
執(zhí)行過(guò)程:先執(zhí)行一次循環(huán)體荧恍,然后才判斷條件語(yǔ)句是否為true
六:函數(shù)
function 函數(shù)名(參數(shù)列表){
函數(shù)體
}
//js中所有的名字都用駝峰式命名(多個(gè)單詞首字母大寫(xiě))
//注意:不支持關(guān)鍵字參數(shù) 。 不支持不定長(zhǎng)參數(shù)屯吊。送巡。不支持多個(gè)返回值
//聲明函數(shù)的時(shí)候就是聲明類型是Function的變量
//匿名函數(shù)
function(參數(shù)列表){
函數(shù)體
}
注意:如果函數(shù)體中沒(méi)有return,函數(shù)的返回值是undefined
</script>
func1 = function(a){
console.log(a)
}