前端面试题套路---有点意思

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中基本数据类型和引用数据类型的区别:

  1. 基本数据类型存放在栈内存,引用数据类型存放在堆内存
  2. 基本数据类型可以用typeOf检测,引用数据类型不可以;
  3. 基本数据类型会预解释,引用数据类型不预解释

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

猜你喜欢

转载自blog.csdn.net/diaoweixiao/article/details/80708515