[TOC]
问题:
有一篮苹果,两个两个的拿剩一个,三个三个的拿剩一个,四个四个的拿剩一个,五个五个的拿剩一个,六个六个的拿剩一个,七个七个的拿,能拿完,请问这篮子里有多少个苹果?
(一) if else 语句 demo1
// 条件为true, 执行if后面的括号代码, 否则执行 else 后面括号代码
if(条件) {
// todo
}else{
// todo
}
// 多重判断
if(){
} else if() {
} else {
}
(二) 类型转换
- 隐式转换 demo2-1
运算的过程中, 类型自动进行转换, 称之为隐式类型转换 - 显式转换-其他类型转布尔类型 demo2-2
- 转换方法 Boolean(变量名) 和 !!变量名
- 转换结果为 true 或者 false
- 字符串转布尔
- 数字转布尔
- undefined 转布尔
- null 转布尔
- 对象转布尔 ``` 总结:
- 转换方法 Boolean(变量)或者 !!变量
- 意思上若包含’无’,’空’的时候转为false,其他为true
- 对象全部为true ```
- 显式转换-其他类型转数字类型 demo2-3 ```
- 转换方法 Number(变量);
- 转换结果: 数字, 0, NaN
- 字符串转数字
- 布尔转数字
- undefined 转数字
- null 转数字
- 对象转数字
总结: (1)数字的转换结果有三种: 数字, 0 , NaN (2)其他类型转数字类型的时候, 就拿这三种结果区推断, 会是那一个
4. 显式转换-其他数据类型转字符串类型 demo2-4
(1)有三种方式 var num = 20;
- 加减乘除
+ - * / %
demo3-1 两个变量相加规则
(1)两个数字相加,直接相加 (2)有一个加数是字符串时,其它变量都转换成字符串,然后进行拼接 demo3-2.1 (3)NaN,null,undefined + 数字 (4)两个小数相加,有可能出现很多小数 demo3-2.2
-
(四) 关系运算符(比较运算符)
== 等于
- === 恒等于,全等于
- == 和 === 的区别
- == 不同类型的变量进行比较, 不比较变量类型, 类型转换后, 只比较值, 值相等, 则为true, 否则为false
- === 先比较类型, 若类型不同,结果为false, 若类型相同,再比较值, 值相同, 则为true
-
(五) 逻辑运算符
逻辑非!, 取反即可
逻辑与&&: 中文里并且的意思
(1)对于布尔类型: 两者为true,结果为true demo5-2.1 (2)对于其他类型: 前者为true取后者,前者为false取前者 demo5-2.2 (3)逻辑与的妙用: var obj = null; console.log(obj.a); // 报错 console.log(obj && obj.a); // 防止报错
逻辑或|| : 中文里的或者的意思 demo5-2.3
(1)对于布尔类型: 一个为true,结果为true (2)对于其他类型:前者为true取前者, 前者为false取后者
总结: 逻辑与&& 和 逻辑或 ||, 只需要记住两句话
逻辑与: 前者为true取后者,前者为false取前者 逻辑或: 前者为true取前者, 前者为false取后者
资料1: 逻辑运算符练习
1. var num1 = 0;
!num1; // true
2. var num2 = 100;
!num2; // false
!!num2; // true
3. var num3 = NaN;
!num3; // true
4. var str1 = '';
!str1; // true
5. var str2 = 'abc';
!str2; // false
10. 0 && 100; // 0
11. 0 && NaN; // 0
12. 100 && 0; // 0
13. 100 && NaN; // NaN
14. NaN && 0; // NaN
15. NaN && 100; // NaN
16. '' && 'abc'; // ''
17. 'abc' && ''; // ''
18. 'abc' && '456'; // '456'
19. true && true; // true
20. true && false; // false
21. false && true; // false
22. false && false; // false
23. 0 && undefined; // 0
24. NaN && null; // NaN
25. 100 && 'abc'; 'abc'
资料2: 逻辑运算符练习2
6. var boo1 = true;
!boo1; //false
7. var boo2 = false;
!boo2; //true
8. var name;
!name; //true
9. var cat = null;
!cat; //true
var obj;
27. 'abc' && obj.name; //报错
28. undefined && obj.name; //undefined
29. obj && obj.name; // undefined
30. 0 || 100; //100
31. 0 || NaN; //nan
32. 100 || 0; //100
33. 100 || NaN; //100
34. NaN || 0; //0
35. NaN || 100; //100
36. '' || 'abc'; //'abc'
37. 'abc' || ''; // 'abc'
38. 'abc' || '456'; //'abc'
39. true || true; //true
40. true || false;//true
41. false || true;//true
42. false || false;//false
43. 0 || undefined; //undefined
44. NaN || null; //null
45. 100 || 'abc'; //100
46. 'abc' || undefined //'abc'
47. var obj; 'abc' || obj.name; //'abc'
48. undefined || obj.name; //报错
资料3: 编程题练习
编程题, 运算并打印结果
有一篮苹果,两个两个的拿剩一个,三个三个的拿剩一个,四个四个的拿剩一个,五个五个的拿剩一个,六个六个的拿剩一个,七个七个的拿,能拿完,请问这篮子里有多少个苹果?
<script>
for(var i =0;i<=1000;i++){
if (i%2==1 && i%3==1 && i%4==1 && i%5==1 && i%6==1 && i%7==0){
console.log(i);
}
}
</script>
资料4: 作业
编程题: 有以下两个变量 num1 和 num2,若两个变量相加等于 15.3,则输出’运算正确’,否则输出’运算错误’ ```javascript
var num1 = Number(prompt('请输入值')), var num2 = Number(prompt('请再次输入值')), console.log(num1); var b = num1+num2; if ( b == 15.3 ){ console.log('运算正确'); }else{ console.log('运算错误'); }
2. 编程题, 运算并打印结果<br />有一篮苹果,两个两个的拿剩一个,三个三个的拿剩一个,四个四个的拿剩一个,五个五个的拿剩一个,六个六个的拿剩一个,七个七个的拿,能拿完,请问这篮子里有多少个苹果?
2. 写出下面式子的值
```javascript
typeof 100 //number
typeof true //boolean
typeof(undefined) ) //undefined
typeof({}) // obj
typeof( [1,2] ) //obj
typeof(NaN) //Nan
typeof(null) //obj
- 编程题: 多重判断
作业要求: 在屏幕输入一个数字,确定后弹出相应的年龄段 ```javascript 年龄划分: “0-6岁为婴幼儿; 7-12岁为少儿; 13-17岁为青少年; 18-45岁为青壮年; 46-69岁为中年; 69岁以上为老年
5. 写出下面式子的值
```javascript
<script>
'1.23' == 1.23 //true
0 == false //true
null == undefined //true
NaN == NaN //false
1 == '1' //true
1 === '1' //false
1 + '2' === '1' + 2 //true
1 + true === false + 2 //true
1 + null == undefined + 1 //false
'a' - 'b' == 'b' - 'a' //false
4 == '4.00' //true
4 === '4.00' //false
0 == false //true
0 == null //false
null == false //false
加减作业题
var score = 50;
var grade = '7';
score + 10; //60
score + '10'; //'5010'
score + null; //50
score + undefined; //nan
score + NaN; //nan
score + 10; //60
score + '10'; //'5010'
score + null; //50
var num1 = 8;
var num2 = '8';
num1 - num2; //0
num1 - 'web01'; //nan
num1 - null; //8
num1 - undefined; //nan
num1 - true; //9
num1 - false; //8
num1 - num2; //88
</script>