解析Js中和、|和||运算符的区别和运算过程

news/2024/7/3 23:44:24

| 和 &属于位运算符,而 || 和 && 属于逻辑运算符。

&运算符

先在浏览器控制台,举个例子:
在这里插入图片描述
为什么 234 & 456 打印的结果是200?
&的运算步骤:

  1. 先把234,456两个十进制的数字转换成二进制分别为:11101010,111001000
  2. 把11101010补齐八位与111001000位数相同,为011101010
  3. 比较011101010和111001000,对应位数上数字相同记相同的数,不同则为0,得出得结果为011001000。也可以理解为,对应尾数上如果有0则输出0,都为1时才输出1.
类型二进制
234011101010
456111001000
比较结果011001000
  1. 把两个二进制数比较结果在转成十进制,结果为200

&&运算符

同样,现在浏览器控制台,举个例子:
在这里插入图片描述
此时你可能会疑问,&&运算符不是逻辑运算符吗,不是一般在if语句里面使用,判断真假的吗,234&&456返回的结果不应该boolean类型的值吗?为何返回的是456呢?
没错。&&是逻辑运算符,但是它也有自己的运算步骤,看完下面的运算步骤你就会明白。
&&的运算步骤:

  1. 把234放入到Boolean()方法中,Boolean(234)返回的结果为true
  2. 234为true即输出下一位,所以结果为456

所以&&的运算规律是,从左到右开始逐个运算,当自身为true的时候才进行下一个运算,当下一位为最后一位时,返回最后一位。当自身为false时,返回自身
在控制台验证一下:
在这里插入图片描述

|运算符

案例:
在这里插入图片描述
|的运算步骤:

  1. 先把234,456两个十进制的数字转换成二进制分别为:11101010,111001000
  2. 把11101010补齐八位与111001000位数相同,为011101010
  3. 比较011101010和111001000,对应位数上存在1则输出1,都为0的时候才输出0,得出得结果为111101010。
类型二进制
234011101010
456111001000
比较结果111101010
  1. 把两个二进制数比较结果在转成十进制,结果为490

|| 运算符

案例:
在这里插入图片描述
|| 的运算步骤:

从左到右第一个开始取数,用boolean()方法判断真假。如果当前为真,则输出当前,如果为假则取下一位重复上一步骤,输出最后一位。


http://www.niftyadmin.cn/n/3654633.html

相关文章

神州数码:我国市民卡发展之路探讨

编者语:说起神州数码,大家都知道是我国IT巨头,最近两年来,神州数码在市民卡领域不断开拓业务,并取得业界领先的位置,受到不少的关注,为了比较系统地了解和分析我国市民卡当前的现状及探讨未来发…

孔乙己之五----虚函数(下)

本文作者:sodme本文出处:http://blog.csdn.net/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.本文所需代码可从以下地址获得( 此地址含有多继承c和asm代码 ):http://sodme.dev.googlepages.com/…

js对象的构造函数与原型

从__proto__属性说起 我们都知道,javascript创建对象一般有两种方式: 方式一:通过字面量创建,例如: var obj {} //创建一个空对象 var obj1 { name :js} //创建带属性的对象方式二:通过new关键字,如&am…

小品: 关于C++引用

此文缘起我看了这篇文章:http://blog.csdn.net/newslxw/archive/2006/08/08/1038972.aspx 还记得当年读书时, 牛牛的C老师告诉我: "引用, 其实就是别名, 与其所引用的对象完全等价". 可是, 我还是有这点疑问: "等价的含义, 是指的什么? 难道是说在最底层的实现…

搞懂Js中的this,call和apply方法

为了更好的看懂这篇文章,建议先要理解js对象的原型和原型链相关的知识,若不了解,可以看上一篇文章《js对象的构造函数与原型》 this的理解 在全局中使用this,this为window对象谁调用了对象中属性,this就是谁this.xxx…

Lua入门系列----pil学习笔记之Getting Start

本文作者:sodme本文出处:http://blog.csdn.net/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.很多高深的人物都说过类似的话:"语言层面的东西, 都是表面的东西, 最核心的是设计模式, 是算法…

js中hasOwnProperty和instanceof的使用

hasOwnProperty hasOwnProperty方法是用来判断某个属性是否是属于自身对象的,该方法仅用于判断自身对象,不会查找原型链。 案例如下: Person.prototype.name 原型 Person.prototype.myFc function(){}function Person(){this.age 18this.…

Lua入门系列----pil学习笔记之 Type and Values (1)

本文作者:sodme本文出处:http://blog.csdn.net/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.参考资源:http://www.lua.org/pil/ 一 个小小的脚本语言都能玩出这么多花样来&#xff…