JavaScript位运算符 2
|按位或
^按位异或
~取反
>>右移
<<左移
1 & 运算符

function assert(n) {
if (n % 2 === 1) {
console.log("n是奇数");
} else {
console.log("n是偶数");
}
}
assert(3); // "n是奇数"


function assert(n) {
if (n & 1) {
console.log("n是奇数");
} else {
console.log("n是偶数");
}
}
assert(3); // "n是奇数"

2 | 运算符
3 ^ 运算符
var num1 = 1, num2 = 2, temp;
temp = num1;
num1 = num2; //
num2 = temp; //
var num1 = 1, num2 = 2;
num1 = [num2, num2 = num1][0];
console.log(num1); //
console.log(num2); //
var num1 = 1, num2 = 2;
num1 ^= num2; // num1 = num1 ^ num2 = 1 ^ 2 = 3
num2 ^= num1; // num2 = num2 ^ (num1 ^ num2) = num1 = 1
num1 ^= num2; // num1 = num1 ^ num2 ^ num1 = num2 = 2
console.log(num1); //
console.log(num2); //
4 ~ 运算符

~~true == 1;
~~false == 0;
~~"" == 0;
~~"all" == 0;
~~"32all" == 0;
~~"all43" == 0;
~~[] == 0;
~~undefined ==0;
~~!undefined == 1;
~~null == 0;
~~!null == 1;
~~(5.9) == 5;
~~(5.2) == 5;
~~(-5.9) == -5;

5 移位运算符 左移<< , 右移>>
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 (十进制12)
向右移动两位则是
3 << 1 = 6
4 << 1 = 8

1 parseInt(7/2) // 3 丢弃小数部分,保留整数部分
2 Math.ceil(7/2) // 4 向上取整,有小数就整数部分加1
3 Math.round(7/2) // 4 四舍五入.
4 Math.floor(7/2) // 3 向下取整
5 toFixed(n) Number对象的方法--四舍五入保留n位小数。返回 NumberObject 的字符串表示。
var a = 12.3456;
document.write(a.toFixed(2)); //12.35

parseInt() 和 parseFloat() 函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有数字字符组成的数字。如第一个字符不能被解析成为数字,则返回NaN. 使用运算符 "+" 将字符串转换成数字,只要字符串中含有无法被解析成数字的字符,该字符串都将被转换成 NaN。var s = "10.1asd21";
console.log(parseFloat(s)); //10.1
console.log('10ab21'); //
parseFloat('a12.21') ; // NaN
parseInt('r43') ; // NaN
console.log(+s); // NaN
NaN并不一定用于表示某些值超出表示范围的情况。将某些不能强制转换为数值的非数值转换为数值的时候,也会得到NaN。NaN —— 但是其他数除以0则返回Infinity而不是NaN。NaN不能通过相等操作符(== 和 ===)来判断 ,因为 NaN == NaN 和 NaN === NaN 都会返回 false。 因此,isNaN 就很有必要了。
isNaN(NaN); // true
isNaN(undefined); // true
isNaN({}); // true isNaN(true); // false
isNaN(null); // false
isNaN(37); // false // strings
isNaN("37"); // false: 可以被转换成数值37
isNaN("37.37"); // false: 可以被转换成数值37.37
isNaN(""); // false: 空字符串被转换成0
isNaN(" "); // false: 包含空格的字符串被转换成0 // dates
isNaN(new Date()); // false
isNaN(new Date().toString()); // true isNaN("blabla") // true: "blabla"不能转换成数值

JavaScript位运算符 2的更多相关文章
- JavaScript位运算符
位运算符是在数字底层(即表示数字的 32 个数位)进行操作的. 重温整数 ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数).在 ECMAScript ...
- javascript位运算
javascript作为一门高级语言,他尽量让开发人员减少思考底层的硬件工作原理,而将精力集中在逻辑开发的层面.不过,不论这门语言多么高级,我们必须知道数据依然以bits的形式存储,有时候我们会直接与 ...
- javascript(六)运算符
运算符概述 JavaScript中的运算符用于算术表达式. 比较表达式. 逻辑表达式. 赋值表达式等.需要注意的是, 大多数运算符都是由标点符号表示的, 比如 "+" 和" ...
- javascript运算符——位运算符
× 目录 [1]二进制 [2]非 [3]与[4]或[5]异或[6]左移[7]右移[8]>>>[9]应用 前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用.但是,其速度 ...
- Javascript中的位运算符和技巧
ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数).在 ECMAScript 中,所有整数字面量默认都是有符号整数,这意味着什么呢? 有符号整数使用 3 ...
- JavaScript按位运算符~
1. JavaScript按位运算符 Bit operators work on 32 bits numbers. 2. JavaScript按位运算符~ 值得注意的是,在JavaScript中,~5 ...
- javascript奇技淫巧之位运算符
奇技淫巧:指过于奇巧而无益还让人着迷的技艺与制品. And(与) & Or(或) | Exclusive Or(异或) 或者称 Xor ^ Not(非) ~ 位运算符,我们在日常js开发中其实 ...
- js 位运算符
MDN定义:位运算符将它的操作数视为32位元的二进制串(0和1组成)而非十进制八进制或十六进制数. 例如:十进制数字9用二进制表示为1001,位运算符就是在这个二进制表示上执行运算,但是返回结果是标准 ...
- HTML5 位运算符
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- Python中常用包——sklearn主要模块和基本使用方法
在从事数据科学的人中,最常用的工具就是R和Python了,每个工具都有其利弊,但是Python在各方面都相对胜出一些,这是因为scikit-learn库实现了很多机器学习算法. 加载数据(Data L ...
- AJAX之三种数据传输格式详解
一.HTML HTML由一些普通文本组成.如果服务器通过XMLHTTPRequest发送HTML,文本将存储在responseText属性中. 从服务器端发送的HTML的代码在浏览器端不需要用Java ...
- opengl学习笔记(一)
ubuntu下opengl的安装及配置 OpenGL 是一套由SGI公司发展出来的绘图函数库,它是一组 C 语言的函数,用于 2D 与 3D 图形应用程序的开发上.OpenGL 让程序开发人员不需要考 ...
- PyQT5-QCheckBox按钮
""" QcheckBox:单选框有两种状态:开和关.通常跟标签一起使用,用在一些激活或者关闭的场景 Author:dengyexun DateTime:2018.11. ...
- centos 7 yum configuration; yum localinstall
Linux下对于软件包的管理使用rpm管理方式.直接使用rpm包管理工具来进行rpm包的安装,升级,卸载时,对于最让人头疼的莫过与包之间的依赖关系.yum作为一个rpm包前端管理工具,可以自动处理依赖 ...
- (转)Spring实现IoC的多种方式
原文地址:http://www.cnblogs.com/best/p/5727935.html 目录 一.使用XML配置的方式实现IOC 二.使用Spring注解配置IOC 三.自动装配 四.零配置实 ...
- 简单利用gulp-babel搭建es6转es5环境
es6是什么?借着这个话题,我想说:身为web前端的工作者连es6没听说,转行吧. demo的代码如下: 源码下载 或者 gitclone地址: git@git.oschina.net:sisheb/ ...
- /etc/redhat-release 查看centos 版本
查看centos 版本 [root@localhost ~]# cat /etc/redhat-release CentOS release 6.4 (Final)
- 【2014腾讯实习招聘-面试-移动client开发】
版权声明:本文为博主原创文章,欢迎转载,转载请注明出处. https://blog.csdn.net/kana007/article/details/24375423 个人学习整理.如 ...
- POJ:2528(Mayor's posters)离散化成段更新+简单哈希
http://poj.org/problem?id=2528 Description The citizens of Bytetown, AB, could not stand that the ca ...