比较运算符,逻辑运算符,条件语句,循环语句

比较运算符
">","<","==",">=","<=","!="//!=是否不等于
比较结果为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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章