">","<","==",">=","<=","!="//!=是否不等於
比較結果爲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;
}