1. html上只用GET表单 如果要用POST 必须使用Ajax
2. 动画尽量用css实现 写算法害人害己
js在写代码的时候用字符串 无论是单引号或者双引号都是要反斜杠的
不然就会被转义 解决方法
//可以免除\转义之苦 但是不能含有转义符号/ * 也可以换成return ``;
var lsstr = (()=>{/*大三大四*/}).toString();
lsstr = lsstr.substr(7,lsstr.length-7-3);//大三大四
----------------------------------------------------------------------------
在function里使用this 和在onClick使用this是不一样的
解决方法是用jq 的click事件绑定 或者 传this过来
--------------------------------------------------------------
性能测试
//对象属性遍历测试
for (const key in object) //效率最低
//普通for效率最高
var array = Object.keys(aab).length;
for (let index = 0; index < array.length; index++)
//------------
字符串拼接测试
var array = Object.keys(aab).length;
for (let index = 0; index < array.length; index++) {
ls.push(aab[array[index]]);
ls.push("\n");
}
var aa = ls.join();
//*.join() 性能等同于 ls+=aab[array[index]]+"\n";
//------------
==的性能等于 ===
[]插入性能等于{}
//-------------
eval 的性能最差, 1百倍以上
----------
字符串生成
JSON.stringify 效能很差
普通for效率最高 2倍
------------------------------------------------------
js多行文本 用 `多行文本`
----------------------------------------
img.getAttribute("src") 这个是取原始值
例如设置空 就真返回空了
img.src 这个是取相对路径
例如设置空 他会返回http://页面地址
---------------------------------------------
js劫持某只读变量
navigator.__defineGetter__('userAgent', function () { return '11'; });
Object.defineProperty(window.navigator, 'appVersion', { get: function(){ return ("123232"); } })
------------------------------------------------------
document.querySelectorAll返回的是伪数组 nodelist
[].slice.call(document.querySelectorAll('.selectNone'))//坑 让nodelist转真array
-------------------------------------------