做过的几个javascript面试题

    技术2022-05-20  56

    1.现需要一个函数counter(),使每次调用它的时候返回递增的值。第一次返回1,第二次返回2,以此类推。请写出这样一个函数,不允许使用任何全局变量,也不允许在counter函数上附加属性,如counter.n这样的属性,也不允许使用cookie这样的东西。

    闭包。

      

    var counter = function() { var n = 0; return function(){return ++n;}; }(); for (var i=0; i<4; i++) { alert(counter()); }

    2.“加入收藏”功能

     

    function add2Fav() { try {   window.external.addFavorite(sURL, sTitle); } catch (e) { try {   window.sidebar.addPanel('tencent', 'http://www.example.com/', ""); } catch (e) {   alert("加入收藏失败,有劳您手动添加。"); } } }

    3.IE8支持的X-UA-Compatible是做什么用的

    X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE>指令,都像是使用了 Windows Internet Explorer 7的标准模式。而content="IE=EmulateIE7"模式遵循<!DOCTYPE>指令。对于多数网站来说,它是首选的兼容性模式。目前IE8尚在测试版中,所以为了避免制作出的页面在IE8下面出现错误,建议直接将IE8使用IE7进行渲染。也就是直接在页面的header的meta标签中加入如下代码:

    <meta http-equiv="X-UA-Compatible" content="IE=7" />

    4. 实现最简单的JS类继承。现有类Point,请补充好类Rect,使之继承自Point

    function Point(x,y){ this.x=x; this.y=y; } function Rect(x,y,width,height){ /*this.p = Point; this.p(x,y); delete this.p;*/ Point.call(this,x,y); this.w=width; this.h=height; this.output = function(){return this.x+" "+this.y+" "+this.w+" "+this.h}; }

     


    最新回复(0)