escape()
escape方法以Unicode格式返回一个包含传入参数内容的string类型的值。 Escape方法会将传入参数中所有的空格、标点符号、重音字符以及其它任何非ASCII字符替换为%xx的编码形式,其中xx与其所表示的字符的16进制数表示形式相同。如空格字符的16进制表示形式为0x20,则此时xx应为20,即escape(‘ ’) 返回“ ”
escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参 数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。
关于边框
当定义border:none时,表示无边框样式,浏览器并不会对边框进行渲染,也就没有实际的宽度;
定义边框时,除了设置宽度外,还必须设置边框的样式才能显示出来。
页面打开时弹出alert()
<img src=”” onerror=”alert(1)”/>//当图片不存在时触发,为空也触发
<iframe src=”javascript: alert(1)”></iframe>//页面加载时触发
IE下<s style=”top:expression(alert(1))”></s>//尽量少用expression因为在其他浏览器不支持
Math.max()
Math.max(arr[0],arr[1],arr[2],arr[3])
Math.max.call(Math,arr[0],arr[1],arr[2],arr[3])
Math.max.apply(Math,arr)
keydown和keypress的区别
虽然从字面理解, KeyDown是按下一个键的意思, 但实际上二者的根本区别是, 系统由KeyDown返回键盘的代码, 然后由TranslateMessage函数翻译成成字符, 由KeyPress返回字符值. 因此在KeyDown中返回的是键盘的代码, 而KeyPress返回的是ASCII字符. 所以根据你的目的, 如果只想读取字符, 用KeyPress, 如果想读各键的状态, 用KeyDown.
keydown:用户在键盘上按下某按键是发生。一直按着某按键则会不断触发(opera浏览器除外)。
keypress:用户按下一个按键,并产生一个字符时发生(也就是不管类似shift、alt、ctrl之类的键,就是说用户按了一个能在屏幕上输出字符的按键keypress事件才会触发)。一直按着某按键则会不断触发。
keyup:用户释放某一个按键是触发。
join()
javascript中字符串连接时用Array.join()替换 string += "xx",换来几十倍的速度提升。