判读当前对象是否存在该属性
Object.hasOwnProperty("属性名");
字符串与数组的相互转换
Arrry.join(","); // 数组转为字符串
String.split(","); // 字符串转为数组
字符串与JSON的相互转换
JSON.parse(str); // 字符串转为JSON
JSON.stringify(json); // JSON转为字符串
阻止事件冒泡
event.stopPropagation(); // W3C版
window.event.cancelBubble = true; // IE版
取消默认行为
event.preventDefault(); // W3C版
window.event.returnValue = false; // IE版
Arrry数组常用操作函数
ArrObj1.concat(ArrObj2) // 数组合并
ArrayObject.pop() // 删除并返回数组的最后一个元素
ArrayObject.push(value) // 向数组的末尾添加一个或更多元素,并返回新的长度
ArrayObject.shift() // 删除并返回数组的第一个元素
ArrayObject.unshift(value) // 向数组的开头添加一个或更多元素,并返回新的长度
ArrayObject.splice(index,length,newItem) // 从指定的位置开始删除,删除指定的长度,并插入新值,如果未有未值则只做删除操作,并返回被删除的项
ArrayObject.reverse() //颠倒数组中元素的顺序
BOM window对象层级关系
window.self // 是对当前窗口自身的引用。和( window,self )属性是等价的
window.top // 返回顶层窗口,即浏览器窗口
window.parent // 返回父窗口
浮点型数据计算
floatingCalculate(a, b) {
let digit = a.toString().length >= b.toString().length ? a.toString().length : b.toString().length
let m = Math.pow(10, digit)
return Math.round((a + b) * m, 10) / m
}
圆形定位
圆形定位(根据三角形的正玄、余弦来得值)
/*
假设一个圆的圆心坐标是(a,b),半径为r,
则圆上每个点的X坐标=a + Math.sin(2*Math.PI / 360) * r;
Y坐标=b + Math.cos(2*Math.PI / 360) * r;
假设秒针的初始值(起点)为12点钟方向,圆心的坐标为(a,b)。
解决思路:一分钟为60秒,一个圆为360°,所以平均每秒的转动角度为 360°/60 = 6°;
*/
for(var times=0; times<60; times++) {
var hudu = (2*Math.PI / 360) * 6 * times;
var X = a + Math.sin(hudu) * r;
var Y = b - Math.cos(hudu) * r; /* 注意此处是“-”号,因为我们要得到的Y是相对于(0,0)而言的。 */
}
角度计算
角度计算(根据两点坐标计算)
getAngle(end, start) {
let diff_x = end.pageX - start.pageX;
let diff_y = end.pageY - start.pageY;
return 360 * Math.atan(diff_y / diff_x) / (2 * Math.PI);
}