校招面试基础题

HTML

1.html5语义化标签的理解

答:首先肯定是便于人的理解。看标签知其意。增加代码的可读性。其次,让机器能够读懂(SEO)

2.块级元素,行内元素有哪些

块级:div,p,h1-h6,ul,li,table……

行内:span,button,img,input,a,strong……

3.src和href区别

src:一般用在img标签,用来加载图片的路径,同时会暂停其他资源的下载和处理。

href:一般用在a标签,它的加载不会暂停其他资源的下载和处理。

4.doctype的作用

告诉浏览器的解析器使用哪种html规范来解析页面。而如果没有doctype会导致文档不以标准模式解析,而以混杂模式解析(不同浏览器有不同的渲染效果)。

5.html5新特性

简化了文档申明

简化了编码申明

删除了一些标签,如font,i

增加了新的标签,如header,nav,footer,section,aside,audio,canvas等

CSS

1.css选择器优先级

!import > 内联> id > class == 伪类 == 属性> 标签

2.flex布局

设置display为flex,其所有子元素都是它的项目。

默认两条轴(水平和垂直)

flex-direction:设置主轴方向(row,column)

justify-content:主轴排列方式

align-items:纵轴排列方式

justify-wrap:规定当一行排列不下的时候是否换行

对于一个容器的项目,可以用order规定其排列顺序

flex-grow:指定当前排序空间有剩余时候,项目放大比例。

flex-shrink:指定当前排序空间不足,项目缩小比例。

3.position有几个值

absolute:绝对定位。相对于离自己最近的有定位的父级元素定位。

relative:相对定位。相对于自身定位。

fixed:粘性定位。相对于浏览器窗口定位。

static:默认值。没有定位。

Javascript:

1.数据类型

简单数据类型:number,string,boolean,null,undefined(可以通过typeof判断)

复杂数据类型:object,array,function等(通过instanceof判断——原理:原型链)

2.bind,call,apply区别

相同点:都是用来改变this的指向的.

bind与call,apply最大的区别就是,bind不会立即被调用,而是返回一个新的函数,其内的this指向创建它时传入bind的第一个参数。

apply和call都是为了改变某个函数运行时的上下文而存在的。

apply和call区别,apply的第二个参数是一个参数数组,call第二个参数及以后都是数组里的元素。

即:bind:返回绑定函数,传入参数数列。

call:传入参数队列

apply:传入参数数组

3.闭包

即有权访问另一个函数作用域中的变量的函数。

是作用域的特殊情况:1)作为函数返回值返回2)作为参数传递

作用:隐藏变量,避免全局污染。可以读取到函数内部的变量。

4.原型和原型链

在js中,每当定义一个函数数据类型时,都会自身带一个显示原型prototype属性。

每一个class都具有自己的显示原型,而它的实例都有自己的隐式原型。每一个实例对象的隐式原型都指向它对应类的显示原型,一层一层查找,直到object或null

5.实现继承的几种方式

首先是原型链继承

其次构造函数继承

es6继承(extends)

5.浅拷贝and深拷贝

浅拷贝只是复制某个对象的指针,而不是对象本身,当一个值改变时,另一个也会跟着变化。

深拷贝是另外创造了一个对象,新对象和旧对象不共享内存,即一个改变,另一个不会跟着变化。

6.作用域

可访问对象,对象,函数的集合。

7.防抖和节流

防抖是说对于短时间内连续触发的事件,防抖的含义是在某个时间期限内,事件处理函数只执行一次。

节流是说对于短时间内发生同一件事件,在函数执行一次后,在时间期限内不再工作,直到过了期限时间。

8.dom节点操作的方法

创建节点:document.createElement(eName)

创建节点属性:document.getAttribute(name)

创建文本节点:document.createTextNode(text)

添加节点:document.insertBeforeNode(newNode,referenceNode)

                  document.appendChild(newNode)

删除节点:parentNode.removeChild(node)

9.ajax请求

原生的ajax:

创建异步对象

var xhr = new XMLHttpRequest()

设置请求行open

xhr.open('get','url参数')

让异步对象接收服务器的响应数据

10.== 和===

==:值相等

===:值相等且类型也相等

11.重绘和回流

重绘:改变dom元素的颜色,不影响布局的会重新渲染页面。

回流:变dom原色的大小,宽高,影响页面布局的,会回流。回流必然发生重绘。

12.前端性能优化

减少请求数:合并资源(精灵图),减少http请求数。

加快请求速度:预解析dns,减少域名数

缓存:http请求协议缓存,离线缓存

13.跨域问题

协议,域名,端口三者一个不一样,就是跨域。

解决跨域问题

1)jsonp:利用script标签,没有跨域限制的漏洞,网页可以得到其他来源的动态产生的json数据。

2)cors:服务器设置。

HTTP:

1.状态码:

200:成功

404:not found

301:永久重定向

303:暂时重定向

400:客户端错误

401:当前用户验证

403:服务器已经得到请求,但是拒绝执行(没有权限)

500:服务器错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值