1.DOM 和BOM 操作: BOM是浏览器对象模型,用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。 DOM是文档对象模型,用来获取或设置文档中标签的属性,例如获取或者设置input表单的value值。
2.解决和改善 IE、Chrome 等主流浏览器的兼容性问题: webpack可以处理浏览器js兼容性问题,把低级浏览器不能识别的高级语法转化成低级语法 浏 览 器 默 认 的 margin 和 padding 不 同 。 解 决 方 案 是 加 一 个 全 局 的 *{margin:0;padding:0;}来统一。 *IE6 双边距 bug:块属性标签 float 后,又有横行的 margin 情况下,在 ie6 显示margin 比设置的大。 各种特殊样式的兼容,比如透明度、圆角、阴影等。特殊样式每个浏览器的代码区别很大,所以,只能现查资料通过给不同浏览器写不同的代码来解决。 浮动 ie 产生的双倍距离 #box{ float:left; width:10px; margin:0 0 0 100px;} 这种情况之下 IE会产生 20px的距离,解决方案是在 float的标签样式控制中加入 — —_display:inline;将其转化为行内属性。(_这个符号只有 ie6会识别) 渐进识别的方式,从总体中逐渐排除局部。
3.响应式布局及弹性布局:响应式布局设计方法:媒体查询+流式布局,弹性布局:使用 em 或 rem 单位进行相对布局。
4.es6:模块、类、let与const、箭头函数、字符串模版、解构等。
5.less和sass动态样式语言. 对CSS赋予了动态语言的特性,如变量、继承、运算、函数。
6.jsonp:简单的说,就是利用script标签没有跨域限制的“漏洞”来达到与第三方通讯的目的。总结一下,json 是一种数据格式,jsonp 是一种数据调用的方式,带callback的json就是 jsonp
7.csss3,html5新特性:用于绘画的 canvas 元素,媒介回放的 video 和 audio 元素,css3: CSS3实现圆角(border-radius),阴影(box-shadow), transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);
8.图片懒加载:对于图片过多的页面会严重影响网页的加载速度,图片懒加载就是当页面被请求时,只加载可视区域的图片,其它部分的图片则不加载,只有这些图片出现在可视区域时才会动态加载这些图片
9.http传输的数据都是未加密的,也就是明文的,网景公司设置了SSL协议来对http协议传输的数据进行加密处理,简单来说https协议是由http和ssl协议构建的可进行加密传输和身份认证的
10.Cookie、sessionStorage、localStorage的区别: 共同点:都是保存在浏览器端,并且是同源的
Cookie:客户端首次请求,服务器会创建并发送一个cookie,客户端把它保存在本地,cookie数据始终在同源的http请求中携带,即cookie在浏览器和服务器间来回传递。
session:服务端检测客户端请求是否包含一个sessionID如果有就根据此id检索出session如果没有创建,并发送给客户端(客户端用cookie保存)。
而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。 11.this的指向:实际上this的最终指向的是那个调用它的对象
12.ajax:先创建xhr异步对象(xmlhttprequest),然后连接服务器向服务器发送请求,接受服务器的返回
vue相关
1.如何理解vue中MVVM模式? 就是双向数据绑定,它可以实现页面随数据实时更新 2.组件之间的传值通信? 父组件向子组件传值:1)子组件在props中创建一个属性,定义这个值得类型,用来接收父组件传过来的值;
2)在父组件中导入并注册子组件;
3)在子组件标签中添加子组件props中创建的属性名,并把需要传给子组件的值赋给该属性;
复制代码
1.在子组件中创建点击事件绑定方法,在方法中用this.$emit触发一个自定义事件,并传递一个参数
2.在父组件的子组件标签中监听这个事件并绑定一个响应这个事件的方法
复制代码
3.v-show和v-if指令的共同点和不同点?
v-show指令是通过修改元素的displayCSS属性让其显示或者隐藏 v-if指令是直接销毁和重建DOM达到让元素显示和隐藏的效果 4.列举出3个Vue中常用的生命周期钩子函数? created:实例创建完成之后调用 mounted:完成挂载之后 第一次页面加载时会触发 beforeCreate, created, beforeMount, mounted 这几个钩子
5.为什么需要vuex?
当你打算开发大型单页应用,会出现多个视图组件依赖同一个状态,来自不同视图的行为需要变更同一个状态。
6.闭包优点:局部变量不释放
7.闭包缺点:内存泄漏、内存占用
8.为什么要用它?
就是为了防止变量污染,但是用多了会内存泄漏
复制代码
mongodb菲关系型数据库
9.vue-router的两种模式的区别? hash:vue的默认模式不刷新页面,history刷新页面10.宏任务包含:setTimeout/setInterval/setImmediate/整体代码script 而微任务包含:promise和process.nextTick 当同步任务完成,在执行宏任务前会先执行完微任务在执行宏任务 11.APP微信登录调用微信开发平台的jssdk 12.es5:DOM(文档对象模型)
DOM把整个页面映射为一个多层节点结果,开发人员可借助DOM提供的API,轻松地删除、添加、替换或修改任何节点。 BOM (浏览器对象模型)
支持可以访问和操作浏览器窗口的浏览器对象模型,开发人员可以控制浏览器显示的页面以外的部分。
PS:BOM未形成规范
Array增加方法
增加了every、some 、forEach、filter 、indexOf、lastIndexOf、isArray、map、reduce、reduceRight方法
Object方法 Object.getPrototypeOf Object.create Object.getOwnPropertyNames Object.defineProperty Object.getOwnPropertyDescriptor Object.defineProperties Object.keys
ES6特性如下:
1.块级作用域 关键字let, 常量const 2..赋值解构 3..箭头函数 Arrow functions 4.Class,有constructor、extends、super,但本质上是语法糖(对语言的功能并没有影响,但是更方便程序员使用) 5.Modules 6.Map + Set + WeakMap + WeakSet 7.Promises是处理异步操作的对象,使用了Promise对象之后可以用一种链式调用的方式来组织代码,让代码更加直观(类似jQuery的deferred 对象)。9.重汇和回流 reflow:当render树中的一部分或者全部因为大小边距等问题发生改变而需要重建的过程叫做回流
repaint:当元素的一部分属性发生变化,如外观背景色不会引起布局变化而需要重新渲染的过程叫做重绘