Atomics.and() In JavaScript Last Updated : 19 May, 2023 Summarize Comments Improve Suggest changes Share Like Article Like Report What is Atomics? Atomics is an object in JavaScript that provides the ability to perform atomic operations as static methods.Just like the Math object in JavaScript all the properties and methods of Atomics are also static.Atomics are used with SharedArrayBuffer(generic fixed-length binary data buffer) objects.Atomics are not constructors like other global objects.Atomics cannot be used with a new operator or can be invoked as a function. Atomics Operations in JavaScript: Multiple threads can read and write the same data in memory when their shared memory is. To ensure that predicted values are written and read accurately, another operation cannot start until and unless the current one finishes. Atomic operations also cannot be interrupted. Atomics.and() Method: Among the Atomic Operations, there is an inbuilt operation Atomics.and() in JavaScript that is used to compute a bitwise AND with a given value at a given position in the array.Atomics.and() operation returns the old value at that position.The integer typedarray, index, and the value are passed as an argument to the function and it returns the value that has been stored in the respective array. Syntax: Atomics.and(typedArray, index, value) Parameters Used: This method accepts three parameters which are described below: typedarray: This parameter specifies a shared integer typed array Int8Array, Uint8Array, Int16Array etc.index: This parameter specifies the position in the array, typedArray to compute bitwise AND.value: This parameter specifies the number to compute bitwise AND with. Return value: The Atomics.and() method returns the old value at the given position(typedArray[index]). Examples: Input : arr[0] = 5 Atomics.and(arr, 0, 3) Output : 1 Input : arr[0] = 4 Atomics.and(arr, 0, 6) Output : 4 The below programs illustrate the Atomics.and() method: Example 1: javascript // creating a SharedArrayBuffer let buf = new SharedArrayBuffer(16); let arr = new Uint8Array(buf); // Initialising element at zeroth // position of array with 5 arr[0] = 5; // Displaying the SharedArrayBuffer console.log(Atomics.load(arr, 0)); // Displaying the return value of the // Atomics.and() method console.log(Atomics.and(arr, 0, 9)); // Displaying the updated SharedArrayBuffer console.log(Atomics.load(arr, 0)); Output: 5 1 1 Example 2: javascript // creating a SharedArrayBuffer let buf = new SharedArrayBuffer(25); let arr = new Uint8Array(buf); // Initialising element at zeroth // position of array with 7 arr[0] = 7 // Displaying the SharedArrayBuffer console.log(Atomics.load(arr, 0)); // Displaying the return value of the // Atomics.and() method console.log(Atomics.and(arr, 0, 2)); // Displaying the updated SharedArrayBuffer console.log(Atomics.load(arr, 0)); Output: 7 2 2 Application: Whenever we want to compute bitwise AND with any value and want to return the computed value, we use Atomics.and() operation in JavaScript. Let’s see a JavaScript Program : javascript // creating a SharedArrayBuffer let mybuffer = new SharedArrayBuffer(25); let myarray = new Uint8Array(mybuffer); // Initialising the element at zeroth // position of array with 11 myarray[0] = 11; // Displaying the return value of the // Atomics.and() method console.log(Atomics.and(myarray, 0, 13)); // Displaying the updated SharedArrayBuffer console.log(Atomics.load(myarray, 0)); Output: 9 9 Exceptions: If the typedArray is not one of the allowed integer types then the Atomics.and( ) operation throws a TypeError.If the typedArray is not a shared typed array then the Atomics.and( ) operation throws a TypeError.If the index used as an argument to the Atomics.and( ) operation is out of the bound in the typedArray then the Atomics.store( ) operation throws a RangeError. Supported Browser: Google ChromeMicrosoft EdgeFirefox Comment More infoAdvertise with us A akash1295 Follow Improve Article Tags : Technical Scripter JavaScript Web Technologies JavaScript-atomics javascript-functions +1 More Similar Reads JavaScript Tutorial JavaScript is a programming language used to create dynamic content for websites. It is a lightweight, cross-platform, and single-threaded programming language. It's an interpreted language that executes code line by line, providing more flexibility.JavaScript on Client Side: On the client side, Jav 11 min read Web Development Web development is the process of creating, building, and maintaining websites and web applications. It involves everything from web design to programming and database management. Web development is generally divided into three core areas: Frontend Development, Backend Development, and Full Stack De 5 min read React Interview Questions and Answers React is an efficient, flexible, and open-source JavaScript library that allows developers to create simple, fast, and scalable web applications. Jordan Walke, a software engineer who was working for Facebook, created React. Developers with a JavaScript background can easily develop web applications 15+ min read React Tutorial React is a powerful JavaScript library for building fast, scalable front-end applications. Created by Facebook, it's known for its component-based structure, single-page applications (SPAs), and virtual DOM,enabling efficient UI updates and a seamless user experience.Note: The latest stable version 7 min read JavaScript Interview Questions and Answers JavaScript is the most used programming language for developing websites, web servers, mobile applications, and many other platforms. In Both Front-end and Back-end Interviews, JavaScript was asked, and its difficulty depends upon the on your profile and company. Here, we compiled 70+ JS Interview q 15+ min read Decorators in Python In Python, decorators are a powerful and flexible way to modify or extend the behavior of functions or methods, without changing their actual code. A decorator is essentially a function that takes another function as an argument and returns a new function with enhanced functionality. Decorators are 10 min read AVL Tree Data Structure An AVL tree defined as a self-balancing Binary Search Tree (BST) where the difference between heights of left and right subtrees for any node cannot be more than one. Balance Factor = left subtree height - right subtree heightFor a Balanced Tree(for every node): -1 ⤠Balance Factor ⤠1Example of an 4 min read Domain Name System (DNS) DNS is a hierarchical and distributed naming system that translates domain names into IP addresses. When you type a domain name like www.geeksforgeeks.org into your browser, DNS ensures that the request reaches the correct server by resolving the domain to its corresponding IP address.Without DNS, w 8 min read What is a Neural Network? Neural networks are machine learning models that mimic the complex functions of the human brain. These models consist of interconnected nodes or neurons that process data, learn patterns and enable tasks such as pattern recognition and decision-making.In this article, we will explore the fundamental 12 min read HTML Interview Questions and Answers HTML (HyperText Markup Language) is the foundational language for creating web pages and web applications. Whether you're a fresher or an experienced professional, preparing for an HTML interview requires a solid understanding of both basic and advanced concepts. Below is a curated list of 50+ HTML 14 min read Like