互联网公司面试总结

1、HTML语义化的含义

指的是要根据网页内容选择合适的标签,便于开发者阅读和写出更优雅的代码,同时也有助于搜索引擎更容易理解

好处:1、即使在没有css的情况下,页面也能呈现很好的内容结构和代码结构

          2、用户体验的上升

     3、有利于SEO

     4.有利于其他设备解析

2、盒子模型,行内元素,块级元素

盒子模型:遵循w3c标准的盒子模型和IE盒子模型

块级元素:div,p,h1~h6,caption,form, hr,ol, ul,li,table,fieldset。。。

行内元素:span,a,em,img,input,label,select,textarea

区别:块级元素会独占一行,其宽度会自动填满其父元素宽度,行内元素不会独占一行,其宽度随元素的内容而变化

行内元素设置width,height无效

3、常见的几种浏览器兼容问题及解决方案

答:1、随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大

  CSS里    *{margin:0;padding:0;}

       2、图片默认又间距

  使用float为img布局

4、css选择器优先级

!important > 行内样式>ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

优先级相同时,则采用就近原则,选择最后出现的样式;

继承得来的属性,其优先级最低;

5、input类型,readyonly 与 disable的区别

input类型:button、text、checkbox、radio、submit、password、email。image、file、reset

Readonly和Disabled它们都能够做到使用户不能够更改表单域中的内容

区别:1、在某个表单中为用户预填了某个唯一识别代码,不允许用户改动,但是在提交时需要传递该值,此时应该将它的属性设置为readonly 。

           2、如果一个输入项的disabled设为true,左右操作无效,最重要一点是这个表单输入项不会被提交

      3、表单提交后,按钮disabled掉

      4、readonly只是针对文本输入框这类可以输入文本的输入项,如果设为true,用户只是不能编辑对应的文本,但是仍然可以聚焦焦点,并且在提交表单的时候,该输入项会作为form的一项提交。

6、ajax的基本流程

步骤:

//创建XMLHttpRequest对象
var xmlHttpReq=null;
if(window.ActiveXObject){
    xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
    xmlHttpReq= new XMLHttpRequest();
}

//创建http请求
xmlHttpReq.open("GET","test.php",true)

//设置响应http请求状态变化的函数
xmlHttpReq.onreadystatechange=function(){
    if(xmlHttpReq.readyState===4){
        if(xmlHttpReq.status===200){
            document.write(xmlHttpReq.responseText)
        }
    }
}

//发送http请求
xmlHttpReq.send(null);

//局部更新

7、css sprites的优缺点

优点:1、减少http请求 2、不需要对每一个小图片命名 3、减少图片的字节

缺点:1、图片合并的时候要留好足够的空间 2、维护性差 3、在移动端夜间模式下,不清晰

div顶点不变,图片移动,向右向下为正

8、节点操作

//创建元素节点
document.createElement('div')

//创建文本节点
document.createTextNode("javascript")

//插入节点,在指定节点的最后一个子节点列表之后添加一个新的子节点
parentNode.appendChild(newNode)

//插入节点,在已知节点前插入一个新节点
parentNode.insertBefore(newNode,node)

//删除节点,返回被删除的节点
parentNode.removeChild(parentNode.childNodes[1])

//替换节点元素
oldNode.parentNode.replaceChild(newNode,oldNode)

//查找节点
document.getElementById()

9、jquery插件的基本格式

 

//添加一个新的全局函数
jQuery.foo=function(){
    alert("")
}

//增加多个全局函数
jQuery.foo=function(){

}
jQuery.bar=function(){

}

//使用jQuery.extend(object)
jQuery.extend({
    foo:function(){

    },
    bar:function(){

    }
})

//使用命名空间
jQuery.myPlugin={
    foo:function(){

    },
    bar:function(){

    }
}
$.myPlugin.foo()

//对象级别的开发
;(functions($){
    $.fn.extend({
        methodName:function(){

        }
    })
})(jQuery)

10、

var a=10;
say();
function say(){
    a=a+10;
    console.log(a);
    return a;
}
console.log(a);
console.log(say()+10)
VM634:5 20
VM634:8 20
VM634:5 30
VM634:9 40

 

posted @ 2017-08-18 13:27  郑庙华  阅读(168)  评论(0编辑  收藏  举报