还是太菜了,问啥啥不会,。/(ㄒoㄒ)/~~
1.js的原始类型
- String,Boolean,undefined,null,symbol,Number
2.for (var i = 1; i <= 5; i++) {
setTimeout(function timer() {
console.log(i)
}, i * 1000)
}
输出什么?
- 输出6 6 6 6 6
3.题上,如何修改可以输出 1,2,3,4,5
- 把var修改成let
- 将setTimeout放在立即执行函数内,将i作为参数传递给包裹函数。
for (var i = 1; i <= 5; i++) { (function(i) { setTimeout(function timer() { console.log(i) }, i * 1000) })(i); }
4.Ajax原理
- 其中关键部分是XMLHttpRequest,使得浏览器可以发送和接受http请求以及响应。浏览器继续做其他事情,等到xhr返回来的数据再进行渲染页面。
5.React的生命周期
- Mounting(挂载阶段,伴随着整个虚拟dom的生成):componentWillMount(在组件即将被挂载到页面的时刻执行),render(页面status和props发生变化时侯执行),compnentDidMount(组件挂载完被执行)
- Updation:shouldComponentUpdate(在组件更新之前被执行),componentWillUpdate(在更新之前,在should之后,若前一个为false,该函数不执行),componentDidUpdate(更新之后 执行),componentWillReceiveProps(已经存在dom是会执行)
- Unmounting:componentWillUnmount(组件 删除的时候 执行),
6.简述盒模型的概念
- 分为IE6盒子模型和W3C盒子模型,盒子有四个边界:外边距margin,边框border,内边距边界padding,内容content,css3中有box-sizing属性 可以控制盒子的计算方式,
- content-box:padding和border不被包含在定义的width和height之内,对象的实际宽度等于设置的width+border+padding
- border-box:padding和border被包含在定义的width和height之内,对象实际宽度是width
7.
offsetWidth/offsetHeight
- 对象的可见宽度和高度,包含滚动条等边线,会随窗口的显示大小变化
clientWidth/clientHeight
- 对象的可见宽度和高度,不包含 滚动条等边线,会随窗口的显示大小变化
scrollWidth/scrollHeight
- 是对象实际内容的宽高,不包含边线宽度,会随对象中内容的多少改变
8.
实现一个跑马灯组件
文案:
'警惕“兼职刷单”、“假冒客服退款”、“冒充公安局”等骗术,请您保护好贷款资金安全'
要求:
-
容器宽度不固定,如果容器长于文案不滚动,容器短于文案则滚动
-
文案循环滚动,文案展示到末尾后4个空格处要跟上开头的文案
请给出 DOM 结构设计,以及主要的逻辑及样式实现
*{ padding: 0; margin: 0; box-sizing: border-box; } .wrap { position: relative; width: 40%; height: 40px; margin: 10% auto; font-size: 0; background: #ddd; overflow: hidden; } .wrap .cont { position: absolute; top: 0; left: 0; width: 200%; /*animation: 5s move infinite linear;*/ -webkit-animation: 5s move infinite linear; } .wrap .txt{ font-size: 18px; color: cadetblue; display: inline-block; width: 50%; height: 30px; border-left: 1px solid #fff; line-height: 30px; text-align: center; margin-top: 5px; background: #000; } .wrap:hover .cont { -webkit-animation-play-state: paused; } @keyframes move { from {left:0px;} to {left:-100%;} } @-webkit-keyframes move { 0%{ left:0; } 100%{ left: -100%; } }
<!DOCTYPE html> <html> <head> <title></title> <meta charset="UTF-8"/> <link rel="stylesheet" type="text/css" href="test.css"/> </head> <body> <div class="wrap"> <div class="cont"> <p class="txt">文字如果超出了宽度自动向左滚动文字如果超出了宽度自动向左滚动。</p> <p class="txt">文字如果超出了宽度自动向左滚动文字如果超出了宽度自动向左滚动。</p> </div> </div> </body> </html>
9.OSI七层协议
- 物理层
- 数据链路层
- 网络层
- 运输层
- 会话层
- 表示层
- 应用层
10.http有哪些请求?HTTP常见状态码有哪些有什么意义?
- get,head,post,put,delete,connect,options,trace
- 1XX:已接受,正在处理
- 2XX:请求成功
- 3XX:请求需要重定向
- 4XX:连接失败,并且妨碍了服务器 进程
- 5XX:请求出现异常,服务器无法处理
11.TCP 三次握手以及TCP和UDP的区别
- 第一次,客户端发送syn包给服务端,
- 第二次,服务端发送ack包和fin包给客户端,
- 第三次,客户端收到syn+ack报文以后,会回应一个ack报文
- tcp是面向连接的,udp是无连接的
- tcp提供可靠的服务,udp尽最大可能交付,但不保证可靠
- udp具有较好的实时性,工作效率比tcp高
- tcp只能点对点传输,udp可以一对一,一对多,多对多传输
- tcp占用资源高,udp占资源低
12.给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
int maxSum(vector<int> nums) { int maxNum = 0; int temp = 0; for(int i = 0;i < nums.size(); ++i) { temp += nums[i]; if(temp > maxNum) { maxNum = temp; } else if(temp < maxNum) { temp = 0; } } return maxNum; }
13.用线性时间和常数附加空间将一篇文章的单词(不是字符)倒序。
- 可以从两端起交换每个单词,然后再将每个单词内部逆序。(我当时答得时候说从最后开始遍历,到空格就把目前单词插入最前面。 )