前端面试资料整理

本文详细梳理了前端面试中的核心知识点,包括创建对象、异步传输、JavaScript语法、事件处理、DOM操作、数据类型与转换、作用域、闭包、浏览器事件循环、性能优化等方面。还探讨了Ajax、异步编程、BOM对象、CSS Sprites、图片压缩、跨域解决方案等实用技巧。了解并掌握这些内容,对于前端面试和实际工作都至关重要。
摘要由CSDN通过智能技术生成

创建对象的方式
(1)使用new关键字

var start = new Object;

(2)使用花括号

var start = {};

创建类
ES6之前使用function关键字模拟:function Person(){};
ES6中类的创建方式:class Person{}

异步传输实现方式:
(1)ajax
(2)iframe(加上target)实现

JavaScript 中应该用 "" 还是 "="
绝大多数场合应该使用 === ,只有检测 null/undefined 的时候可以使用 x == null

javascript的typeof返回哪些数据类型
Object number function boolean underfind

例举3种强制类型转换和2种隐式类型转换?
强制(parseInt,parseFloat,number)
隐式(== – ===)

split() join() 的区别
前者是切割成数组的形式,后者是将数组转换成字符串

数组方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部删除
Unshift()头部添加 shift()头部删除

slice
(1)slice() 方法可从已有的数组中返回选定的元素。
(2)slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
注意: slice() 方法不会改变原始数组。

sort
sort() 方法用于对数组的元素进行排序。按字母顺序值排序;

call和apply的区别
apply:应用某一对象的一个方法,用另一个对象替换当前对象。
call:调用一个对象的一个方法,以另一个对象替换当前对象。

apply:最多只能有两个参数——新this对象和一个数组 argArray。
call:则是直接的参数列表,主要用在js对象各方法互相调用的时候,使当前this实例指针保持一致,或在特殊情况下需要改变this指针。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

apply和call功能一样,只是传入的参数列表形式不同:
apply的写法:func.apply(func1,[var1,var2,var3])
call的写法:func.call(func1,var1,var2,var3)

substring和substr的区别

var v1 = 'Hello World';
//如果只是写一个参数,两者的作用都是一样的:就是截取字符串当前下标以后直到字符串最后的字符串片段。
console.log(v1.substring(1));   //ello World
console.log(v1.substr(1));      //ello World

console.log('**********************************');

// 当写第二个参数的时候,两者就会有完全不同的含义;
// substring(a,b)
// 第二个参数是截取到字符串最终的下标(实际截取位置是1-7)
console.log(v1.substring(1,8));      //ello Wo
// substr(a,b)
// 第二个参数是截取字符串的长度(实际截取8个字符长度值)
console.log(v1.substr(1,8));        //ello Wor

事件委托是什么
利用事件冒泡的原理,自己所触发的事件,让他的父元素代替执行!

Javascript的事件流模型都有什么?
(1).冒泡型事件:指事件按照从最精确的对象到最不精确的对象的顺序逐一触发

(2).捕获型事件:它与冒泡型事件相反,指事件按照从最不精确到最精确的对象的顺序逐一触发

JS对象与JSON格式的互相转换
①JSON的解析(json数据转换成JS对象):

var myObject=JSON.parse(myJSONtext);

②JSON的序列化(JS对象转换成JSON数据):

var myJSONtext=JSON.stringify(myObject);

**列举浏览器对象模型BOM里常用的至少4个对象,并列举window对象的常用方法至少5个 **
对象:Window location screen history navigator
方法:Alert() confirm() prompt() open() close() setinterval() settimeout()

documen.write和 innerHTML 的区别?
document.write 只能重绘整个页面;innerHTML 可以重绘页面的一部分

闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部的局部变量的函数,或者定义在一个函数内部的函数。

闭包的好处:
(1)不增加额外的全局变量;
(2)执行过程中所有变量都在匿名函数内部
闭包的坏处:
(1)内存消耗大,会影响网页的性能
(2)会改变父函数内部变量的值

如何阻止事件冒泡和默认事件
阻止事件冒泡:w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true;

阻止默认事件:w3c的方法是e.preventDefault(),IE则是使用return false;

浏览器渲染页面的过程
1、用户输入URL地址
2、浏览器解析URL解析出主机名
3、浏览器将主机名转换成服务器ip地址(浏览器先查找本地DNS缓存列表 没有的话 再向浏览器默认的DNS服务器发送查询请求 同时缓存)
4、浏览器将端口号从URL中解析出来
5、浏览器建立一条与目标Web服务器的TCP连接(5、6、7三次握手)
6、浏览器向服务器发送一条HTTP请求报文
7、服务器向浏览器返回一条HTTP响应报文
8、关闭连接 浏览器解析文档

HTTP状态码知道哪些?
状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求

200 OK                        //客户端请求成功
400 Bad Request               //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized              //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
403 Forbidden                 //服务器收到请求,但是拒绝提供服务
404 Not Found                 //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error     //服务器发生不可预期的错误
503 Server Unavailable        //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

Javascript异步编程的4种方法
一、回调函数
二、事件监听
三、发布/订阅
四、Promises对象
http://www.ruanyifeng.com/blog/2012/12/asynchronous_javascript.html

JS的原型和原型链
(1)原型和原型链是JS实现继承的一种模型;
(2)原型链的形成依靠 ** **proto ** **而不是prototype
(3)在js中每一个对象都可以看成是一个原型对象,通过proto可以把所有原型对象串联成一条原型链;

cookies、localStorage、sessionStorage的理解
localStorage:长期存储数据。浏览器关闭不丢失;
sessionStorage:存储的数据在浏览器关闭后删除;

cookies:保存的数据在浏览器和服务器之间传递,数据是加密的;存储数据大小是4k;
localStorage、sessionStorage保存的数据在本地,存储数据大小是5M;

作用域
指对某一属性(变量)或者方法(函数)具有访问权限的代码空间,在JS中作用域在函数中进行维护;

this在js中(当前对象)是一个依赖于使用它的执行环境中被解析的关键字;

input输入框提示信息

<input type="text" placeholder="请输入信息"/>
<input type="text" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值