1.对于http://a.com?q=1 ,window.location.search返回的是 ?
答案:?q=1
2.为确保所有h3元素不会放在左浮动元素的右边,可声明 h3?
h3{clear:both;}
3.尝试将URL中参数转化为一个json对象,如“http://a.com?a=1&b=2&c=3”转化为{a:1,b:2,c:3}
function urlParams(url) {
var arr1 = url.split("?");
var params = arr1[1].split("&");//进行分割成数组
var obj = {};//声明对象
for (var i = 0; i < params.length; i++) {
var param = params[i].split("=");//进行分割成数组
obj[param[0]] = param[1];//为对象赋值
}
return obj;
}
console.log(urlParams("http://flup.leley.com?a=1&b=2&c=3"));
4.简述ECMAScript中基本数据类型和引用数据类型的区别:
- 基本数据类型存放在栈内存,引用数据类型存放在堆内存
- 基本数据类型可以用typeOf检测,引用数据类型不可以;
- 基本数据类型会预解释,引用数据类型不预解释
4.纯css画三角形:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
.example{
width:0;
height: 0;
border-top:100px solid green;
border-left:50px solid transparent;
border-right: 50px solid transparent;
}
</style>
</head>
<body>
<div class="example"></div>
</body>
</html>
5.当前一段代码输出结果是什么?
var z = 10;
function foo(){
console.log(z);
}
(function(funArg){
var z = 20;
funArg();
})(foo);
答案:10
这个其实还是考察函数的作用域和闭包的知识,因为foo函数是在一个自执行匿名函数里调用,在这里面声明的变量其实在函数foo体并不会访问到,所以在去找爸爸,全局声明的z,即输出 10