Javascript 按位与赋值运算符 (&=)使用介绍

Javascript 按位与赋值运算符 (&=),对变量值与表达式值设置按位“与”运算的结果。 变量和表达式均被视为 32 位二进制值,而一般表达式里面都是十进制整数,此时需要先转换成对应的二进制,然后向前加0,补足32位。

代码如下:

result &= 【整数2】
等价于
result = result & 【整数2】

& 对两个 32 位表达式的每一个位执行按位“与”运算。 如果两个位均为 1,则结果是 1。 否则,结果为 0。






















位1 位2 位与
0 0 0
1 1 1
0 1 0
1 0 0

下面的示例演示如何使用 & 位与运算符 和 &= 按位与赋值运算符:

代码如下:

// 9 二进制是 1001,补足32位为 00000000000000000000000000001001
var expr1 = 9;

// 5 是 00000000000000000000000000000101
var expr2 = 5;

/*
00000000000000000000000000001001
&
00000000000000000000000000000101
=
00000000000000000000000000000001
=
1
*/

var result = expr1 & expr2;

alert(result);
// 弹出【1】

expr1 &= expr2;
alert(expr1);
// 弹出【1】

JavaScript赋值运算符与表达式

JavaScript赋值运算符负责为变量赋值,JavaScript赋值运算符包括=,+=,-=,*=,/=,%=
用赋值运算符和运算对象(操作数)连接起来,符合规则的JavaScript语法的式子,称JavaScript赋值表达式。

JavaScript赋值运算符与赋值表达式语法

var i+=a;

+= -- 赋值运算符
上面表达式的意义是:把i加上a所得的值,赋予变量i。

JavaScript赋值运算符与赋值表达式


















































运算符 = += -= *= /= %=
名称 赋值运算符 加法赋值运算符 减法赋值运算符 乘法赋值运算符 除法赋值运算符 模赋值运算符(求余赋值运算符)
表达式 i=6 i+=5 i-=5 i*=5 i/=5 i%=5
示例 var i=6; i+=5; i-=5; i*=5; i/=5; i%=5;
i的结果 6 11 1 30 1.2 1
等价于   i=i+5; i=i-5; i=i*5; i=i/5; i=i%5;

示例解释

前自增运算符与后自增运算符有本质的区别,它们的相同点都是为自身加了1,不同点是前自增运算符是先加1,再使用操作数的值,后自增运算符是先使用操作数的值,再加1。例如:

代码如下:

var a;
var i=6;

//(前加加)i加1后,i等于7,并将i值赋予a,于是a等于7
a=++i;
document.write(i);
document.write(a);

i=6;
//(后加加)将i值赋予a,于是a等于6,最后i加1,i等于7
a=i++;
document.write(i);
document.write(a);

结果:

代码如下:

7
7
7
6

(0)

相关推荐

  • 写了10年的Javascript也未必全了解的连续赋值运算

    一.引子 复制代码 代码如下: var a = {n:1}; a.x = a = {n:2}; alert(a.x); // --> undefined 这是蔡蔡在看 jQuery源码 时发现这种写法的.以上第二句 a.x = a = {n:2} 是一个连续赋值表达式.这个连续赋值表达式在引擎内部究竟发生了什么?是如何解释的? 二.猜想 猜想1:从左到右赋值,a.x 先赋值为{n:2},但随后 a 赋值为 {n:2},即 a 被重写了,值为 {n:2},新的 a 没有 x属性,因此为undefi

  • JavaScript中的变量声明早于赋值分析

    如下 复制代码 代码如下: var a = 3; 实际有两个步骤: 1 初始化a为undefined 2 a赋值3 因此会出现一些"匪夷所思"的现象,即JS中变量可以先使用后声明.这在Java中是不允许的. 复制代码 代码如下: System.out.println(a); int a = 1; 编译通不过.但JS可以,如下 复制代码 代码如下: alert(a); var a; 虽然是undefined,但不会报错.说明a的确声明了,且为undefined. 如果只是"al

  • 分析 JavaScript 中令人困惑的变量赋值

    Javascript是一门弱类型的语言,声明变量不需要声明其类型,var x 就可以等于任何类型的值. 比如: var str = "string...."; var arr = ["this","is","array"]; var obj = {name:"caizhongqi",age:26,sex:"male"}; 这些都是正确的,这似乎非常简单方便,但是这种方便也会带来一些令人难

  • JavaScript中的函数的两种定义方式和函数变量赋值

    复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /*I总结: 1.函数名可以做变量使用,可以赋值,可以传值 2.函数名当参数,传递给另一个函数 */ //===========

  • Javascript表达式中连续的 && 和 || 之赋值区别

    代码如下: 复制代码 代码如下: function write(msg){ for(var i = 0; i < arguments.length; i ++){ document.write(arguments[i] + '<br />'); } } //关于 '&&' test1 = 1 && 2 && 3 && 4; test2 = '0' && 2 && 3 && 4;

  • Javascript 赋值机制详解

    今天回答了一个关于 Javascript 的问题,涉及到了赋值问题,因此想把这个问题好好总结下. 复制代码 代码如下: var a = 'test'; var b = function() {}; b.a = 'test'; function change(m, n) {     m = 'change';     n.a = 'change'; } change(a, b); 执行上述代码后,变量 a 和 b 的值会发生改变吗? 原始值和引用值 在 之前的文章中介绍过原始值和引用值,原始值指的

  • 用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中

    我想动态将text类型的数据加入到TEXTAREA中,如下程序不能正常显示      ShtForm为Form域,Txt_CmpnyPrms为TEXTAREA      Response.Write("<script   language='javascript'>")      tempStr   =   "ShtForm.Txt_CmpnyPrms.innerText   =   '   "   +   HTMLEncode(v_Rs("C

  • javascript fckeditor编辑器取值与赋值实现代码

    获取编辑器中HTML内容 复制代码 代码如下: function getEditorHTMLContents(EditorName) { var oEditor = FCKeditorAPI.GetInstance(EditorName); return(oEditor.GetXHTML(true)); } 获取编辑器中文字内容 复制代码 代码如下: function getEditorTextContents(EditorName) { var oEditor = FCKeditorAPI.G

  • 用JAVASCRIPT如何给&lt;textarea&gt;&lt;/textarea&gt;赋值

    1楼 表单名.多行广西域名.value="你要赋的值"; 2楼 文本域它没有VALUE属性. 3楼 楼主你试了没有??      我这怎么可以用value赋值 4楼 搞定了,谢谢了.现在给分.

  • Javascript 按位与赋值运算符 (&=)使用介绍

    Javascript 按位与赋值运算符 (&=),对变量值与表达式值设置按位"与"运算的结果. 变量和表达式均被视为 32 位二进制值,而一般表达式里面都是十进制整数,此时需要先转换成对应的二进制,然后向前加0,补足32位. 复制代码 代码如下: result &= [整数2]等价于result = result & [整数2] & 对两个 32 位表达式的每一个位执行按位"与"运算. 如果两个位均为 1,则结果是 1. 否则,结果为

  • Javascript 按位与运算符 (&)使用介绍

    复制代码 代码如下: result = [整数1] & [整数1] & 对两个 32 位表达式的每一个位执行按位"与"运算. 如果两个位均为 1,则结果是 1. 否则,结果为 0. 位1 位2 位与 0 0 0 1 1 1 0 1 0 1 0 0下面的示例演示如何使用 & 位与运算符和 &= 按位与赋值运算符: 复制代码 代码如下: // 9 二进制是 1001,补足32位为 00000000000000000000000000001001 var ex

  • javascript运算符——位运算符全面介绍

    前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用.但是,其速度极快,且合理使用能达到很好的效果.本文将介绍javascript中常常被忽视的运算符--位运算符 二进制表示 ECMAScript中的所有数值都以IEEE-754 64位格式存储,但位操作符并不直接操作64位的值,而是以32位带符号的整数进行运算的,并且返回值也是一个32位带符号的整数 这种位数转换使得在对特殊的NaN和Infinity值应用位操作时,这两个值都会被当成0来处理 如果对非数值应用位操作符,会先使用Num

  • JavaScript的function函数详细介绍

    通过函数来封装任意多条语句,而且可以在任何地方.任何时间调用执行. 而我们的JavaScript脚本语言比较特殊,相对于C语言,它的参数是不需要数据类型加持的.返回值return,我就不过多描述,他是和 C语言通的,如果没写他就会自动返回undefined function fun(x,y){ } //写成这样就可以声明一个函数 以我的理解他就是以对象的形式来传入参数,通过对象的各项属性值(引用类型的值),来作为我的实际参数, 例如我有以下做法: function fun(x, y) { //

  • JavaScript可视化与Echarts详细介绍

    目录 一.可视化介绍 二.可视化库介绍 三.Echarts Echarts引入和使用 了解基础配置 一.可视化介绍 可视化:将数据用图表展示出来,让数据更加直观.让数据特点更加突出 应用场景:营销数据.生产数据.用户数据 二.可视化库介绍 常见的数据可视化库: D3.js:目前 Web 端评价最高的 Javascript 可视化工具库(入手难) ECharts.js:百度出品的一个开源 Javascript 数据可视化库 Highcharts.js:国外的前端数据可视化库,非商用免费,被许多国外

  • JavaScript可迭代对象详细介绍

    目录 1.迭代器 2.迭代器接口与可迭代对象 3.自定义可迭代对象 3.1.可迭代的Range对象 3.2.使用Generator函数作为迭代器接口 3.3.可迭代的List 3.3.可迭代的迭代器 4.可迭代对象的意义 5.使用可迭代对象 6.后记 1.迭代器 迭代器是借鉴C++等语言的概念,迭代器的原理就像指针一样,它指向数据集合中的某个元素,你可以获取它指向的元素,也可以移动它以获取其它元素.迭代器类似于数组中下标的拓展,各种数据结构,如链表(List).集合(Set).映射(Map)都有

  • JavaScript reduce方法使用方法介绍

    目录 1. reduce方法的使用 2. reduce数组的使用场景 2.1 扁平化数组 2.2 数组去重 2.3 计算数组最大/最小值 2.4 数组求和 2.5 计算数组中元素的出现次数 3. 操作对象 4. 使用reduce代替.filter().map() 5. 按顺序执行promise 6. 使用compose函数组合实现管道 1. reduce方法的使用 Array.prototype.reduce(callBack(previousValue, currentValue, curre

  • JavaScript异步编程操作实现介绍

    目录 异步编程 同步模式与异步模式 同步模式(Synchronous) 异步模式(Asynchronous) 回调函数 Promise Promise基本用法 Promise使用案例 Promise常见误区 Promise异常处理 Promise静态方法 宏任务与微任务 Generator 异步方案 生成器函数回顾 async与await 异步编程 目前主流的JavaScript执行环境都是以单线程执行JavaScript的. JavaScript早期只是一门负责在浏览器端执行的脚本语言,主要用

  • javascript面向对象入门基础详细介绍

    什么是对象 简单点说,编程语言中的对象是对现实中事物的简化.例如,我们一个人就是一个对象,但是编程语言很难完全描述一个这样复杂的对象.所以我们必须做出简化,首先,将人简化成属性和行为的组合,然后仅仅保留对程序有意义的几个属性以及行为.例如,我们做一个统计某学校的人的身高的程序,那么我们在这个程序中就可以把人的行为省略掉,只保留行为,并且只保留身高这一个属性.这样,我们就得到了一个最简单的对象. JavaScript字符串对象 对象的属性 其实我们之前在HTML DOM中已经就是在使用对象了.例如

  • JavaScript中的ArrayBuffer详细介绍

    相信每一个 javascript 学习者,都会去了解 JS 的各种基本数据类型,数组就是数据的组合,这是一个很基本也十分简单的概念,他的内容没多少,学好它也不是件难事情.但是本文着重要介绍的并不是我们往常看到的 Array,而是 ArrayBuffer. 我写的很多东西都是因为要完成某些特定的功能而刻意总结的,可以算是备忘,本文也是如此!前段时间一直在研究 Web Audio API 以及语音通信相关的知识,内容侧重于音频流在 AudioContext 各个节点之间的流动情况,而现在要摸清楚音频

随机推荐