前端面试题

1、闭包的理解

       函数内部可以读取函数外部的全局变量;在函数外部无法读取函数内的局部变量。

        函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!

2、什么是跨域

        由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。

        网络协议不同,如http协议访问https协议。

        端口不同,如80端口访问8080端口。

        域名不同,如jianshu.com访问baidu.com。

        子域名不同,如abc.qianduan.com访问def.qianduanblog.com。

        域名和域名对应ip,如www.a.com访问20.205.28.90.

        解决跨域问题:

        JSONP : 动态插入script标签

       CORS:后端人员在处理请求数据的时候,添加允许跨域的相关操作

3、数组的方法

Array 对象方法

concat() 连接两个或更多的数组,并返回结果。

join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

pop() 删除并返回数组的最后一个元素。  

shift() 删除并返回数组的第一个元素

push() 向数组的末尾添加一个或更多元素,并返回新的长度。

unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

reverse() 颠倒数组中元素的顺序。

slice() 从某个已有的数组返回选定的元素

sort() 对数组的元素进行排序

splice() 删除元素,并向数组添加新元素。

toSource() 返回该对象的源代码。

toString() 把数组转换为字符串,并返回结果。

toLocaleString() 把数组转换为本地数组,并返回结果。

valueOf() 返回数组对象的原始值

4、ajax请求

$.ajax({

        type:"GET",

        url:"service.php?number="+$("#keyword").val(),

        dataType:"json", 预期服务器返回数据的类型

        success:function(data){

           if(data.success){

               $("searchResult").html(data.msg);

           }else{

               $("#searchResult").html("出现错误:" + data.msg);

           }

        },

        error:function(jqXHR){

           aler("发生错误:"+ jqXHR.status);

        }

});

5、web前端开发,如何提高页面性能优化?

内容方面:

1.减少 HTTP 请求 (Make Fewer HTTP Requests)

2.减少 DOM 元素数量 (Reduce the Number of DOM Elements)

3.使得 Ajax 可缓存 (Make Ajax Cacheable)

针对CSS:

1.把 CSS 放到代码页上端 (Put Stylesheets at the Top)

2.从页面中剥离 JavaScript 与 CSS (Make JavaScript and CSS External)

3.精简 JavaScript 与 CSS (Minify JavaScript and CSS)

4.避免 CSS 表达式 (Avoid CSS Expressions)

针对JavaScript :

1. 脚本放到 HTML 代码页底部 (Put Scripts at the Bottom)

2. 从页面中剥离 JavaScript 与 CSS (Make JavaScript and CSS External)

3. 精简 JavaScript 与 CSS (Minify JavaScript and CSS)

4. 移除重复脚本 (Remove Duplicate Scripts)

面向图片(Image):

1.优化图片

2 不要在 HTML 中使用缩放图片

3 使用恰当的图片格式

4 使用 CSS Sprites 技巧对图片优化

你可能感兴趣的:(前端面试题)