1,流程控制語句
01) if語句
if(condition){
statement1
}else{
statement2
}
condition表示任意表達式,該表達式求值的結果不必定是布爾類型,若是不是布爾類型,ECMAScript會調用Boolean() 轉換函數將這個表達式結果轉換爲一個布爾類 型,若是condition求值結果爲true,執行statement1。若是求值結果爲false,執行statement2express
if(condition){
statement1
}
statement2函數
while(true){
var text=prompt("請輸入一個數");
var num=Number(text);
if(num){
if(num%3==0){
alert("該數是3的倍數。");
}else{
alert("該數不是3的倍數。");
}
}else{
alert("從新輸入。");
}
if(text==""){
break;
}
}
alert("歡迎下次使用!");oop
02)switch語句
switch(expression){
case val:post
break;性能
case val2:測試
break;
default:
}
能夠在switch語句中使用任何數據類型。
case的值不必定是常量,也能夠是變量,甚至是表達式。對象
執行原理
condition === 常量
break 每一個case語句的結尾都應該有break
default語句若是位於代碼的最後,結尾不須要break,反之,則須要ip
var day = prompt("請輸入您要轉換的數字");
day = +day;// day = Number(day);
if(day && day>=1 && day<=7){
switch(day){
default:
console.log("週日");
break;
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;
}
}else{
console.log("不合法輸入");
}作用域
2. 循環語句
01)for語句
for循環是一種前測試循環語句,但它具備在執行循環以前初始化變量和定義循環後要執行的代碼的能力。如下是for循環的語法:
初始化表達式,控制表達式,循環後表達式
for(initialization;expression;post-loop-expression){
//loop option
}
例如:
var sum = 0;
for(var i=0;i<10;i++){
sum +=i;
}
console.log(i); //10it
//九九乘法表
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
//document.write("★"+"<br />");
document.write(j+"*"+i+"="+i*j+" ");
}
document.write("<br />")
}
//輸出10行10列★
for(var i=1;i<=10;i++){
for(var j=1;j<=10;j++){
document.write("★");
}
document.write("<br />")
}
/*
var i;
i = 1;
i<=100 //true
total +=i // total 1
++i; // i=2
i<=100 //true
total +=i //total 3
++i; //i=3
i<=100 //true
total+=i //total 6
++i //i=4
...
i<=100;
total+=i
++i //i=101
i<=100
*/
var total = 0;
var i;
for(i=1; i<=100; ++i) {
total += i;
}
console.log(total);
console.log(i);/*js沒有塊級做用域*/
//for循環輸出1-100之間全部的質數(只能被1和自身整除的數,不包括1)
for(var i=2;i<=100;i++){ //質數
for(var a=2;a<=i;a++){ //除數
if(i%a==0 && i!=a){ //排除全部在i=a以前能被a整除的數
break;
}
else if(i%a==0 && i==a){ //輸出全部在i=a且i%a=0的數
console.log(i);
}
}
}
ECMAScript不存在塊級做用域,在循環內部定義的變量也能夠在外部訪問到
死循環
for(;;){
//當for中的表達式省略的時候,會建立一個死循環
}
while(true){
}
02) do-while語句
初始化條件
do{
迭代條件
循環體
}while(結束條件);
後測試循環語句,即只有在循環體中的代碼執行以後,纔會測試出口條件。循環體內的代碼最少被執行一次。
/*
var total = 0;
var i = 1;
total +=i ; //total= 1
i++ //i =2
i<=100; //true
total +=i; //total = 3
i++ //i = 3
i<=100 //true
...
total +=i
i++ //i=101
i<=100 //false結束循環
*/
var total = 0;
var i=1;
do{
total+=i;
i++;
}while(i<=100);
console.log(total);
console.log(i);
03) while語句
初始化條件;
while(結束條件){
//循環體
迭代條件
}
前測試循環語句,即在循環體內的代碼被執行以前,就會對出口條件求值。所以,循環體內的代碼有可能永遠不會被執行。
while(false){
//
}
/*
var total = 0;
var i = 1;
i<=100; //true
total +=i; //total = 1
i++; //i = 2
i<=100 //true
total +=i //total = 3;
i++; //3
...
i++ //i=101
i<=100 //false 終止循環
*/
var total = 0;
var i = 1;
while(i<=100){
total += i;
i++;
}
console.log(total);
console.log(i);
04) for-in 語句
是一種精準的迭代語句,能夠用來枚舉對象的屬性
for(property in expression){
statement
}
例如:
打印出window對象中全部的屬性
for(var propName in window){
console.log(propName);
}
label 語句
使用label能夠在代碼中添加標籤,以便未來使用
label : for(int i=0;i<10;i++){
if(i == 5){
break label;
}
}
循環關鍵字
break 跳出循環體
for(var i=0;i<10;i++){
if(i==5){
break;
}
}//0,1,2,3,4 直接跳出循環
continue 結束本次循環,進行下一次循環
for(var i=0;i<10;i++){
if(i==5){
continue;
}
}//0,1,2,3,4,6,7,8,9 跳出本次循環,繼續下次循環
3. 特殊語句 with語句 主要做用是將代碼的做用域設置在一個特定的對象中,定義with語句的主要目的是爲了簡化屢次訪問同一個對象的工做,可是大量使用with語句會致使性能降低,而且難以維護,因此不建議使用。 例如: var person = { name:'terry', age:12, gender:'男' } 要想訪問person對象中的屬性須要: console.log(person.name); console.log(person.age); console.log(person.gender); 可是還能夠經過with語句來實現 with(person){ console.log(name); console.log(age); console.log(gender); }