发表于: 2019-04-03 22:39:10

1 642


今天完成的事:

1.完成CSS十四十五

2.开始JS任务一学习

3.学习了逻辑运算符,与或非

4.学习了随机函数Math.random


明天的计划:

1.继续JS任务一学习

2.学习JS计时器,延时器

3.学习《JS高程》第五章,引用类型


遇到的问题:

1.今天犯了一个小错误,在给函数命名的时候,加了空格,导致整个函数无效,函数的命名最好用驼峰命名,不能加空格


收获:


逻辑运算符


JavaScript的逻辑运算符和其他语言(比如:java、c#、c等)有着很大的不同。其他那些强类型的语言的
逻辑运算符参数运算的都是truefalse,结果也一定是truefalse,很容器理解和记住。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
Booleanfalsetrue
String" " 空字符串非空字符串
Number0 和 NaN任何非零(包括无穷大)
Objectnull (空对象)任何对象
Undefinedundefined
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() 返回数字最接近的整数,四舍五入






返回列表 返回列表
评论

    分享到