javascript有三種語句結構:1、順序結構;自上而下,逐行執行。 2、選擇分支結構;多條路徑,依不同條件,只執行其中的一條或選擇性的執行多條。 3、循環結構;重複執行某些程式碼。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
順序結構
自上而下,逐行執行,先來後到,相同語句,後面的覆寫前面的
選擇分支結構
多條路徑,根據不同條件,只執行其中的一個或選擇性的執行多條
循環結構
#重複執行某些程式碼,取代某些重複性操作,減少程式碼冗餘,提升效率
兩個路徑二選一,做或不做,有或沒有,執行或不執行;
//语法结构: if(){} if //语句名 () //是否执行的条件,true 或 false {} //执行的内容 //例: if(true){ console.log("hello");//"hello"---if括号中是true则输出hello,若为false则不输出 }
//当条件判断为true时,执行花括号内的语句,如果条件为假false,跳过花括号内的语句执行else里的内容 if(条件){ 执行语句1,条件为真时执行 }else{ 执行语句2,条件为假时执行 }
通常if的括號中填入一個判斷語句,判斷是真還是假if()括號裡面的東西我們通常也叫它邏輯點,判斷點 當括號內的內容為true時真,為false時假,true或false是布林值(boolean)代表真和假,需要透過邏輯運算子得到
if(1){ //括号内填写数字"1"会发生什么 console.log("会输出么?"); //会输出吗?---会在控制台输出内容 }數字1是數值型,不是布林值,更不是true為什麼會執行花括號內的語句了呢? 在某些特定的情況下,電腦會進行一些隱式轉換,他和強制型別轉換不一樣,他不需要你做什麼,會自動轉換資料型別在運算中,if(小括號)中的語句會發生隱式型別轉換
//if隐式转换例题 var a = "1",b = 2; console.log(a + b);//12---+号进行字符串拼接,拼成12,而不是进行数值运算等于3" "號碼有兩種意義:
var a = "1",b = 2; console.log(a + b);//12---默认进行字符串拼接输出字符串"12" console.log((a-0) + b );//3---先通-0操作将字符转换为数字,再进行相加,输出数值3
if()中只需要布林值,那麼在if判斷中,會把括號內所有的資料型別,都隱含轉換成布林型,任何型別最後都轉成布林型別
- 數字:非0為true,0為false
- 字元:非空為true,空為false
- #
#- 陣列:在任何時候都為true,數組也是物件的一種
### 時為
NaN:為false
undefined:為alse
isNaN():
判斷是否為NaN可以間接判斷是否為數字,返回為true時為NaN不是數字,返回為false時是數字
至少有兩個或以上,根據條件執行其中一條或多條語句
if(true){ console.log("hello"); }else{ if(true){ console.log("hello"); }else{ console.log("world"); } } 或者 if(true){ console.log("hello1"); }else if(true){ console.log("hello2"); }else if(true){ console.log("hello3"); }else if(true){ console.log("hello4"); }
系统提供的语句
switch(){}
switch语句名
()要判断的值
{}执行语句,所有的分支路径都放在一个花括号内
case匹配()内的值则执行,不匹配则往下找,找到执行,都没找到输出default的内容
案例:输入数字,判断后输出星期几
switch(n){ case 1:console.log("星期一");break; case 2:console.log("星期二");break; case 3:console.log("星期三");break; case 4:console.log("星期四");break; case 5:console.log("星期五");break; case 6:console.log("星期六");break; case 7:console.log("星期七");break; default:console.log("请输入1-7之间的数字"); }
case的穿透特性:
在一个switch中,只会进行一次case判断,如果判断成功,后面的case则不会判断全部执行
阻止case穿透
使用关键字break;可以跳出当前循环,后面的都不执行
switch和if-else的区别
switch只能判断具体的值,不能判断范围,不会进行隐式转换
if else可以判断范围
while(){} while //语句名 () //执行条件、判断调价 {} //执行语句循环体 //例: var i = 0; while(i<10){//当括号内的条件为真时,会一直执行 console.log(i);//输出0-9,十个数字 i++;//改变计数器 } //表示重复执行10次 //注意:为避免死循环,一定要在循环体内 改变 条件中使用变量的值-改变计数器。 //通常while被用在不确定执行次数的循环中,循环体内设置if判断,满足条件使用break结束循环,否则一直循环
do{}while(){} do 语句名 {} do的执行语句 while 语句名2 () 执行条件 {} while的执行语句 do{ console.log("do的执行语句"); i++;//改变计数器 }while(i<10){ console.log("while的执行语句"); } //条件为true时,会执行do后面的语句 //条件为false时,会执行一次while后面的语句 //注意:do-while的改变计数器要鞋子啊do语句中,否则会造成死循环 do-while和while的区别 do-while任何情况下都比while多执行一次(do-while无论真假都会执行一次while里的语句) do-while相对于while结构紧密些
for(){} for 语句名 () 条件组 {} 循环体 for(var i = 0; i < 10; i++){ console.log(i);//打印0-9。共十个数字 } for循环括号内的内容 var i=0; //定义循环开始时计数器的初始值 i<10; //设置停止循环的条件,满足条件执行循环,不满足条件结束循环 i++ //计数器加一(这条语句是在循环体内容结束后才执行) //注意:上面的三个内容必须用分号“;”隔开,否则报错 for循环是最长使用的循环,还可进行for循环嵌套 for(var i=0;i<10;i++){ for(var j=0;j<10;j++){ console.log(i+j); } }
无法靠自身控制结束的循环,称为死循环 不知道要循环几次的问题,利用死循环的原理,每次判断一个条件,直到满足条件,利用break跳出循环 通常使用while来进行死循环
continue和break都是用来控制循环结构的,主要是用来停止循环。 控制关键字:控制循环的执行或停止 break:结束循环语句,直接跳出当前循环语句,后面所有的下一次循环都不执行。 continue:表示跳过当前所在的本次循环(continue下面的语句不执行跳过),下一次循环还会正常执行
【推荐学习:javascript高级教程】
以上是javascript有哪些語句結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!