面试
PeggyCoding
这个作者很懒,什么都没留下…
展开
-
ES6对象的扩展
ES6有五种方法可以遍历对象的属性。for…in循环遍历对象自身的和继承的可枚举属性Object.keys(obj)Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性Object.getOwnPropertyNames(obj)Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性的键名Object.getOwnPropertySymbols(obj)Object.getOwnPropertySymbols(obj原创 2020-10-20 15:06:10 · 132 阅读 · 0 评论 -
ES6部分数组扩展方法
1. Array.from()Array.from方法用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象。先看一个例子let fakeArr = { '0': 'a', '1': 'b', '2': 'c', length: 3}// es5的写法var arr1 = [].slice.call(fakeArr)// es6的写法var arr2 = Array.from(fakeArr)只要是部署了Iterator接口的数据结构,Array.fro原创 2020-10-20 11:55:09 · 202 阅读 · 0 评论 -
JavaScript之深入作用域链
作用域链的概念:当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会从父级(词法层面上的父级)执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象。这样由多个执行上下文的变量对象构成的链表就叫做作用域链。下面我们来看看作用域链是如何创建和变化的。函数创建函数一个内部属性[[scope]],当函数创建的时候,就会保存所有父变量对象到其中,可以理解成[[scope]]就是所有父变量对象的层级链,但是值得注意的是,[[scope]]并不代表完整的作用域链。举个栗子f原创 2020-10-10 15:00:28 · 212 阅读 · 0 评论 -
JavaScript call和apply的实现
MDN对call方法的定义:call()方法使用一个指定的 this值和单独给出的一个或多个参数来调用一个函数。var foo = { value: 1};function bar(){ console.log(this.value) };bar.call(foo); // 1这段代码一共做了两件事情:call方法改变了this的指向,指向了foo执行了bar函数我们可以尝试着改变一下foo对象:var foo = { value: 1, bar:原创 2020-09-23 11:47:40 · 139 阅读 · 0 评论 -
DOM事件、事件流、注册事件、事件委托、事件捕获、事件冒泡
DOM(Document Object Model):是处理html或xhtml的标准编程接口。通过这些接口可以改变网页内容、结构和样式。1.1 什么是事件?事件是可以被JavaScript检测到的行为(触发-响应机制)。事件由三元素构成:事件源:触发事件的元素事件类型:例如click点击事件事件处理程序:事件触发后要执行的代码执行事件的步骤:获取事件源 => 注册事件(绑定事件) => 添加事件处理程序1.2 注册事件注册事件有两种方式:传统方式和监听注册方式传统方式原创 2020-06-21 18:13:32 · 172 阅读 · 0 评论 -
前端缓存之HTTP缓存(二)
1.1 什么是HTTP缓存?HTTP缓存:当客户端向服务端请求资源时,会先去到浏览器缓存,如果浏览器缓存有需要请求资源的副本,就可以直接从浏览器缓存中提取,而不会去到服务器。常见的http缓存都只能缓存get方式请求响应的资源,不能处理其他类型的响应。HTTP缓存都是从第二次请求开始的,当第一次请求资源时,服务器会返回资源,并在请求头中传回资源的缓存参数;第二次请求时,浏览器会对这些参数进行判断,命中强缓存的就返回200,不命中会把请求参数加到请求头中传给服务器,判断是否命中协商缓存,命中协商缓存返回原创 2020-06-21 17:14:58 · 261 阅读 · 1 评论 -
JavaScript中this的指向问题
本文是基于很多大佬写得很棒的博客以及自己看书的一点理解,如果哪里说得有问题的欢迎评论区指正讨论~相信很多人刚开始学JavaScript,都会像我一样被this指向弄混,单纯秉着“谁调用指向谁”这句话并不是万能的,因为很多时候分不清是谁调用了函数。我们先来下面两段代码看看this的作用let obj = { a:'a', fun(){ console.log(this.a) }};let fn = obj.fun;fn(); //undefined相信很多原创 2020-06-20 16:47:26 · 160 阅读 · 0 评论 -
关于CSS部分一些面试题的整理(自用)
CSS1.1.1 CSS有哪些基本选择器?权重如何表示?CSS基本选择器有:属性选择器,类选择器和ID选择器。CSS选择器的权重预示着CSS选择器样式渲染的先后顺序,元素样式渲染时,权重高的选择器样式会覆盖权重低的选择器样式。通常将权重分为四个等级,可用0.0.0.0来表示这4个等级。!important关键字优先级最高。内联样式的优先级可以看成是1.0.0.0ID选择器的优先级为0.1.0.0类、属性、伪类的选择器优先级为0.0.1.0元素、伪元素选择器的优先级为0.0.0.11.原创 2020-06-17 14:07:59 · 235 阅读 · 0 评论 -
前端缓存之浏览器缓存(一)
浏览器缓存分为本地小容量缓存和本地大容量缓存1.1 本地小容量缓存小容量的缓存分别有cookie,localStorage,sessionStorage。cookie:数据存放在客户的浏览器上,每次请求的时候内容会自动传送到服务器,但是cookie的大小是受限的 ,不同浏览器对cookie的大小并不统一,多余的会被截掉。因此,cookie比较浪费带宽,不建议写入太多内容。cookie一般在4-10kb。localStorage:用于持久化的本地存储,会把内容一直存在浏览器中,直到清除浏览器的原创 2020-06-16 21:17:59 · 483 阅读 · 0 评论 -
关于HTML部分一些面试题的整理(自用)
HTML1.1.1 HTML和XHTML的区别?HTML是一种基于Web网页的设计语言,XHTML是一种基于XML,语法严格、标准的设计语言两者主要不同的是XHTML必须正确的嵌套,元素必须关闭,标签必须小写,必须有根元素;而HTML没有这些限制。1.1.2 静态网页和动态网页的区别?静态网页是指没有数据交互的网页,即没有数据库参与,没有服务器端数据的加载动态网页是指有后台数据参与的网页,网页中的数据都是从数据库中提取的,需要有后台逻辑的支持。1.1.3 DOCTYPE有什么作用?区分原创 2020-06-16 10:20:32 · 160 阅读 · 0 评论