今天完成的事:
1.完成CSS十四十五
2.开始JS任务一学习
3.学习了逻辑运算符,与或非
4.学习了随机函数Math.random
明天的计划:
1.继续JS任务一学习
2.学习JS计时器,延时器
3.学习《JS高程》第五章,引用类型
遇到的问题:
1.今天犯了一个小错误,在给函数命名的时候,加了空格,导致整个函数无效,函数的命名最好用驼峰命名,不能加空格

收获:
逻辑运算符
JavaScript的逻辑运算符和其他语言(比如:java、c#、c等)有着很大的不同。其他那些强类型的语言的
逻辑运算符参数运算的都是true或false,结果也一定是true或false,很容器理解和记住。而JavaScript
的"逻辑运算符"参与运算的可以是任意类型,结果也可能是任意类型,规则及其复杂。所以,JavaScript中,
他们已经不是真正的"逻辑运算符"了,所以我才给他们打上引号。
一个重要的规则!
逻辑运算符可以把其他数据类型转化为布尔类型, null / undefined / 0 / NaN / 空字符串 统统都转换为flase, 其他不是以上的,都转化为true
(1)逻辑非 !
根据以上规则,逻辑非是把所有 null undefined 0 nan “” 空字符串都转化为true,这就是求反
———逻辑菲菲!! 可以得到真正的布尔值 (求反再求反 负负得正)


(2)逻辑与 && 操作符
这个逻辑比较奇特,和其他语言不一样(其他是指 强类型语言)——短路操作
如果如果第一个操作数是false,结果就是false;第一个操作数是true(或者能够转为true),计算结果就是第二个操作数,对于一些特殊数值不遵循以上规则???
(栗子1)
(栗子2)
100是数值,可以转化为true,所以&&的结果是后面的数 // 200
“”是空字符串,在Boolean中,空字符串会被转化为flase,所以短路操作,结果就是空
总结一下:在&&与中,第一位如果是false,或者会被转化为false的,结果直接就是第一位的值。 那么有哪几种情况? 根据以下表格,如果逻辑与的第一位,遇到第二列的所有情况,那么直返回第一位的值
数据类型 | 转化为false | 转化为true |
Boolean | false | true |
String | " " 空字符串 | 非空字符串 |
Number | 0 和 NaN | 任何非零(包括无穷大) |
Object | null (空对象) | 任何对象 |
Undefined | undefined | n/a 不适用 not applicable |
下面是小实验—— 第一位是false 和会被转化成flase的数,无论第二个是什么,结果都是第一位的数


(3)逻辑或 ||
也是短路操作符,如果第一位是false,就会直接跳到第二个值
------------------------------------------
Math.random() 方法:
Math.random() 随机数,0--1之间
Math.floor(Math.random()*10+2) 指定了在2--10之间
补充:
Math.ceil() 返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入
Math.floor() 返回小于等于数字参数的最大整数,对数字进行下舍入
Math.round() 返回数字最接近的整数,四舍五入
评论