JavaScript学习心得04

  • 任何值(包括NaN本身)与NaN比较,返回的都是false:
1 > NaN // false
1 <= NaN // false
‘1’ > NaN // false
‘1’ <= NaN // false
NaN > NaN // false
NaN <= NaN // false
  • 数组和别的东西做比较时,变成字符串和人家比;
  • 非数组对象和别的东西做比较时,直接变成这个的字符串:
    ‘[object Object]’
  • 如果两个值不是同一类型,严格相等运算符===直接返回false,而相等运算符==会将它们转换成同一个类型,再用严格相等运算符进行比较;
  • NaN与任何值都不相等(包括自身)。另外,正0等于负0:
NaN === NaN  // false
+0 === -0 // true
  • 两个复合类型(对象、数组、函数)的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个地址:
{} === {} // false
[] === [] // false
(function () {} === function () {}) // false
  • undefinednull与自身严格相等;
  • 而且 null == undefined // true
  • 两个只声明未赋值的变量是相等的:
var v1;
var v2;
v1 === v2 // true
  • 位运算符只对整数起作用,如果一个运算子不是整数,会自动转为整数后再执行;
  • 虽然在 JavaScript 内部,数值都是以64位浮点数的形式储存,但是做位运算的时候,是以32位带符号的整数进行运算的,并且返回值也是一个32位带符号的整数:
function toInt32(x) {//将任意数值转化为32位整数
  return x | 0;
}
  • 将一个小数与0进行二进制或运算,等同于对该数去除小数部分,即取整数位;
  • 一个数与自身的取反值相加,等于-1:
~ 3 // -4
~ -3 // 2
  • 对一个整数连续两次二进制否运算,得到它自身;
  • 对一个小数连续进行两次二进制否运算,能达到取整效果(相较或运算,更快速);
  • 异或运算也可以用来取整:
    12.9 ^ 0 // 12
  • 如果左移0位,就相当于将该数值转为32位整数,等同于取整,对于正数和负数都有效;
  • 使用以下方法查看负整数在计算机内部的存储形式!
-1 >>> 0 // 4294967295

二进制开关

  • |运算制造掩码:
var mask = FLAG_A | FLAG_B | FLAG_D;
// 0001 | 0010 | 1000 => 1011
  • &来检验是否打开了相应的开关;

void运算

点击链接,提交表单,但不跳转页面。

<a href=“javascript: void(document.form.submit())”>
  提交
</a>

逗号运算符

逗号运算符用于对两个表达式求值,先执行逗号之前的操作,然后返回逗号后面的值。

var value = (console.log(‘Hi!’), true);
// Hi!

value // true

圆括号的作用

  1. 改变优先级;
  2. 放到函数名后,调用这个函数。
    圆括号之中,只能放置表达式
原文地址:https://www.cnblogs.com/endymion/p/9195595.html