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

yizhihongxing

你可能不知道的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日

相关文章

  • delete 语法的本质深入解析

    针对删除数据表中某些数据行的 delete 语法深入解析,我们可以分以下几个方面来讲解。 1. delete 语法的语法结构 delete 语法是 MySQL 中删除数据表中某些数据行的语法,其基本语法结构如下所示: DELETE FROM 表名 WHERE 条件; DELETE FROM 表名 表示删除表中某些数据行 WHERE 后紧跟着的就是删除操作的条…

    JavaScript 2023年6月10日
    00
  • JS面向对象编程之对象使用分析

    关于JS面向对象编程之对象使用分析,我为您提供如下完整攻略: 什么是对象 首先,我们需要了解对象的概念和基本特征。对象是一种复合数据类型,它将各种数据结构封装在一起,表示某一个东西。对象的每个属性都有一个键(或者说叫属性名)和值,键可以是字符串或者符号,值可以是任意数据类型,包括基本数据类型、对象、函数等。对象可以通过字面量、构造函数和对象实例三种方式创建。…

    JavaScript 2023年5月27日
    00
  • ES6所改良的javascript“缺陷”问题

    ES6是JavaScript的一项重大更新,带来很多新的特性和增强,使得JavaScript成为一门更加强大、易读且易理解的编程语言。然而,ES6改良了一些JavaScript的一些缺陷,下面详细讲解一些常见的问题以及解决方案。 1. 变量声明的问题 在ES5及以前,声明变量只能使用var关键字,这导致了一些问题。例如,变量提升会使得代码变得难以理解;变量声…

    JavaScript 2023年6月10日
    00
  • JavaScript基础重点(必看)

    JavaScript基础重点(必看) JavaScript是一种用于网页开发的脚本语言,广泛应用于前端开发中,熟练掌握JavaScript基础是成为一名优秀的前端开发工程师的必要条件。 本篇攻略旨在讲解JavaScript的基础重点,包括基本语法、变量、数据类型、运算符、流程控制以及函数等知识点。下面是详细的讲解。 基本语法 JavaScript中的基本语法…

    JavaScript 2023年5月17日
    00
  • 详解javascript如何在跨域请求中携带cookie

    跨域请求中携带Cookie需要进行一些特殊的处理,下面我将从几个方面来讲解如何在跨域请求中携带Cookie。 什么是跨域请求? 在Web开发中,浏览器有同源策略,即只能向同域名、同协议、同端口的服务器端口发送请求。如果客户端需要和非同源的服务器进行通信,就会触发跨域请求。 为什么默认情况下跨域请求无法携带Cookie? 在默认情况下,跨域请求是不会携带Coo…

    JavaScript 2023年6月11日
    00
  • JavaScript起点(严格模式深度了解)

    JavaScript起点(严格模式深度了解) 什么是严格模式? 严格模式是 ECMAScript 5 引入的一种运行模式,主要作用是弥补了 JavaScript 语言本身一些缺陷,提高了代码的运行效率,增强了安全性。通过开启严格模式,可以使 JavaScript 代码更加规范、更加安全、更加高效。 开启严格模式有两种方式: 在全局环境中使用 ‘use str…

    JavaScript 2023年5月19日
    00
  • JavaScript+Canvas模拟实现支付宝画年兔游戏

    概述 支付宝画年兔游戏是一款通过移动画笔,在画板上完成兔子图案的互动游戏。该游戏采用JavaScript+Canvas技术,将用户操作实时绘制在canvas画布上,使用户能够实现交互式的绘图体验。本文将详细介绍如何使用JavaScript+Canvas技术实现支付宝画年兔游戏。 准备工作 在开始实现支付宝画年兔游戏之前,需要做以下的准备工作: 确定绘图工具和…

    JavaScript 2023年6月11日
    00
  • javascript(js)的小数点乘法除法问题详解

    针对“javascript(js)的小数点乘法除法问题详解”的完整攻略,我来为你详细讲解。 1. 问题概述 在 JavaScript 中,小数点乘法和除法时,所得结果可能存在精度问题,也就是说,最终计算结果可能会与预期结果不同。这是因为,在 JavaScript 中,小数点数值实际上被保存在计算机以二进制表示的内存中,而二进制无法准确地表示一些十进制数,因此…

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