比较运算符,逻辑运算符
比较运算符
“>”,”<”,”==”,“>=”,“<=”,”!=”
比较结果为boolean值
字符串之间的比较的是ASCII码
看一些比较特殊的运算符:
undefined == undefined true
Infinity == Infinity true
NaN == NaN false 特例:NaN不等于任何东西。这是一个规则。
逻辑运算符
“&&”,“||”,“!“
运算结果为真实的值
&&运算符会:先看第一表达式转换为Boolean值的结果,如果结果为真,那么它会看第二个表达式转换成布尔值得结果,然后如果只有两个表达式的话,只要看到第二个表达式,就可以返回该表达式的值了。
var a = 1 && 2 + 2;
document.write(a);//a的值为4
1的Boolean为真,看第二个表达式结果为4
var a = 0 && 2 + 2;
document.write(a);//a的值为0
0的Boolean为false,不看下面的表达式了,直接返回第一个表达式的值。
0 && document.write ('a');//如果。。。那么。。
(短路语句)
可以用做判断后端传给前端的值是否有意义
例如:
var data = ...;//后端传过来的值,用变量data存储
date && 执行一个语句,会用到data//判断data变量里的数据是否可执行。
一般在公司用ajax的时候都这么写:
data && fn(data); function里面传参数,这个参数没意义就不执行。
&&碰到假就停 ||碰到真的就停
||举例:
div.onclick = function (e) {
非IE浏览器
var event = e ;e代表一个事件对象
IE浏览器
var event = window.event;
||写兼容
var event = e || window.event;
}
!自身取反
典型例子:
var a = !123;
document.write(a);//返回flase
var a = !"";
document.write(a);//返回true
var a = !!"";
document.write(a);//返回flase
被认定为false的值
undefined, null, NaN, “”, 0, false
条件语句
微店一个很恶心的题
var x = 1;
if(function f() {}) {
x +=typeof f;
}
console.log(x);
因为括号,变成表达式,就不是函数定义了,f就消失了。
未经声明的变量直接使用只有
typeof不报错。返回的还是字符串类型的,所以最后的结果是
字符串类型的1undefined
例子:
var score = parseInt(window.prompt('input'));//申明一个变量score接收用户输入的值。
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('hehe');
}else{
document.write('error');
}
==使用else if 一定要满足条件互斥。==
if(1 > 2) {
document.write('a');
}
1 > 2 && document.write('a');.//用&&形式是一样的
循环语句
for(var i = 0; i < 10; i++) {
document.write('a');
}
for循环执行顺序
1.var i = 0;
2.if(i < 10) {
ducument.write('a');
}
3.i++; --> i = 1;
4.if(i < 10) {
ducument.write('a');
}
5.i++; --> i = 2;
先执行1,判断2,执行语句,再执行3,
然后判断2,执行语句,再执行3,以此类推。
知道i=10,循环终止。
有一种灵活的写法同样可以执行十次并终止循环。
var i =1;
for(;i;){
document.write('a');
i++;
if(i == 11) {
i = 0;
}
}
打印0-9的写法
var i = 1;
for(var i = 0; i < 10; i++) {
document.write(i);
}
计算0-9的和的写法
var i = 1;
var count = 0;
for(var i = 0; i < 10; i++) {
count += i;
document.write(count);
}
打印100以内能被3或5或7整除的数
for(var i = 0; i < 100;i++) {
if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) {
document.write(i);
}
}
拓展一下思维:例如:打印100个数。
var i = 100;
for (; i-- ;) {
document.write(i);
}
i到0就停止循环了。
while循环:是for循环的简化版
var i = 0;
for(;i < 10;) {
document.write(i);
i ++;
}
while(i < 10) {
document.write(i);
i ++;
}
写个小例子:while循环100以内逢7就打印
var i = 0;
while(i < 100) {
if(i % 7 == 0 || i % 10 == 7) {
document.write(i);
}
i++;
}