首先进行自我介绍,接着前端知识提问
css盒子模型是用来装页面上的元素的矩形区域,每个CSS盒模型都包括内容区(content)、填充区(padding)、边框区(border)和外边距(margin)。 盒子模型包括IE盒子模型和标准的W3C盒子模型 box-sizing: border-box(IE盒子模型,width:左右border+左右padding+content ,整个盒子宽度:width) content-box(标准盒子模型,width:content,整个盒子宽度:左右border+左右padding+width) padding-box(width:左右padding+width)
pop(删除最后一个元素) push(新增元素) sort(数组排序) shift(删除数组第一个元素) unshift(新增元素到开头) fiter(将所有元素进行判断,将满足条件的元素作为一个新的数组返回) splice(开始位置, 删除的个数,元素)实现增删改,会修改数组本身
let arr = [1, 2, 3, 4, 5]; let arr1 = arr.splice(2, 0 'haha') let arr2 = arr.splice(2, 3) let arr1 = arr.splice(2, 1 'haha') console.log(arr1) //[1, 2, 'haha', 3, 4, 5]新增一个元素 console.log(arr2) //[1, 2] 删除三个元素 console.log(arr3) //[1, 2, 'haha', 4, 5] 替换一个元素slice(start,end)从已有数组中返回所选的某段数组元素,不会修改数组本身
ES6特性
0.30000000000000004
Vue是数据驱动,Jquery是模型驱动。
jQuery是使用选择器选取DOM对象,对其进行赋值、取值、事件绑定等操作,其实和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起的。比如需要获取label标签的内容:$(“lable”).val();,它还是依赖DOM元素的值。Vue则是通过Vue对象将数据和View完全分离开来了。对数据进行操作不再需要引用相应的DOM对象,可以说数据和View是分离的,他们通过Vue对象这个vm实现相互的绑定。这就是传说中的MVVM。单项数据流 数据单一方向流,对于 Vue 来说,组件之间的数据传递具有单向数据流这样的特性,对于父子组件来说,父组件总是通过 Props 向子组件传递数据。 所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外改变父级组件的状态,从而导致你的应用的数据流向难以理解。
双向数据绑定 利用Vue.directives监听model去修改dom 利用Dom Listener监听view去修改model
出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port) 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 跨域解决方式:
设置document.domain解决无法读取非同源网页的 Cookie问题跨文档通信 API:window.postMessage()CORS 是跨域资源分享。W3C 标准,跨源 AJAX 请求的根本解决方法JSONP(只接受get请求)webSocketswindow.name 跨域详解git clone,git add,get commit,git push,git pull等 git revert(回滚)
关于rem使用 一般移动端设计稿为6401136,(px),假设我们设置html的font-size为10px即1rem=10px;我们以iphone5为浏览设备为标准制作,那么我们在切图写页面的时候,rem和px这个关系是怎样处理的呢?(注:iphone5分辨率为320568px) 答:假定我们从设计稿上切一张480px的图,我们的rem计算过程为: 320/640=1/2; //应该设置的尺寸占设计稿尺寸多少比例 480*(1/2)/10=480/20=24rem 总结公式:设计稿任意尺寸px*(设备屏幕px/设计稿尺寸px)/(font-size);