# DailyTopic **Repository Path**: admin1230725/DailyTopic ## Basic Information - **Project Name**: DailyTopic - **Description**: 每日题目 - **Primary Language**: HTML - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-01-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DailyTopic 每日题目 ```html
解1: 定位 top:50%;left:50%; margin-top:-长度的一半 margin-left:-宽度的一半 解2: 利用flex布局 实现子元素快速居中
``` 2. ``的 title 和 alt 有什么区别. title 是鼠标放到图片上时显示的文字 alt 是加载失败是显示的文字 3. web 标准以及 W3C 标准是什么? web 标准 将行为,结构,表现分离,使其更具有模块化 w3c 标准 标签字母小写 标签闭合 嵌套正确 外部链接 css 和 js 4. 说一下为什么js是弱类型语言? 弱类型语言 是相对于强类型语言来说的,在强类型语言中,变量类型有多中,例如int char float boolean等 不同的类型相互转换有时需要强制转换而JavaScript只是一种类型 var,为变量赋值是会自动判断类型病进行转换所以JavaScript是若预言,就体现在变量定义类型var上 5. 为什么原型链的终点是null,而不是Object.prototype 参考:https://segmentfault.com/q/1010000005795507 原型链是对象的原型链,所有节点都必须是对象.规范要求原型链的长度必须是有限的. 应该用什么来作为对象的终点 既 Object.prototype.__proto__ == ? null是个空对象,可以作为原型链的终点. 6. vue生命周期及其用法 1,beforeCreate:创建vue实例之前的钩子函数 2,created:实例创建完成之后的钩子函数 3,beforeMount:开始挂载编译生成的HTML到对应位置时触发的钩子函数 4,mounted:将编译好的HTML挂载到页面上完成之后执行的钩子函数 5,beforeUpdate:将编译好的html替换el属性所指向的dom对象或替换对应html标签里面的内容 6,updated:监听data数据变化随时更新dom 7,beforeDestroy:实例销毁之前执行的钩子函数 8,destroyed:实例销毁执行的钩子函数. 7. 列举下你知道的代码规范: 1,写干净整洁的代码,请尊重空间,请尊重人眼的偏好 2,高效运用注释 8. 熟悉w3c标准,w3c标准是什么? 标准 标签字母小写 标签闭合 嵌套正确 外部链接 css 和 js 9. js实现继承的方式 1. 原型链继承 2. 构造函数继承 3. 组合继承 4. 关联继承 (其中一项是错误的,请选出) 关联继承是错误的, 继承方式共有六种分别为: 1,原型链:利用原型让一个引用类型继承另外一个引用类型的属性和方法。 2,借用构造函数:在子类型构造函数的内部调用超类构造函数,通过使用call()和apply()方法可以在新创建的对象上执行构造函数。 3,组合继承:将原型链和借用构造函数的技术组合在一块,从而发挥两者之长的一种继承模式。 4,原型式继承:借助原型可以基于已有的对象创建新对象,同时还不必须因此创建自定义的类型。 5,寄生式继承:创建一个仅用于封装继承过程的函数,该函数在内部以某种方式来增强对象,最后再像真正是它做了所有工作一样返回对象。 6,寄生组合式继承:通过借用函数来继承属性,通过原型链的混成形式来继承方法。 10.ES5/ES6 的继承除了写法以外还有什么区别? 1,class 声明会提升,但不会初始化赋值。Foo 进入暂时性死区,类似于 let、const 声明变量。 2,class内部会启用严格模式。 3,class的方法都不可举枚的。 4,class 内部无法重写类名。 11.JS 异步解决方案的发展历程以及优缺点 1,回调函数 优点:解决了同步的问题。 缺点:回调地狱,不能 return。 2, Promise 优点:解决了回调地狱问题。 缺点:无法取消promise,错误需要回调函数捕获。 3, Generator 特点:可以控制函数的执行。 4,Async/await 优点:代码清晰,不用像 Promise 写一大堆 then 链,处理了回调地狱的问题。 缺点:await 将异步代码改造成同步代码,如果多个异步操作没有依赖性而使用 await 会导致性能上的降低。 12.两个数组合并为一个数组 ```javascript var a1 = ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2'] var a2 = ['A', 'B', 'C', 'D'] var j=-1; var arr=[] for(let i=0;i? 1,HTML5不基于SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器行为。 2,html4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器所使用的文档类型。 27.网页验证码是干嘛的,是为了解决什么安全问题? 1,区分用户是人还是计算器的公共自动程序。可以防止恶意破解密码,刷票。 2,有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。 28. 谈谈浮动和清除浮动 浮动的框可以向左或向右移动,直到他的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流的块框表现得就像浮动框不存在一样。浮动的块框会漂浮在文档普通流的块框上 29.几种常见的CSS布局 1,流体布局 2,圣杯布局 3,双飞翼布局 30.eval是做什么的 1,eval可以把字符串解析成js代码执行。 2,由JSON字符串转换为JSON对象的时候可以用eval,var obj =eval('('+ str +')')。 注:应该避免使用eval,不安全,非常耗性能。 31.HTML5的离线储存工作原理能不能解释一下? 原理:html5的离线存储是基于新建了一个.appcache文件的缓存机制,通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储下来。之后当网络处于离线状态时,浏览器会通过离线缓存的数据在页面展示。 32.iframe有那些缺点? 1,iframe会阻塞页面的Onload事件。 2,搜索引擎的检索程序无法解析这种页面,不利于seo。 3,iframe与主页共享连接池,而浏览器对相同域连接有限制,所以会影响页面的并行加载。 33.一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。 1,图片懒加载,在页面上的未可视区域添加一个滚动事件,判断图片位置与浏览器顶部距离与页面的距离如果前者小于后者,优先加载。 2,如果为幻灯片相册等,可以使用图片预先加载技术。 3,如果图片过大,可以使用特殊编码的图片。加载时会先加载一张压缩特别厉害的缩略图,提高用户体验。 34.冒泡排序 ``` JavaScript var arr=[10,15,18,78,54,1,52,30] for(var i=0;iarr[j+1]){ var obj=arr[i] arr[j]=arr[j+1] arr[j+1]=obj } } } console.log(arr) ``` 35.栈内存和堆内存: 栈内存:就是环境,在js执行前浏览器会给他一个环境,叫做Windows全局作用域,函数执行的时候首先会开辟一个新的空间叫做栈内存。 堆内存:就是存代码,数据的仓库,存放的形式有两种,一种是对象键值对的形式存放,另一种就是函数,以字符串的形式存放。 36.面向对象:通过构造函数封装可以得到一个类,通过类可以实例化一些子对象,子实例对象会有自己的私有属性,也有可继承的属性,判断实例的实行是私有还是公有的,写在自己函数内的是私有属性,写在prototype上的是公有属性,如果说公有的里没有找到这个属性,那么它就会按照原型链__proto__ 向上查找。 37. 两链一包(原型链/作用域链/闭包) - 什么是原型链 当访问对象的某个属性时, 会从当前对象身上开始查找,找不到就顺着原型链一个一个向上找. 如果这个对象内部不存在这个属性,那么他就会去`prototype`里找这个属性,这个`prototype`又会有自己的`prototype`,于是就这样一直找下去,也就是我们平时所说的原型链的概念 - 什么是作用域链 [参考链接](http://blog.poetries.top/FE-Interview-Questions/base/#_2-%E8%AF%B4%E8%AF%B4%E4%BD%A0%E5%AF%B9%E4%BD%9C%E7%94%A8%E5%9F%9F%E9%93%BE%E7%9A%84%E7%90%86%E8%A7%A3) 作用域链的变量只能向上访问,变量访问到window对象就会被终止,作用域链向下访问是不允许的: ```javascript //此处使用了let 声明变量,不存在变量提升, 变量提升见39题 console.log(a); //作用域链向下访问是不允许的:此时a没有声明会导致报错 会报错 Uncaught ReferenceError: a is not defined let a = 2; ``` - 什么是闭包 闭包就是 函数中返回另一个函数 闭包就是能够读取其他函数内部变量的函数 闭包的特性: - 函数内再嵌套函数 - 内部函数可以引用外层的参数和变量 - 参数和变量不会被垃圾回收机制回收 38. 事件的各个阶段 捕获阶段 -> 目标阶段 -> 冒泡阶段 39. 什么是变量提升 ```javascript //var声明变量,存在变量提升的情况 console.log(a); //undefined var a = 2; //let没有变量提升的情况 console.log(a); //Uncaught ReferenceError: a is not defined let a = 2; ``` 40. css3有哪些新特性 有圆角效果,图形化边界,块阴影与文字阴影,使用RGBA实现透明效果,渐变效果,使用@font-Face实现定制字体,多背景图,文字或图像的变形处理(旋转,缩放,倾斜,移动),多栏布局,媒体查询等。 41.在css/js代码上线之后开发人员经常会优化性能,从用户刷新网页开始,一次js请求一般情况下有哪些地方会有缓存处理? dns缓存,cdn缓存,浏览器缓存,服务器缓存。 42.谈谈以前端角度出发做好SEO需要考虑什么? 1,搜索引擎如何抓取网页和如何索引网页。 2,meta标签优化。 3,关键字分析和选择是SEO重要工作之一。 4,了解主要的搜索引擎。 43.html常见兼容性问题 1,双边距BUG float引起的 使用display 2,3像素问题 使用float引起的 使用dislpay:inline -3px 3,超链接hover 点击后失效 使用正确的书写顺序 link visited hover active 4,Ie z-index问题 给父级添加position:relative 5,Png 透明 使用js代码 改 6,Min-height 最小高度 !Important 解决’ 7,select 在ie6下遮盖 使用iframe嵌套 8,为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px) 44.看下列代码输出为何?解释原因 var a; alert(typeof a); // undefined alert(b); // 报错 原因:undefind是一个只有一个值的数据类型,这个值就是"undefind",在使用var声明变量,但并未对其赋值进行初始化时,这个变量的值就是undefind,而b由于未声明而报错。 45.用vue怎么样获取input输入框的值的方法。 使用v-model指令,双向绑定是通过Object.defineProperty()来实现数据劫持的。 46.vue路由是什么。 1,服务器端路由:的功能是根据URL地址,跳转到相应页面,这些页面都是真实存在于服务端的。 2,前端路由:由前端实现以上功能,前端只存在d单页面首页index.htm。 47.将"10000000000"形式的字符串,以每三位进行分隔展示"10.000.000.000" ``var num=10000000000 var string = num.toString(); var arr = string.split('').reverse(); console.log(arr); var obj =[]; for(var i=0;i