JS札记(长期更新的js杂七杂八)

JS笔记(长期更新的js杂七杂八)

使用window.crypto.getRandomValues方法生成随机数组

crypto.getRandomValues接受一个参数typedArray,typedArray的值可以是如下对象的实例:

Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array

 

例如要生成6个0~256的随机整数组成的数组可以这样做:

var array = new Uint8Array(6);
window.crypto.getRandomValues(array);

使用字面量重写构造函数prototype属性时constructor指向问题的解决

function Demo(){}
Demo.prototype={}
var pp=new Demo;
pp.constructor;//Object.....(正常情况应该是Demo)

//解决办法,使用Object.defineProperty为构造函数的prototype手动添加constructor属性并指向Demo
Object.defineProperty(Demo.prototype,"constructor",{
 value:Demo,
 enumerable:false //因为默认是可枚举的,所以此处必须设置
});
//测试
var ii=new Demo;
ii.constructor;//Demo

 两个变量A和B交换值的3种方法:

  1. 使用中间变量C
    C=A; A=B; B=C;
  2. 使用加减法运算
    A=A+B; B=A-B; A=A-B;
  3. 使用异或运算
    A=A^B; B=A^B; A=A^B;