1.原生 js 操作数组的方法(Array 对象方法):
-
concat() 连接两个或更多的数组,并返回结果。
-
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
-
pop() 删除并返回数组的最后一个元素
-
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
-
reverse() 颠倒数组中元素的顺序。
-
shift() 删除并返回数组的第一个元素
-
slice() 从某个已有的数组返回选定的元素
-
sort() 对数组的元素进行排序 splice() 删除元素,并向数组添加新元素。
-
toSource() 返回该对象的源代码。
-
toString() 把数组转换为字符串,并返回结果。
-
toLocaleString() 把数组转换为本地数组,并返回结果。
-
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
-
valueOf() 返回数组对象的原始值
注意:resort不属于原生 js 操作数组的方法。
2.JavaScript的全局函数
编码相关:
escape()、unescape()、encodeURI()、decodeURI()、
encodeURIComponent()、decodeURIComponent()
数据处理:
Number()、String()
数字相关:
isFinite()、isNaN()、parseFloat()、parseInt()
特殊:
eval()
注意:setTimeout是各大浏览器自己实现的api,不属于es标准
3.哪些Array对象的方法不会更改原有数组?
concat函数连接多个array,不改变原array,返回连接的结果
map函数对array中的每一项执行指定函数,将每一项执行的结果组成新的array返回
注意:
sort方法,数组在原数组上进行排序,并返回数组,所以会改变原数组
splice函数对array进行操作,会改变array。
4.如何阻止IE和各大浏览器默认行为
阻止默认事件:
e.preventDefault()
e.returnValue = false (IE)
阻止冒泡:
e.stopPropagation()
e.cancelBubble = true (IE)
注意: event.preventDefault()只可以阻止火狐谷歌,event.returnValue = false才能也阻止IE
5.在html元素中用来定义样式的属性
外联:使用link标签引入外部的css文件。
内联:在head标签中使用style标签。
嵌入:在标签中使用style属性。
6.关于DOM事件的描述
-
onload() 元素被载入(文档,框架或图像)
-
onclick() 鼠标点击一个元素时触发
-
onchange() 事件会在域的内容改变时发生
-
onblur() 会在对象失去焦点时发生
-
onreset() 表单元素被重置,比如当用户按下表单重置按钮
7.在HTML5中,为input元素新增了以下一些type属性值:
- color:用于指定颜色的控件。
- date:用于输入日期的控件(年,月,日,不包括时间)。
- month:用于输入年月的控件,不带时区。
- week:用于输入一个由星期-年组成的日期,日期不包括时区
- time:用于输入不含时区的时间控件。
- datetime:基于UTC时区的日期时间输入控件(时,分,秒及几分之一秒)。
- datetime-local:用于输入日期时间控件,不包含时区。
- email:用于应该包含 e-mail 地址的输入域。在提交表单时,会自动验证 email 域的值。
- number: 用于应该包含数值的输入域。只能输入数字
- range:用于应该包含一定范围内数字值的输入域。range 类型显示为滑动条。
- search:用于输入搜索字符串的单行文本字段。换行会被从输入的值中自动移除。
- tel:用于输入电话号码的控件。在移动端输入会显示数字键盘,PC端无效果
- url:用于编辑URL的字段。
8.下面情况会导致reflow(回流)发生
1:改变窗口大小
2:改变文字大小
3:内容的改变,如用户在输入框中敲字
4:激活伪类,如:hover
5:操作class属性
6:脚本操作DOM
7:计算offsetWidth和offsetHeight
8:设置style属性
为了减少回流要注意哪些方式:
1:不要通过父级来改变子元素样式,最好直接改变子元素样式,改变子元素样式尽可能不要影响父元素和兄弟元素的大小和尺寸
2:尽量通过class来设计元素样式,切忌用style