前端题总结二

1.onload和ready区别javascript

1.执行时间 
        window.onload必须等到页面内包括图片的全部元素加载完毕后才能执行。 
        $(document).ready()是DOM结构绘制完毕后就执行,没必要等到加载完毕。 

2.编写个数不一样 
         window.onload不能同时编写多个,若是有多个window.onload方法,只会执行一个。 
         $(document).ready()能够同时编写多个,而且均可以获得执行,并按添加的顺序执行css

function addLoadEvent(func){
    var oldLoad = window.onload;
    if(typeof window.onload!='function'){
        window.onload=func;
        }else{
            window.onload=function(){
                oldLoad();
                func();
                }
            }
    }

3.简化写法 
         window.onload没有简化写法 
         $(document).ready(function(){})能够简写成$(function(){});html

4.向.ready()回调函数中传入参数java

   jQuery提供了一个jQuery.noConflict()方法,调用该方法能够把对$标识符的控制权让渡还给其余库。web

 

2.改变this执行环境ajax

apply  call数组

详细见博客:http://www.cnblogs.com/YangqinCao/p/5411758.html浏览器

 

3.匿名函数的做用,哪些地方用到缓存

匿名函数:就是没有名字的函数服务器

定义函数字面量和即时函数时都有用到

你能够认为他们是一次性函数。当你只须要用一次某个函数式,他们就特别有用。经过使用匿名函数,没有必要把函数一直放在内存中,因此使用匿名函数更加有效率。

匿名函数的做用是建立一块封闭区域,外面不可以访问里面的变量和方法,

 

4.onclick和click的区别

1.onclick是绑定事件,告诉浏览器在鼠标点击时候要作什么

click自己是方法做用是触发onclick事件,只要执行了元素的click()方法,就会触发onclick事件。

2.click()方法的主要做用是触发调用click方法元素onclick事件。

click方法中的function代码会在onclick事件执行完后执行,此时click方法起到追加事件的做用。

<script type= "text/javascript" >
$( function (){
$( "#btn3" ).click( function (){
alert( "aa" );
});
});
function change(){
alert( "bb" );
}
</script>
<button id= "btn3" onclick= "change()" >dd</button>

先弹出bb再弹出aa

 

5.从输入网址到显示网页的过程

通常会经历如下几个过程:

一、首先,在浏览器地址栏中输入url

二、浏览器先查看浏览器缓存-系统缓存-路由器缓存,若是缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操做。

三、在发送http请求前,须要域名解析(DNS解析),解析获取相应的IP地址。

四、浏览器向服务器发起tcp链接,与浏览器创建tcp三次握手

五、握手成功后,浏览器向服务器发送http请求,请求数据包

六、服务器处理收到的请求,将数据返回至浏览器

七、浏览器收到HTTP响应

八、读取页面内容,浏览器渲染,解析html源码

九、生成Dom树、解析css样式、js交互

十、客户端和服务器交互

十一、ajax查询

 

其中,步骤2的具体过程是:

  • 浏览器缓存:浏览器会记录DNS一段时间,所以,只是第一个地方解析DNS请求;
  • 操做系统缓存:若是在浏览器缓存中不包含这个记录,则会使系统调用操做系统,获取操做系统的记录(保存最近的DNS查询缓存);
  • 路由器缓存:若是上述两个步骤均不能成功获取DNS记录,继续搜索路由器缓存;
  • ISP缓存:若上述均失败,继续向ISP搜索。

 

6.进程和线程的区别

计算机的核心是CPU,CPU承担全部的计算任务。CPU就比如是一个工厂,时刻在运行。

假设这个工厂的电力有限,一次只能供一个车间使用,也就是说一个车间在使用的时候其余车间都必须关闭。进程就是这个车间,一个进程在执行时,其余进程要等待它执行完。

一个车间有不少个工人,他们协同完成一个任务,那么工人就是线程,一个进程能够有多个线程。

车间里有不少小房间,每一个工人均可以进入这些房间,因此一个进程的内存是共享的,全部线程可使用这些共享内存。

可是房间有大有小,好比说厕所一次只能进一我的,这表明有些共享内存一次只能容许一个线程访问,其余线程必须等它结束了才能使用这块内存。一个防止他人进入的办法就是,先进去的人在房间上加一把锁,后来的人看到门上的锁就知道里面有人,就在外面等着,这把锁就叫互斥锁,能防止多个线程同时读写一个内存。

有些房间好比厨房比较大,一次能够进入n我的,可是超过n我的就要在外面等待。这比如某些内存区域只能给固定的线程数访问。为了防止其余人进入,能够在房间门口挂n把锁,进去一我的拿一把锁,出来的人再把锁挂在门上,这样后来的人看到门上没锁了就知道要在外面等待了。这种作法叫作信号量。能够防止多线程冲突。

操做系统的设计归结为3点:

1.以多进程形式,容许多个任务同时运行

2.以多线程形式,容许一个任务分红不一样的部分同时运行

3.提供协调机制,防止进程之间与线程之间的冲突,容许线程之间和进程之间共享资源。

 

不一样归结为如下几点:

1. 一个程序至少有一个进程,一个进程至少有一个线程
2. 线程的划分尺度小于进程,使得多线程程序的并发性高
3. 另外,进程在执行过程当中拥有独立的内存单元,而多个线程共享内存,从而极大地提升了程序的运行效率
4. 线程在执行过程当中与进程仍是有区别的。每一个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。可是线程不可以独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制 
5. 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分能够同时执行。但操做系统并无将多个线程看作多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别
 
7.JS有哪些部分
一个完整的JS实现应该由下列三个不一样的部分组成:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)
 
8.CSS3新增的内容
 
9.数组合并的方法,用一句代码实现concat功能
相关文章
相关标签/搜索