你可能不知道的JavaScript位运算符详解

你可能不知道的JavaScript位运算符详解

介绍

在JavaScript中,除了常用的加减乘除运算符,还有一些位运算符。这些运算符可以对给定的数字进行二进制位操作。本文将为你详细讲解这些运算符。

位运算符分类

JavaScript中一共有7种位运算符,可以分为以下几类:

  • 按位与运算符(&)
  • 按位或运算符(|)
  • 按位异或运算符(^)
  • 左移运算符(<<)
  • 有符号右移运算符(>>)
  • 无符号右移运算符(>>>)
  • 取反运算符(~)

按位与运算符(&)

按位与运算符(&)同时处理两个数字的二进制表示。只有两个数字都是1的位才会变成1,其他情况均为0。

示例:

const a = 5; // 二进制表示为101
const b = 3; // 二进制表示为011
const result = a & b;
console.log(result); // 输出为1,即0001

按位或运算符(|)

按位或运算符(|)同时处理两个数字的二进制表示。只要两个数字中有一个为1的位就会变成1。

示例:

const a = 5; // 二进制表示为101
const b = 3; // 二进制表示为011
const result = a | b;
console.log(result); // 输出为7,即0111

按位异或运算符(^)

按位异或运算符(^)同时处理两个数字的二进制表示。只有两个数字中对应位不同时才会变成1,否则为0。

示例:

const a = 5; // 二进制表示为101
const b = 3; // 二进制表示为011
const result = a ^ b;
console.log(result); // 输出为6,即0110

左移运算符(<<)

左移运算符(<<)将一个数字的二进制表示向左移动指定的位数。左移运算符将数字右侧的空位用0填充。

示例:

const a = 5; // 二进制表示为101
const result = a << 2;
console.log(result); // 输出为20,即10100

有符号右移运算符(>>)

有符号右移运算符(>>)将一个数字的二进制表示向右移动指定的位数。有符号右移运算符将左侧的空位用数字的符号位(即正数填充0,负数填充1)填充。

示例:

const a = -5; // 二进制表示为11111111111111111111111111111011
const result = a >> 2;
console.log(result); // 输出为-2,即11111111111111111111111111111110

无符号右移运算符(>>>)

无符号右移运算符(>>>)将一个数字的二进制表示向右移动指定的位数。无符号右移运算符将左侧的空位用0填充。

示例:

const a = -5; // 二进制表示为11111111111111111111111111111011
const result = a >>> 2;
console.log(result); // 输出为1073741822,即00111111111111111111111111111110

取反运算符(~)

取反运算符(~)将一个数字的二进制表示取反。即0变为1,1变为0。

示例:

const a = 5; // 二进制表示为101
const result = ~a;
console.log(result); // 输出为-6,即11111111111111111111111111111010

结论

以上就是JavaScript中常用的位运算符,它们可以处理数字的二进制表示,进行一些特殊的操作。在实际编程过程中,可根据需要选择使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:你可能不知道的JavaScript位运算符详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 一些老手都不一定知道的JavaScript技巧

    一些老手都不一定知道的JavaScript技巧 1. 用单行代码实现一个简单的深拷贝 const deepCopy = obj => JSON.parse(JSON.stringify(obj)) 这个单行代码利用了JSON对于Object类型的序列化和反序列化功能,先将对象序列化为字符串,再将字符串反序列化为Javascript对象。这种方式可以实现…

    JavaScript 2023年5月18日
    00
  • C#后台调用前台javascript的五种方法小结

    下面是详细讲解“C#后台调用前台javascript的五种方法小结”的完整攻略。 简介 在Web开发中,经常会需要在C#后台中调用前台的JavaScript函数,实现前后台数据的交互。本篇文章将介绍五种方法,分别是: RegisterClientScriptBlock:在页面中注册客户端脚本代码块; RegisterStartupScript:在页面中注册客…

    JavaScript 2023年5月27日
    00
  • 关于Javascript 对象(object)的prototype

    Javascript对象的prototype 在Javascript中对象是至关重要的部分,所有对象都是通过原型继承而来的。原型指的是任何Javascript对象都有一个指向原型的链接,可以通过该链接来访问原型对象的属性和方法。 为了更好的理解Javascript对象的prototype,需要首先了解Javascript中的几个重要概念: 原型链(proto…

    JavaScript 2023年5月27日
    00
  • JavaScript学习笔记之函数记忆

    JavaScript学习笔记之函数记忆攻略 什么是函数记忆 函数记忆是一种提高程序效率的技巧,它利用了JavaScript中对象的属性访问速度比函数调用速度快的特点。通常使用函数记忆的场景是在函数的计算结果可以被缓存的情况下,避免重复计算,从而提高程序的性能。 如何实现函数记忆 函数记忆主要是通过缓存函数的计算结果来实现的。缓存可以使用对象来实现,对象的属性…

    JavaScript 2023年5月27日
    00
  • 面试官常问之说说js中var、let、const的区别

    让我来给你详细讲解一下“面试官常问之说说js中var、let、const的区别”。 区别概述 在JavaScript中,变量声明有三种方式:var、let和const。它们之间的区别主要在于作用域、值的可变性和赋值方式。 var: 可以重复赋值,不存在块级作用域,声明的变量会被提升到所在函数的顶部。 let: 允许块级作用域,不能重复声明,可以更改已经赋值的…

    JavaScript 2023年6月11日
    00
  • js实现内容显示并使用json传输数据

    让我来详细讲解一下”JS实现内容显示并使用JSON传输数据”的攻略。 什么是JSON JSON(JavaScript Object Notation),是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON采用键值对(key-value)的方式表示数据,是当今最常用的一种数据格式之一。 JS实现内容显示 使用JS实现内容显示有很多方…

    JavaScript 2023年5月27日
    00
  • javascript实现计时器的简单方法

    下面我将为你详细讲解“Javascript实现计时器的简单方法”的攻略。 前言 在Web应用程序中,我们经常需要实现一些计时相关功能,例如倒计时、计时器等等。Javascript提供了很多实现计时相关功能的方法,其中比较常见的是使用setInterval()函数实现计时器。 实现思路 实现一个计时器的主要思路是:获取计时的开始时间start_time,然后不…

    JavaScript 2023年5月27日
    00
  • JavaScript简单验证表单空值及邮箱格式的方法

    JavaScript简单验证表单空值及邮箱格式的方法 在网页开发中,表单验证是非常常见的需求。本文将介绍JavaScript简单验证表单空值及邮箱格式的方法,帮助开发者完成表单验证功能。 表单空值验证 在表单提交时,我们需要验证用户是否填写了表单中的必填项。下面是一个简单的表单空值验证方案: function validateForm() { var x =…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部