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种方法:
- 使用中间变量C
C=A; A=B; B=C; - 使用加减法运算
A=A+B; B=A-B; A=A-B; - 使用异或运算
A=A^B; B=A^B; A=A^B;