2021-10-22 web前端实习笔试

1. label的的用法

<form>
  <label for="male">Male</label>
  <input type="radio" name="sex" id="male" />
  <br />
  <label for="female">Female</label>
  <input type="radio" name="sex" id="female" />
</form>

2. cookies,sessionStorage 和 localStorage 的区别

  1. cookie 数据始终在同源的 http 请求中携带(即使不需要),即 cookie 在浏览器和服务器间来回传递,而 sessionStorage 和 localStorage 不会自动把数据发送给服务器,仅在本地保存。cookie 数据还有路径(path)的概念,可以限制 cookie 只属于某个路径下
  2. 存储大小限制也不同,cookie 数据不能超过 4K,同时因为每次 http 请求都会携带 cookie、所以 cookie 只适合保存很小的数据,如会话标识。sessionStorage 和 localStorage 虽然也有存储大小的限制,但比 cookie 大得多,可以达到 5M 或更大
  3. 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie:只在设置的 cookie 过期时间之前有效,即使窗口关闭或浏览器关闭
  4. 作用域不同,sessionStorage 不在不同的浏览器窗口中共享,即使是同一个页面;localstorage
    在所有同源窗口中都是共享的;cookie 也是在所有同源窗口中都是共享的

3. 如何使一个盒子水平居中

方法一:计算父盒子与子盒子的空间距离

.parent {
	width: 500px;
	height: 500px;
}
.child {
	width: 100px;
	height: 100px;
	margin-left: 200px;
}

方法二:利用定位

.parent {
	width: 500px;
	height: 500px;
	position: relative;
}
.child {
	width: 100px;
	height: 100px;
	position: absolute;
	left: 50%;
	margin-left: -50px;
}

方法三:利用 transform

.parent {
	width: 500px;
	height: 500px;
	position: relative;
}
.child {
	width: 100px;
	height: 100px;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}

方法四:利用 margin: 0 auto

.parent {
	width: 500px;
	height: 500px;
	position: relative;
}
.child {
	width: 100px;
	height: 100px;
	position: absolute;
	margin: 0 auto;
	left: 0;
	right: 0;
}

方法五:利用 display: table-cell

.parent {
	width: 500px;
	height: 500px;
	display: table-cell;
	text-align: center;
}
.child {
	width: 100px;
	height: 100px;
	display: inline-block;
}

方法六:利用 display: flex

.parent {
	width: 500px;
	height: 500px;
	display: flex;
	justify-content: center;
}
.child {
	width: 100px;
	height: 100px;
}

4. em/rem

  1. em 是相对长度单位,相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。它会继承父级元素的字体大 小,因此并不是一个固定的值
  2. rem 是 CSS3 新增的一个相对单位(root em,根 em),使用 rem 为元素设定字体大小时,仍然是相对大小,但相对的只是 HTML 根元素
  3. IE 无法调整那些使用 px 作为单位的字体大小,而 em 和 rem 可以缩放,rem 相对的只是 HTML 根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了 IE8 及更早版本外,所有浏览器均已支持 rem

5. vw/vh

  1. vw 和 vh 是前端开发中的一个动态单位,是一个相对于网页视口的单位。
  2. 系统会将视口的宽度和高度分为100份,1vw 占用视口宽度的百分之一,1vh 占用视口高度的百分之一。
  3. vw、vh 和百分比不同的是,百分比永远都是以父元素为参考,而 vw、vh 是以视口作为参考。

6. flex 布局

  1. 默认所有子元素都会在一行中显示,即使给子元素一个很大的宽度
  2. 父级加了这条属性,子级的 float、vertical-align 就会失效
  3. 如果兼容低版本的机型要加前缀 -webkit-

7. CSS预处理器

  1. CSS预处理器是一种专门的编程语言,用来为CSS增加一些编程特性(CSS本身不是编程语言)。
  2. 不需要考虑浏览器兼容问题,因为CSS预处理器最终编译和输出的仍是标准的CSS样式。
  3. 可以在CSS预处理器中:使用变量、简单逻辑判断、函数等基本编程技巧。

8. 请问 p.name 是:

var fun = function(){
	this.name = 'peter';
	return {
		name: 'jack'
	};
} 
var p = new fun();

jack

9. var, let, const 之间的区别

  1. var 声明变量可以重复声明,而 let 不可以重复声明
  2. var 是不受限于块级的,而 let 是受限于块级
  3. var 会与 window 相映射(会挂一个属性),而 let 不与 window 相映射
  4. var 可以在声明的上面访问变量,而 let 有暂存死区,在声明的上面访问变量会报错
  5. const 声明之后必须赋值,否则会报错
  6. const 定义不可变的量,改变了就会报错
  7. const 和 let 一样不会与 window 相映射、支持块级作用域、在声明的上面访问变量会报错

10. keep-alive 的作用

在开发 Vue 项目的时候,大部分组件是没必要多次渲染的,所以 Vue 提供了一个内置组件 keep-alive 来缓存组件内部状态,避免重新渲染

11. 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

function unique (arr) {
	for (var i = 0; i < arr.length; i++) {
		for (var j = i + 1; j < arr.length; j++) {
			if (arr[i] == arr[j]) {
				arr.splice(j, 1);
				j--;
			}
		}
	}
	return arr;
}

12. 使用过哪些框架

jQuery, Vue, Element

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值