静态网站建设规划,wordpress免费的吗,无锡模板建站多少钱,阳江招聘网最新招聘压铸工2月16日昆明面试部分考题
1.说说em和rem的区别#xff1f;rpx呢#xff1f;
rem是相对于根元素#xff08;HTML#xff09;进行计算#xff0c;而em是相对于当前元素或父元素的字体大小#xff0c;如果当前文本的字体尺寸没有设置#xff0c;则相对于浏览器的默认字体…2月16日昆明面试部分考题
1.说说em和rem的区别rpx呢
rem是相对于根元素HTML进行计算而em是相对于当前元素或父元素的字体大小如果当前文本的字体尺寸没有设置则相对于浏览器的默认字体尺寸。即1em16px。rem不仅可以设置字体的大小还支持元素宽、高等属性。em是相对于当前元素或父元素进行换算层级越深换算越复杂。而rem是相对于根元素计算避免层级关系。
2.说说c3的新特性
1.文本阴影text-shadow
2.盒子阴影 box-shadow
3.边框圆角 border-radius
4.边框图片boeder-image
5.背景大小 background-size
6.设置背景原点background-origin
作用设置背景图片原点位置这个原点指的是图片左上角
也就是重新定义了background-position的显示位置
应用background-origin:content-box //以内容左上角为原点
padding-box; //默认选项以内边距为原点border-box; //以外边距为原点7.background-clip背景区域裁切也就是让图片在什么区域内显示
作用裁切背景移动端应用的多
8.多背景background: url() ,url(),url();
9.渐变,线性渐变background-image:linear-gradient(渐变方向开始和结束状态渐变范围距离),渐变方向可以是具体方向to top。
10.过渡trasition
11.2D转换transiform:translate(x,y) //第一个值是水平第二个垂直
12.3D转换
13.透视 perspective
14.动画
keyframes scale{
from{}
to{}
}
3.什么是事件冒泡
就是指某件事件的向上传导当后代元素被触发其祖先元素也会被同样触发这就是事件冒泡。
4.浅拷贝与深拷贝的区别以及怎么实现
js数据分为基本数据类型(String, Number, Boolean, Null, UndefinedSymbol)和对象(引用)数据类型。
基本数据类型的特点直接存储在栈(stack)中的数据。引用数据类型的特点存储的是该对象在栈中引用真实的数据存放在堆内存里。引用数据类型在栈中存储了指针该指针指向堆中该实体的起始地址。当解释器寻找引用值时会首先检索其在栈中的地址取得地址后从堆中获得实体。
浅拷贝只复制指向某个对象的指针而不复制对象本身新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象新对象跟原对象不共享内存修改新对象不会改到原对象。
赋值和浅拷贝的区别 当我们把一个对象赋值给一个新的变量时赋的其实是该对象的在栈中的地址而不是堆中的数据。也就是两个对象指向的是同一个存储空间无论哪个对象发生改变其实都是改变的存储空间的内容因此两个对象是联动的。 浅拷贝是按位拷贝对象它会创建一个新对象这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型拷贝的就是基本类型的值如果属性是内存地址引用类型拷贝的就是内存地址 因此如果其中一个对象改变了这个地址就会影响到另一个对象。即默认拷贝构造函数只是对对象进行浅拷贝复制(逐个成员依次拷贝)即只复制对象空间而不复制资源。
浅拷贝的实现方式 1.Object.assign()
Object.assign() 方法可以把任意多个的源对象自身的可枚举属性拷贝给目标对象然后返回目标对象。但是 Object.assign()进行的是浅拷贝拷贝的是对象的属性的引用而不是对象本身。
注意当object只有一层的时候是深拷贝。
2.Array.prototype.concat()
3.Array.prototype.slice()
深拷贝的实现方式
1.JSON.parse(JSON.stringify())
原理 用JSON.stringify将对象转成JSON字符串再用JSON.parse()把字符串解析成对象一去一来新的对象产生了而且对象会开辟新的栈实现深拷贝。这种方法虽然可以实现数组或对象深拷贝,但不能处理函数
2.手写递归方法 递归方法实现深度克隆原理遍历对象、数组直到里边都是基本数据类型然后再去复制就是深度拷贝
3.函数库lodash 该函数库也有提供_.cloneDeep用来做 Deep Copy
6.es6新增了些什么
新增模板字符串箭头函数for-of用来遍历数据—例如数组中的值。ES6 将 Promise 对象纳入规范提供了原生的 Promise 对象。增加了 let 和 const 命令用来声明变量。还有就是引入 module 模块的概念
7.说说你对Promise的理解
Promise是异步编程的一种解决方案他是一个对象可以获取异步操作的消息避免了回调地狱
Promise的实例有三个状态
Pending进行中
Resolved已完成
Rejected已拒绝
把一件事情交给promise时它的状态就是Pending任务完成了状态就变成了Resolved、没有完成失败了就变成了Rejected
Promise的特点:
(1) 对象的状态不受外界影响。promise对象代表一个异步操作有三种状态pending进行中、fulfilled已成功、rejected已失败。只有异步操作的结果可以决定当前是哪一种状态任何其他操作都无法改变这个状态这也是promise这个名字的由来——“承诺”
(2) 一旦状态改变就不会再变任何时候都可以得到这个结果。promise对象的状态改变只有两种可能从pending变为fulfilled从pending变为rejected。这时就称为resolved已定型。如果改变已经发生了你再对promise对象添加回调函数也会立即得到这个结果。这与事件event完全不同事件的特点是如果你错过了它再去监听是得不到结果的
总结: 状态的改变是通过 resolve() 和 reject() 函数来实现的,它的原型上定义了一个 then 方法使用这个 then 方法可以为两个状态的改变注册回调函数
8、浏览器中输入url到网页显示整个过程发生了什么
1.域名解析
2.发起tcp三次握手
3.建立tcp连接之后发起htttp请求
4.服务器端响应http请求浏览器得到html代码
5.浏览器器解析html代码并请求html代码中的资源
6.浏览器对页面进行渲染呈现给用户
9.get / post
get : 缓存、请求长度受限、会被历史保存记录 无副作用(不修改资源)幂等(请求次数与资源无关)的场景 post : 安全、大数据、更多编码类型