比较运算符
">","<","==",">=","<=","!="//!=是否不等于
比较结果为boolean值
逻辑运算符
"&&","||","!"
运算结果为真实的值
被认定为false的值
if、if else if
if<——> && 转换
for
while, do while
if(条件) {
执行语句
}
2.if ( i < 10) {
document.write('a');
}
3.i++; --> i = 1;
先执行一遍(1)
判断(2) 执行语句
执行(3)
判断(2) 执行语句
执行(3)
判断(2) 执行语句
执行(3)
判断(2) 执行语句
执行(3)
直到(2)条件不成立,停止循环
5! = 5 * 4 * 3 * 2 * 1;
4! = 4 * 3 * 2 * 1;
1 1 2 3 5 8 输出第n项
456 % 10 == 6
456 - 6 == 450
450 % 100 == 50
50 / 10 == 5
450 - 50 == 400
400 / 100 == 4
">","<","==",">=","<=","!="//!=是否不等于
比较结果为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;
}