前端笔试题(一)

1.javascript的typeof返回哪些数据类型?

答:string,number,boolean,undefined,Object,Function,symbol(ES6)

2.行内元素和块级元素的区别?

答: 行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。
块级元素:各占据一行,垂直方向排列。从新行开始结束接着一个断行。

3.CSS选择符有哪些?

答:通配符选择器 *
标签选择器 p,span
类选择器 .box
id选择器 #p1
子选择器 ul>li
后代选择器 ul li
相邻兄弟选择器 h+p
通用兄弟选择器 h~p
属性选择器 E[foo^="bar"]
伪类选择器 E:first-of-type
这里有一篇详细的css选择器问文章.戳戳http://www.cnblogs.com/libingql/p/4375354.html

4.清除浮动的几种方法(至少两种),各自优缺点?

答:猛戳,其中方法三四最常见

5.call和apply的区别?

答:这两种方法都是调用一个对象的一个方法,以另一个对象替换当前对象。
语法:
call(thisObj, arg1,arg2,arg3...)
apply(thisObj, [arg1,arg2,arg3...])
区别:参数不同.call以罗列的形式传参,apply以数组的形式传参

6.如何阻止事件冒泡和默认事件?

阻止冒泡:event.stopPropagation(); event.cancelBubble = true(IE)
阻止默认事件:event.preventDefault()
比较暴力的方法 return false 它会同时阻止事件冒泡也会阻止默认事件

7.http状态码知道哪些?

见之前我写过的文章.猛戳:[常见的http状态码]
(//www.greatytc.com/p/e87609b0d3d3)

8.你有哪些性能优化的方法?
  • 减少http请求,合理设置 HTTP缓存
  • 使用浏览器缓存
  • 启用压缩
  • CSS Sprites 合并 CSS图片,减少请求数的又一个好办法
  • LazyLoad Images
  • CSS放在页面最上部,javascript放在页面最下面
  • 异步请求
    详细可看前端性能优化归纳总结篇!!!
9.如何实现同一个浏览器内多个标签页之间的通信?

调用localstorge、cookies等本地存储方式。
方法一:
localstorge在一个标签页里被添加、修改或删除时,都会触发一个storage事件,通过在另一个标签页里监听storage事件,即可得到localstorge存储的值,实现不同标签页之间的通信。
方法二:
使用cookie+setInterval,将要传递的信息存储在cookie中,每隔一定时间读取cookie信息,即可随时获取要传递的信息。
详细http://blog.csdn.net/zhouziyu2011/article/details/58595904

10.谈谈你对MVC和MVVM的理解

可以看一下浅谈MVC和MVVM模式

11.下面程序的结果
function fun(n,o) {
    console.log(o);
        return {
            fun:function(m) {
                return fun(m,n);
            }
        };
}
var a = fun(0); a.fun(1);  a.fun(2);  a.fun(3);  //undefined,0,0,0
var b = fun(0).fun(1).fun(2).fun(3); //undefined,0,1,2
var c = fun(0).fun(1);  c.fun(2);  c.fun(3); // undefined,0,1,1 
12.下面程序的结果是
var funcs = [];
for(var i = 0;i<10;i++){
    funcs.push(function () {
        console.log(i);
    })
}
funcs.forEach(function (func) {
    func();
})

10个10

13.在不使用循环的条件下,如何创建一个长度为100的数组,并且数组的每一个元素是该元素的下标?

http://www.cnblogs.com/liugang-vip/p/6617988.html

14.编写一个函数foo(n);a)参数n是正数;b)该函数返回一个数组;c)该数组内是n个随机且不重复的正数;d)整数的范围是11到41
function getRand(a,b){
        var rand = Math.round(Math.random()*(b-a)+a);
        return rand;
    }
    function checkArrIn(rand,array){
        if(array.indexOf(rand) > -1){
            return true
        }
        return false;
    }
    function fn(n, min, max) {
        var arr = [];
        var isNum = !isNaN(Number(n));//判断n是不是一个数字,包含字符串类型的数字
        var isRandOk = (n >= min && n <= max && n <= (max - min)) ? true : false;//判断n的取值是否符合要求
        if (n && isRandOk && isNum) {
            for (var i = 0; i < n; i++) {
                var rand = getRand(min, max);
                if (checkArrIn(rand, arr)) {
                    i--
                } else {
                    arr.push(rand)
                }
            }
        }
        return arr;
    }
    console.log(fn(10, 1, 11));
15.简述最近流行的技术,以及你常去的网站
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 8,955评论 1 19
  • 在线阅读 http://interview.poetries.top[http://interview.poetr...
    前端进阶之旅阅读 115,183评论 24 450
  • 今天过得还好吗?多少年没写情书了呢?写信时,不轻易说我爱你,也不会虚伪的应承敷衍,只分享最近的心情或好听的歌曲。这...
    鲸沉入海阅读 2,615评论 0 0
  • 今天开学第二天,早上准备去叫儿子时已经醒了,昨晚就跟儿子说,让他要么自己起来,要么开门睡觉,不然没有把他叫醒,担心...
    心中承诺阅读 2,425评论 2 7