细化:逻辑运算符+赋值运算符+关系运算符

逻辑运算符

 /*  JS中提供了三种逻辑运算符  &&与,||或, !非
! 非
!可以对一个值进行非运算,就是对布尔值进行取反操作,true变false,false变true。!!两次取反不会变化,!a!a;
如: /* 1、!非运算 var a = true;
a = !a;
console.log('a = '+q);
显示:"a = false"
如果对非布尔值进行运算,则会将其转换为布尔值,然后再取反
var b = 10;
// b = !b;
console.log('b ='+b);---------显示:10-------//!使用后显示:false(true转false)
console.log(typeof b);---------显示number------//!使用后显示:Boolean(number转布尔值)
可以利用这一特点将其他的数据类型转化为布尔值
可以为任意数据类型取两次反,来将其转换为布尔值,原理和Boolean()函数一样
例子:
var 啊= “hello”;
a = !!a: //true
&& 与
&&可以可以对符号两侧的值进行与运算,并返回
var result = true && true-----result取值,返回(显示)true
//如果两个值都是true,才会返回true
//只要有一个值为false,就返回false
result = false && false;--------显示false
result = false && true;--------显示false
result = true && false;--------显示false
console.log(‘result =’+result);
如果第一个值为false,则不会看第二个值。第一个值为true,则需要检查第二个值。

|| 或
||可以对符号两侧的值进行或运算并返回结果
||两个都是false ||,则返回false;
如: result = false || false;
显示:false
运算规则: 只要有一个true,就返回true。两个都是false ||,则返回false;
result = true || false;---显示true
result = false || true;---显示true
result = true || true;---显示true
console.log(‘result =’+result);
JS中的或属于短路的或,如果第一个值为true,则不会看第二个值。
// false || alert("123");
如果第一个值为false,则需要检查第二个值。
// true || alert("123");





&& || 非布尔值的情况
对于非布尔值进行与或运算时,会先将其转换为布尔值然后再运算,并且返回原值
//true && true
var result = 1 && 2;(会转为布尔值运算,但是返回的时候返回的是1或者2原值1和2都是true
与运算,如果两个值都为true,则返回后边的值,----此时返回是2
console.log(“result = ”+result);
最重要的:【与运算如果一个值为true,则必然返回第二个值
( 如果第一个值为false,就直接返回false)--注意返回的都是原值不是true和false】
var result = 5 && 6;(第一个值为true,第二个值无论是true还是false都直接返回了)

//与运算,如果两个值中有false,则返回考前的false
当是false && true
result= 0 && 2;返回 result = 0---false(0是false,直接返回false也就是返回0)
result= 2 && 0;(一个true,一个false。选择考前的false,选择0)
当是false && false
result= NaN && 0;(两个都是false返回前面的值)-----返回NaN(NaN,0两个false,选择靠前的false,显示NaN)
result= 0 && NaN;------返回 0(0,NaN两个false,选择靠前的false,显示0)

规则:&&找false,第一个值为false直接返回。第一个值为true,直接返回第二个值!


||或的情况
//true || true
result 1 || 2;返回值显示 1(如果第一个值是true,直接返回第一个值。不管后面是0,还是NaN)
result NaN|| 1;//如果第二个值为false,则直接返回第二个值,显无论后面是0还是1,都返回第二个值。
最重要的:或运算,找true,如果第一个值是true,直接返回第一个值。如果第一个值为false,则直接返回第二个值。
result = " " || "hello"; 显示:hello
result = -1 || "你好"; 显示:-1

赋值运算符+关系运算符
1、 赋值运算符
  =
可以将符号右侧的值赋值给符号左侧的变量(=/+=)
var a = 123;---利用console.log(a)求值
+= (属于一个运算符,中间不用加上加号!)
var a = 10;
a = a + 5;等价于 a+=5;
console.log("a = "+a)------显示“a = 15"
-=
a -= 5;等价于a = a - 5;(a = a -5,10-5 = 5)
console.log("a = "+a)-----显示 ”a = 5"
*=
a *= 5,等价于a = a × 5;
/=
a /= 5,等价于a = a / 5;
%=
a %= 5,等价于a = a % 5


2、 关系运算符
通过关系运算符可以比较两个值之间的大小关系,如果关系成立它会返回true,如果关系不成立它会返回false
> 判断左大于右,关系成立返回true,如果关系不成立返回false
var result = 5 > 10; //显示false
result = 5 > 4; //显示true
result = 5 > 5; //显示false
console。log("result = "+result);
>= 判断左侧值是否大于等于右侧的值。关系成立返回true,如果关系不成立返回false
result = 5 > 5; //显示true
result = 5 > 4; //显示true(表示大于或等于,5>4,显示true)
< 小于号
<=小于等于
result = 5 <= 4; //显示false
result = 4 <= 4; //显示true
非数值的情况
console.log(1 > "0"); //true("0‘字符串转为数字,运算后返回true或false
console.log(1 > null);//true---null转回数字是0.10>0.
任何值和NaN,做比较都是false
console.log(1 > "hello");//false ----"hello"转为数字是NaN
console.log(true > false);//true
如果符号两侧的值都是字符串,不会将其转换为数字经行比较而会分别比较字符串中字符的Unicode编码
console.log("1" < "5");//true
console.log("11" < "5")//true--(字符串和字符串进行比较,两边第一位1的编码0031.5的编码0035.1<5,所以是true)后面的数值就无关了
如: console.log("a" < "b")//true(a的Unicode编码是0061.b的Unicode编码是0062.0061<0062---所以显示true)
注意:比较字符串编码时,是一位一位进行比较,("abc"<"b")还是小于true,原因是,a和b比,a<b,后面的值将无需比较
如:("bbc"<"b")显示false.bb等于,第二位b与空值比,大于。所以为假
如果两位一样,则比较下一位,借它来对英文进行排序,比较中文没有意义
// 如果比较两个字符串的数字时,将得到不可预期的结果.
!!!注意:如果比较两个字符串的数字时,一定要转型!!!
console.log("11123123123123123123" < "5")//true
console.log("11123123123123123123" < +"5")//false
//重点记忆+"5"是将字符串转为了数字
posted @   LiLime  阅读(71)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示