前端面试题汇总2

来源:互联网 发布:新经济政策知乎 编辑:程序博客网 时间:2024/05/22 14:17

11、JavaScript中如何检测一个变量是一个string类型?

string类型有两种生成方式

(1)var str="hellow";

(2)var str1=new String("world");

function isString(str){    return (typeof str=="string"||str.constructor==String);}
那么如何检测一个array数组呢?

我们知道typeof数组返回的是object,所以不能用typeof;

第一种:instanceof

var arr=[1,2,3];alert(arr instanceof Array?alert("true"):alert("false"));
第二种:constructor

function isArray(o){    return o.constructor==Array;}
第三种:特性判断法

我们可以通过数组的一些特性来判断其类型,比如typeof是object,length是number类型,拥有splice方法等。

第四种:

function isArray(obj){    return Object.prototype.toString.call(obj)==='[object Array]';}

12、网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“XX年还剩XX天XX时XX分XX秒”

<p id="time"></p><script>   window.setInterval("counter()",1000);        function counter(){            var date=new Date();            var year=date.getFullYear();            var date2=new Date(year,12,31,23,59,59);            var time=(date2-date)/1000;            var day=Math.floor(time/(24*60*60));            var hour=Math.floor(time%(24*60*60)/(60*60));            var minute=Math.floor(time%(24*60*60)%(60*60)/60);            var second=Math.floor(time%(24*60*60)%(60*60)%60);            var str=year+"年还剩"+day+""+hour+""+minute+""+second+"";            var p=document.getElementById("time");            p.innerText=str;        }</script>
13、鼠标单击button1后将button1移动到button2后面

<div>    <input type="button" value="button1" id="button1" onclick="change(this);">    <input type="button" value="button2" id="button2"></div><script>   function change(o){       var parent= o.parentNode;       parent.appendChild(o);   }</script>
14、下面css标签在JavaScript中调用应如何拼写,border-left-color,-moz-viewport

borderLeftColor

mozViewport

15、如何控制alert中的换行

用\n

alert("p\np");
16、请事先,鼠标点击页面中的任意标签,alert该标签的名称(注意兼容性)

window.onclick= function (e) {    var e=e||window.event;    var o= e.srcElement|| e.target;    alert(o.tagName);}
17、什么是闭包?下面这个ul,如何点击每一列的时候alert其index?

内部函数被定义它的函数的外部区域调用时就产生了闭包

<ul id="ul">

  <li>这是第一条</li>

 <li>这是第二条</li>

 <li>这是第三条</li>

</ul>

<ul id="ul">    <li>这是第1</li>    <li>这是第2</li>    <li>这是第3</li></ul><script>    (function a() {        var index=0;        var ul=document.getElementById("ul");        for(var i=0;i<ul.childNodes.length;i++){            if(ul.childNodes[i].nodeName=="LI"){                var li=ul.childNodes[i];                li.onclick= function () {                    index++;                    alert(index);                }            }        }    })();</script>
18、js中如何定义class,如何扩展prototype?

el.className="xxx";

A.prototype.B=C;

A是某个构造函数的名字

B是这个构造函数的属性

C是想要定义的属性

19、如何添加HTML元素的事件,有几种方法?

(1)为HTML元素的事件属性赋值

(2)在js中使用el.onxxx=function(){};

(3)使用DOM2的添加事件的方法addEventListener或attachEvent

20、document.write和innerHTML的区别?

document.write只能重绘整个页面

innerHTML可以重绘页面的一部分






0 0
原创粉丝点击