1.按位非(NOT)

2.按位与(AND)

3.按位或(OR)

4.按位异或(XOR)

5.左移

6.有符号右移

7.无符号右移

------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.按位非(NOT):

符号:~

功能:返回数值的反码。

var num1 = 25;         //二进制00000000000000000000000000011001
var num2 = ~num1; //二进制11111111111111111111111111100110
alert("num2"); //-26

操作数的负值减1。因此下面的代码也能得到相同的结果:

var num1 = 25;
var num2 = -num1 -1;
alert(num2); // "-26"

按位非是在数值底层操作,因此速度更快。

2.按位与(AND)

符号:&

功能:只在两个数值的对应都是1时才返回1,任何一位是0,结果都是0。如下表:

第一个数值 第二个数值 结果
1 1 1
1 0 0
0 1 0
0 0 0
var result = 25 & 3;
alert(result); //

3.按位或(OR)

符号: |

功能:在有一个位是1的时候就返回1,而只有在两个位都是0的情况下才返回0。

第一个数值 第二个数值 结果
1 1 1
1 0 1
0 1 1
0 0 0
var result = 25 | 3;
alert(result); //

4.按位异或(XOR)

符合:^

功能:在两个位对应只有一个1的时候才返回1,如果对应的两个位是1或0时返回0。

第一个数值 第二个数值 结果
1 1 0
1 0 1
0 1 1
0 0 0

 

var result = 25 ^ 3;
alert("result"); //

5.左移

符号:<<

功能:所有位向左移,右边空出来的用0补。

var oldValue = 2;              //二进制的10
var newValue = oldValue << 5; //等于二进制的1000000,十进制到底64

左移不影响操作数的符号位。

6.有符号右移:

符号:>>

功能:将数值向右移动,保留符号位(正负号),左侧的空位用符号位来填充。

var oldValue = 64;                //二进制的1000000
var newValue = oldValue >> 5; //等于二进制的10,即十进制的2

7.无符号右移:

符号:>>>

功能:正数,同有符号右移;负数,用0填充空位,而不是像正数(有符号右移)以符号位填充空位。

var oldValue = -64;
var newValue = oldValue >>> 5;

《JavaScript高级程序设计》笔记(2):位操作符的更多相关文章

  1. JavaScript高级程序设计笔记(一)

    ---恢复内容开始--- 前三章为基础知识,为了方便以后查看,所以比较啰嗦.这里对函数的基本操作没有记录. 1.JavaScript的实现 虽然 JavaScript 和 ECMAScript 通常都 ...

  2. javascript高级程序设计--笔记01

    概述 JavaScript的实现包含三个部分: 1  核心(ECMAScript)   提供核心语言功能 2  文档对象模型(DOM)  一套提供了访问以及操作网页内容的API 3  浏览器对象模型( ...

  3. javaScript高级程序设计笔记 1

    核心  ECMAScript 文档对象模型  DOM 浏览器对象模型 BOM 延迟脚本  defer typeof操作符      判断字符类型  返回   undefined  boolean  s ...

  4. JavaScript高级程序设计笔记之面向对象

    说起面向对象,大部分程序员首先会想到 类 .通过类可以创建许多具有共同属性以及方法的实例或者说对象.但是JavaScript并没有类的概念,而且在JavaScript中几乎一切皆对象,问题来了,Jav ...

  5. <javascript高级程序设计>笔记

    1.要讲一个值转换成其对应的Boolean类型 ,可以调用转型函数Boolean(). var message=“hello world!”; var messageAsBoolean=Boolean ...

  6. javascript事件小结(事件处理程序方式)--javascript高级程序设计笔记

    1.事件流:描述的是从页面中接收事件的顺序. 2.事件冒泡:IE的事件流叫做事件冒泡,即事件开始从具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到不具体的节点(文档). 3.事件捕获 ...

  7. Javascript高级程序设计笔记 <第五章> 引用类型

    一.object类型 创建object实例的方式有两种: //第一种使用new操作符跟构造函数 var person= new Object(); person.name="小王" ...

  8. JavaScript高级程序设计笔记 事件冒泡和事件捕获

    1.事件冒泡 要理解事件冒泡,就得先知道事件流.事件流描述的是从页面接收事件的顺序,比如如下的代码: <body> <div> click me! </div> & ...

  9. javaScript高级程序设计笔记 2

    Undefinde Null Boolean Number String    基本类型 Object    引用类型 只有引用类型才能动态的添加属性 赋值基本类型和引用类型也不相同,复制的基本类型的 ...

  10. Javascript高级程序设计笔记(很重要尤其是对象的设计模式与继承)

    var obj = {'a':'a'}; var fun = function (){} console.log(typeof obj);//object console.log(typeof fun ...

随机推荐

  1. Webdriver:Unsupported Marionette protocol version 2, required 3

    升级到firefox到47以上版本即可 坑人的Mozilla不能起个我们熟识的名字吗? 先是webdriver.gecko.driver后是Marionette protocol.   1.WebDr ...

  2. 一秒钟速算(WINFORM)

    WIN7以上的系统可以直接运行,XP的系统要按装.NET 2.0 程序下载 http://files.cnblogs.com/xe2011/%E4%B8%80%E7%A7%92%E9%92%9F%E5 ...

  3. BZOJ 2049: [Sdoi2008]Cave 洞穴勘測 LCT

    入门级LCT: 仅仅有 Cut Link 2049: [Sdoi2008]Cave 洞穴勘測 Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 3073 ...

  4. 阿里技术保障-KeepAlive

    http://blog.sina.cn/dpool/blog/s/blog_e59371cc0102ux5w.html?wm=3049_a111

  5. ARM GCC CodeSourcery 下载地址

    Sourcery G++ Lite 2011.03-42: https://sourcery.mentor.com/GNUToolchain/package8737/public/arm-none-e ...

  6. Android自定义View之ProgressBar出场记

    关于自定义View,我们前面已经有三篇文章在介绍了,如果筒子们还没阅读,建议先看一下,分别是android自定义View之钟表诞生记.android自定义View之仿通讯录侧边栏滑动,实现A-Z字母检 ...

  7. php笔记06:http响应中的状态码

    首先我们看一个360浏览器中使用开发截图如下: 上面的Status Code:  OK (这个就是状态码) 1.状态码主要用于服务器对请求的处理结果,它是一个三位的十进制数.响应状态码分为5类,如下所 ...

  8. iOS 网络编程:NSURLSession

    NSURLSession类和相关的类提供很多API来下载HTTP的内容.这些API提供多种delegate协议来支持验证和执行后台下载任务. 1 URL Session 设计概念 Session中的任 ...

  9. Linux下pcapy的安装问题

    在安装pcapy包的时候 cd pcapy-0.10.8/ python setup.py install 报错 error trying to exec ‘cc1plus’: execvp: No ...

  10. Amazon EC2上搭建VPN服务器

    Amazon EC2 提供了一年免费试用,Micro Instance,配置是 1G 内存,共享 CPU,和每月 15G 的流量.搭一个 VPN 服务器绰绰有余了.操作系统我选的是 Amazon Li ...