最近应聘前端开发,遇到不少问题,在此作个总结整理。
1.请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为Hello World,则经过替换后为Hello%20World。
思路:正则表达式、replace函数
function convertSpaceTo%20 (str) {
var newstr;
newstr = str.replace(/\s+?/g, "%20");
return newstr;
}
2.给定一个var obj = { 1: “Hello”, 2: “World” },至少用两种方法打印打印出Hello World。
var obj = {
1: "Hello",
2: "World"
};
var str = '';
//方法1
for (var i = 1; i < 3; i++) {
str += obj[i] + " "; //注意不能使用obj.i
}
//方法2
for (var key of Object.keys(obj)) {
str += obj[key] + " ";
}
限于水平,目前只想到这两种。
3.IE和标准下有哪些兼容的写法?
- var ev = ev || window.event;
- document.documentElement.clientWidth || document.body.clientWidth;
- var target = ev.srcElement || ev.target;
4.清除浮动的几种办法及其优缺点
- 使用空标签清除浮动
clear: both
(增加了无意义的标签) - 使用
overflow: auto
(使用zoom: 1
兼容IE) - 使用
after
伪元素清除浮动(用于非IE浏览器)
5.display: none
与visibility: hidden
的区别
display: none
隐藏对应的元素,在文档布局中不再给它分配空间,它周边的元素会合拢,就当它不存在。visibility: hidden
隐藏对应的元素,但是在文档布局中仍然保留它。