比較運算符,邏輯運算符,條件語句,循環語句

比較運算符
">","<","==",">=","<=","!="//!=是否不等於
比較結果爲boolean值
邏輯運算符
"&&","||","!"
運算結果爲真實的值
被認定爲false的值

undefined, null, NaN, "", 0, false


比較運算符

//比較運算符  ">","<","==",">=","<=","!="
//!=是否不等於
var a = 1 > 2;
document.write(a);//false

var a = 1 < 2;
document.write(a);//ture

var a = "a" > "b";
document.write(a);//false,字符串比較asc碼順序,a97,b98,多個字符的按順序比

var a = 1 == 2;
document.write(a);//false

var a = undefined == undefined;
document.write(a);//true

var a = infinity == infinity;
document.write(a);//true,正無窮

var a = NaN == NaN;
document.write(a);//false,非數不等於任何東西

邏輯運算符

//邏輯運算符  "&&","||","!"
//undefined, null, NaN, "", 0, false ==> 轉換爲布爾值爲false;
//“與”運算符,先看第一個表達式轉換爲布爾值的結果,如果結果爲真,那麼它會看第二個表達式轉換爲布爾值的結果,然後如果只有兩個表達式的話,只要看到第二個表達式,就可以返回該表達式的值了。

var a = 1 && 2 + 2;
document.write(a);//返回4,第一個爲真,直接返回第二個值

var a = 0 && 2 + 2;
document.write(a);//返回0,第一個爲假,返回第一個值

var a = 1 && 2 && 3;
document.write(a);//返回3,如果都爲真,返回最後一個值

var a = 0 && 1 && 1;
document.write(a);//返回0,第一個爲假,返回第一個值

var a = 1 && 0 && 1;
document.write(a);//返回0,第一個爲真,看第二個,第二個爲假,返回第二個值

短路語句

2 > 1 && document.write('a');//如果2 > 1就打印a,如果前面爲真就執行

var data = ...;
data && 執行一個語句,會用到data//短路語句的基本用法

data && fn(data);//看參數是否傳過來了

“或”運算符

//“或”運算符,遇到真就返回,往後算直到遇到真,或返回最後一個值
var a = 1 || 2 + 2;
document.write(a);//返回1,第一個爲真,返回第一個值

var a = 0 || 2 + 2;
document.write(a);//返回2,第一個爲假,返回第二個值

var a = 0 || 0 || 0;
document.write(a);//返回0,如果都爲假,返回最後一個值

var a = 0 || 1 || 1;
document.write(a);//返回1,第一個爲假,看第二個,第二個爲真,返回第二個值

var a = 1 || 0 || 1;
document.write(a);//返回1,第一個爲真,返回第一個值
“或”應用

//“或”應用
div.onclick = function (e) {
	//非IE瀏覽器兼容
	var event = e || window.event;
}

“非”運算符

//“非”運算符,變布爾值取反
var a = !123;
document.write(a);//false

var a = !"";
document.write(a);//true

var a = !!"";
document.write(a);//false

var a = !!0;
document.write(a);//false

var a = !!NaN;
document.write(a);//false

var a = !!undefined;
document.write(a);//false

var a = !!null;
document.write(a);//false

var a = true;
a = !a;
document.write(a);//false
條件語句
if、if else if
if<——> && 轉換
for
while, do while


if(條件) {
執行語句
}
//條件轉換爲布爾值,條件成立就執行,true就是成立
//&&叫並且,||叫或者
if(1 > 0 && 8 > 9) {
	document.write('a');
}

var score = parseInt(window.prompt('input'));//彈出一個表單輸入值
document.write(score);


if(score >= 90 && score < 100) {
	document.write('alibaba');
}
if(score >= 80 && score < 90) {
	document.write('tencent');
}
if(score >= 70 && score < 80) {
	document.write('baidu');
}
if(score >= 60 && score < 70) {
	document.write('mogujie');
}
if(score < 60) {
	document.write('oh my god!!');
}
//if語句是會判斷全部的條件
//if else if 滿足第一個條件就不會判斷後面的條件了,一定要滿足條件互斥
if(score >= 90 && score < 100) {
	document.write('alibaba');
}else if(score >= 80 && score < 90) {
	document.write('tencent');
}else if(score >= 70 && score < 80) {
	document.write('baidu');
}else if(score >= 60 && score < 70) {
	document.write('mogujie');
}else if(score < 60) {
	document.write('oh my god!!');
}else{
	document.write('error');//除了以上條件的報錯
}

for循環

for (var i = 0; i < 10; i++) {
	document.write('a');//打印10個a
}
1.var i = 0;
2.if ( i < 10) {
document.write('a');
}
3.i++; --> i = 1;

先執行一遍(1)
判斷(2) 執行語句
執行(3)
判斷(2) 執行語句
執行(3)
判斷(2) 執行語句
執行(3)
判斷(2) 執行語句
執行(3)
直到(2)條件不成立,停止循環
var i = 0;//放外面也可以
for (; i < 10;) {
	document.write('a');//打印10個a
	i++;
}
var i = 1;
var count = 0;//count計數
for (; i ;) {
	document.write('a');//打印10個a
	count ++;
	if(count == 10) {
		i = 0;
	}
}
var i = 1;//i計數
for (; i ;) {
	document.write('a');//打印10個a
	i++;
	if(i == 11) {
		i = 0;
	}
}
var count = 0;
for (var i = 0; i < 10; i++) {
	count += i;//打印0-9的和
}
for (var i = 0; i < 100; i++) {
	if(i % 3 == 0 || i % 5 == 0 ||i % 7 ==0) {
		document.write(i + " ");//打印0-99內能被3、5、7整除的數
	}
}
for (var i = 0; i < 100; i++) {
		document.write(i + " ");//打印0-99
	} 
}
var i = 100;
for ( ;i--;) {
		document.write(i + " ");//打印99-0
	} 
}

while循環

var i = 0;
for(;i < 10;) {
	  document.write(i);
	  i++;
}

var i = 0;
while(i < 10) {
	document.write(i);
	i++;
}
//while循環就是for循環前後不寫東西
//never-ending loop死循環
var i = 0;
while(1) {
	document.write(i);
	i++;
}
var i = 0;
while(i < 100) {
	if(i % 7 == 0 || i % 10 == 7) {
		document.write(i + " ");//0-99能被7整除和帶7的數
	}
	i++;
}

do while循環

var i = 0;
do{
	document.write('a');
	i++;
}while(i < 10)

練習

1.計算2的n次冪,n可輸入,n爲自然數。

1*2
1*2*2
1*2*2*2
1*2*2*2*2

var n = parseInt(window.prompt('input'));
var mul = 1;
for (var i = 0; i < n; i++) {
	mul *= 2;
}
document.write(mul);
2.計算n的階乘,n可輸入

5! = 5 * 4 * 3 * 2 * 1;
4! = 4 * 3 * 2 * 1;
var n = parseInt(window.prompt('input'));
var mul = 1;
for(var i = 1; i <= n; i ++) {
	mul *= i;
}
document.write(mul);
3.著名的斐波那契數列
1 1 2 3 5 8 輸出第n項
//f  s  t
//1  1  2  3  5  8
//   f  s  t

var n = parseInt(window.prompt('input'));
var first = 1,
	second = 1,
	third;
if(n > 2) {
	for(var i = 0; i < n - 2; i ++;) {
	third = first + second;
	first = second;
	second = third;
	}
	document.write(third);
}else{
	document.write(1);
}
4.編寫一個程序,輸入一個三位數的正整數,輸出時反向輸出。如:輸入456,輸出654。
    
    456 % 10 == 6
    456 - 6 == 450
    450 % 100 == 50
    50 / 10 == 5
    450 - 50 == 400
    400 / 100 == 4

    6 * 100 + 5 * 10 + 4

5.輸入a,b,c三個數字,打印出最大的。

var a = parseInt(window.prompt('input'));
var b = parseInt(window.prompt('input'));
var c = parseInt(window.prompt('input'));

if (a > b) {
	if(a > c) {
		document.write(a);
	}else{
		document.write(c);
	}
}else{
	if (b > c) {
		document.write(b);
	}else{
		document.write(c);
	}
}
6.打印出100以內的質數。
//質數只能被1和自身整除

var count = 0;
for(var i = 1; i < 100; i ++) {
	
	//看看每一個i是否是質數
	for (var j = 1; j <= i; j ++) {
		if(i % j == 0) {
			count ++;
		}	
	}
	if(count == 2) {
			document.write(i + "");
	}
	count = 0;
}
var count = 0;
for(var i = 2; i < 100; i ++) {
	
	//看看每一個i是否是質數,Math.sqrt()開方數
	for (var j = 1; j <= Math.sqrt(i); j ++) {
		if(i % j == 0) {
			count ++;
		}	
	}
	if(count == 1) {
			document.write(i + "");
	}
	count = 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章