1.css内容溢出元素出现省略号
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
如果不行添加:display: block; overflow: hidden;
2.css制作出一个三角形,鼠标悬浮时转动
<!DOCTYPE html>
<html>
<head>
<title>旋转的三角形</title>
</head>
<style type="text/css">
.triangle{
height: 0px;
width: 0px;
border: 40px solid #000;
border-left: 40px solid #fff;
border-bottom: 40px solid #fff;
transition: 1s;
}
.triangle:hover {
transform: rotateZ(180deg);
}
</style>
<body>
<div class="triangle"></div>
</body>
</html>
3.css元素居中
由于方法较多,另写了一篇博客
https://mp.csdn.net/postedit/83315697
4.css属性animation的用法
animation:box 30s linear infinite ; //加在父元素上
@keyframes box{
0%{ transform:rotateY(0deg) rotateX(0deg); }
100%{ transform:rotate(360deg) rotateX(0deg) }
}
5.position有那几个类型:
static:默认 静态定位,普通流定位
relative:相对定位(不脱离文档流)
absolute:绝对定位(脱离文档流)
fixed:固定定位
6.什么是盒子模型?
在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个部分。这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区域或区域。4个部分一起构成了css中元素的盒模型。
7、行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
行内元素:a、b、span、img、input、strong、select、label、em、button、textarea
块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote
空元素:即系没有内容的HTML元素,例如:br、meta、hr、link、input、img
8.简短叙述一下同步和异步?
同步是阻塞模式,异步是非阻塞模式。
同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;
异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。
9.浏览器内核有?
-
IE: trident内核
- Firefox:gecko内核
- Safari:webkit内核
- Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核
- Chrome:Blink(基于webkit,Google与Opera Software共同开发)
10.sessionStorage 、localStorage 和 cookie 之间的区别
共同点:都是浏览器端缓存数据用的
不同点: cookie会每次随请求发送到服务器端,造成带宽浪费。Cookie数据不能超过4K,适用于会话标识;
web storage 不会浪费带宽,存储大小能达5M,h5新加的特性,可能版本低浏览器不支持;
作用域不同:cookie和localStorage是在同源同窗口中都是共享的;sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;
- sessionStorage,仅在关闭浏览器之前有效
- localStorage,数据存储永久有效;
- cookie只在设置了Cookid过期时间之前一直有效,即使关闭窗口或者浏览器;
11.px和em的区别?
异同点:px的值是固定的,指定是多少就是多少,计算比较容易。em得值不是固定的,并且em会继承父级元素的字体大小。
浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。
12.src和href的区别?
-
href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。
-
src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。
-
当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。
13.document load和document ready的区别?
- 共同点:这两种事件都代表的是页面文档加载时触发。
- ready 事件的触发,表示文档结构已经加载完成(不包含图片等非文字媒体文件)。
- onload 事件的触发,表示页面包含图片等文件在内的所有元素都加载完成。
14.清除浮动的方法:
- 给父元素添加height
- 给父元素添加overflow:hidden;必须定义width或zoom:1,同时不能定义height,
- 结尾处加空div标签 clear:both;添加一个空div,利用css提高的clear:both清除浮动,让父级div能自动获取到高度
15.如何给用js方法给一个元素添加两个onclick事件?
步骤:1获取DOM元素 2.用addEventListener
var _div = document.getElementById("btn4");
_div.addEventListener("click",method1);
_div.addEventListener("click",method2);
16.拖拽会用到那几个事件?他们分别是怎么触发的?
- dragstart:拖拽开始时在被拖拽元素上触发此事件,监听器需要设置拖拽所需数据,从操作系统拖拽文件到浏览器时不触发此事件.
- · dragenter:拖拽鼠标进入元素时在该元素上触发,用于给拖放元素设置视觉反馈,如高亮
- · dragover:拖拽时鼠标在目标元素上移动时触发.监听器通过阻止浏览器默认行为设置元素为可拖放元素.
- · dragleave:拖拽时鼠标移出目标元素时在目标元素上触发.此时监听器可以取消掉前面设置的视觉效果.
- · drag:拖拽期间在被拖拽元素上连续触发
- · drop:鼠标在拖放目标上释放时,在拖放目标上触发.此时监听器需要收集数据并且执行所需操作.如果是从操作系统拖放文件到浏览器,需要取消浏览器默认行为.
- · dragend:鼠标在拖放目标上释放时,在拖拽元素上触发.将元素从浏览器拖放到操作系统时不会触发此事件.
17.去除数组中重复的元素?
1.新建数组s
2.s.indexOf(arr[i]) == -1 为true ==> s.push(arr[i])
18.xml和json的区别?
xml:对数据描述性好
json:传送速率快
19.box-sizing常用的属性有哪些?分别有什么作用?
不多说,直接W3C
20.css选择器有哪些,按选择器的权重优先级依次为?
看一下选择器有哪些:
1.标签选择器(如:body,div,p,ul,li)
2.类选择器(如:class="head",class="head_logo")
3.ID选择器(如:id="name",id="name_txt")
4.全局选择器(如:*号)
5.组合选择器(如:.head .head_logo,注意两选择器用空格键分开)
6.后代选择器 (如:#head .nav ul li 从父集到子孙集的选择器)
7.群组选择器 div,span,img {color:Red} 即具有相同样式的标签分组显示
8.继承选择器(如:div p,注意两选择器用空格键分开)
9.伪类选择器(如:就是链接样式,a元素的伪类,4种不同的状态:link、visited、active、hover。)
10.字符串匹配的属性选择符(^ $ *三种,分别对应开始、结尾、包含)
11.子选择器 (如:div>p ,带大于号>)
12.CSS 相邻兄弟选择器器 (如:h1+p,带加号+)
再看一下,优先级:
-
在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。
-
作为style属性写在元素内的样式
-
id选择器
-
类选择器
-
标签选择器
-
通配符选择器
-
浏览器自定义或继承
21.js中的基本数据类型有哪些?有几种数据类型?
-
基本数据类型有五种:undefined、null、number、string、Boolean
-
其中object复杂数据类型,Object本质上是由一组无序的名值对组成的。
-
Function、Array、Object是引用数据类型。
22.undefined和null的区别?
-
null: Null类型,代表“空值”,代表一个空对象指针,使用typeof运算得到 “object”,所以你可以认为它是一个特殊的对象值。
-
undefined: Undefined类型,当一个声明了一个变量未初始化时,得到的就是undefined。
-
null是javascript的关键字,可以认为是对象类型,它是一个空对象指针,和其它语言一样都是代表“空值”,不过 undefined 却是javascript才有的。undefined是在ECMAScript第三版引入的,为了区分空指针对象和未初始化的变量,它是一个预定义的全局变量。没有返回值的函数返回为undefined,没有实参的形参也是undefined
23.http和https的区别?如何使用?
-
http是HTTP协议运行在TCP之上。所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。
-
https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份
24.常见状态码有哪些?代表什么意思?
关于这个问题,不多说,附上链接,要么死记硬背赶面试,要么项目中出现情况好好想想为什么会出现这个情况,去理解,按号入座 杠杠的
链接地址:http://tool.oschina.net/commons?type=5
25.闭包?在什么时候使用?
-
包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。
-
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
使用闭包的注意点:
-
· 由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
-
· 闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。
function makeAdder(x) {
return function(y) {
return x + y;
};
}
var add5 = makeAdder(5);
var add10 = makeAdder(10);
//add5 和 add10 都是闭包。它们共享相同的函数定义,但是保存了不同的词法环境。在 add5 的环境中,x 为 5。而在 add10 中,x 则为 10
console.log(add5(2)); // 7
console.log(add10(2)); // 12
详细推荐地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures
26.怎么添加、移除、移动、创建、查找、复制节点?老生常谈的问题但很常用。
-
创建新节点
createDocumentFragment() //创建一个DOM片段
createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点 -
添加、移除、替换、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替换
insertBefore() //插入 -
查找
getElementByclassName() //class类型获取;
getElementsByTagName() //通过标签名称;
getElementsByName() //通过元素的Name属性的值;
getElementById() //通过元素Id,唯一性
27.从浏览器输入URL到页面展示都经历了什么?简单描述
一般会经历以下几个过程:
1、首先,在浏览器地址栏中输入url
2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。
3、在发送http请求前,需要域名解析(DNS解析)(DNS(域名系统,Domain Name System)是互联网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住IP地址。),解析获取相应的IP地址。
4、浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手。(TCP即传输控制协议。TCP连接是互联网连接协议集的一种。)
5、握手成功后,浏览器向服务器发送http请求,请求数据包。
6、服务器处理收到的请求,将数据返回至浏览器
7、浏览器收到HTTP响应
8、读取页面内容,浏览器渲染,解析html源码
9、生成Dom树、解析css样式、js交互
10、客户端和服务器交互
11、ajax查询
28.display:none 和 visibility : hidden的区别?
1.display:none是彻底消失,不在文档流中占位,浏览器也不会解析该元素;visibility:hidden是视觉上消失了,可以理解为透明度为0的效果,在文档流中占位,浏览器会解析该元素;
2.使用visibility:hidden比display:none性能上要好,display:none切换显示时visibility,页面产生回流(当页面中的一部分元素需要改变规模尺寸、布局、显示隐藏等,页面重新构建,此时就是回流。所有页面第一次加载时需要产生一次回流),而visibility切换是否显示时则不会引起回流。
29.如何判断一个字符串中出现次数最多的字符?出现了几次?
var str = 'asdfssaaasasasasaa';
var json = {};
for (var i = 0; i < str.length; i++) {
if(!json[str.charAt(i)]){
json[str.charAt(i)] = 1;
}else{
json[str.charAt(i)]++;
}
};var iMax = 0;var iIndex = '';for(var i in json){
if(json[i]>iMax){
iMax = json[i];
iIndex = i;
}
}
console.log('出现次数最多的是:'+iIndex+'出现'+iMax+'次');
30.get和post都是异步的请求方式,有什么区别?
1、请求方式不同:$.get() 方法使用GET方法来进行异步请求的。$.post() 方法使用POST方法来进行异步请求的。
2、参数传递方式不同:get请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给Web服务器的,这种传递是对用户不可见的。
3、数据传输大小不同:get方式传输的数据大小不能超过2KB 而POST要大的多
4、安全问题: GET 方式请求的数据会被浏览器缓存起来,因此有安全问题。
31.冒泡排序和冒泡排序的优化?
关于这个问题我单独写了一篇博文:
https://blog.csdn.net/zeng092210/article/details/84590837
32.js循环中跳出循环的方法(或者break,continue,return三个的作用以及区别)?
同上:
https://blog.csdn.net/zeng092210/article/details/84590837