前端知识大盘点
常见的ie6 的bug:内部盒模型超出父级时,父级被撑大解决方法:父标签使用overflow:hidden ; li之间会有间距 解决方法:float: left; img于块元素中,底边多出空白 解决方法:父级设置overflow: hidden;
什么时候要清除浮动?那种清除浮动方式最好:在css中任何元素都可以浮动,浮动元素会脱离标准流,清除浮动的方式:额外标签法,溢出隐藏法,伪元素法,双伪元素法
Flex布局是什么:display:flex是弹性布局;
如何测试移动端页面:谷歌浏览器手机开发模式;
如何居中div,如何居中一个浮动元素,一个绝对定位的div居中:普通居中:margin: 0 auto 父级设置相对定位,子级position:absolute;left: 50%;transform: translateX(-50%);
全屏滚动的原理是什么?用到css哪些属性?那个插件:所谓全屏滚动,就是网页的一个模块占据一屏的宽高;动画的属性;fullpage插件;
Css3有哪些新属性:video视频 audio音频 rotate旋转 translate()位移scale()缩放
怎么让不同高度的div垂直居中:父级设置相对定位,子级position:absolute;left: 50%;transform: translateY(-50%);
移动端适配的原理,能用什么方式适配:使用rem单位来做网页适配;
Css优化提高性能的方法有哪些,语义化是指:慎重使用高性属性:浮动、定位;充分利用css继承属性,减少代码量; 抽象提取公用样式,减少代码量; 语义化:该用什么标签就用什么标签;
在网页中的字体应使用奇数还是偶数:偶数 比例关系ui设计缘故 ie解析缘故;
Zepto的理解:zepto号称迷你版jQuery,并且成为移动端dom操作库的首选;
常见的jS框架有哪些:Zepto.js bootstrap;
添加 删除替换插入到某个节点的方法:document.createElement(); 创建元素
document.createTextNode();//创建文本节点 appendChild() 添加removeChild() 移除 replaceChild() 替换insertBefore() 插入
为什么需要写:它是指示web浏览器关于页面使用哪个 HTML 版本进行编写的指令。
请描述一下 cookies,sessionStorage 和 localStorage 的区别?Cookies是服务器在本地机器上存储的小段文本,LocalStorage:浏览器关闭了数据仍然可以保存下来,并可用于所有同源(相同的域名、协议和端口)窗口(或标签页)永久存储,永不失效,除非手动删除sessionStorage:数据存储在窗口对象中,窗口关闭后对应的窗口对象消失,存储的数据也会丢失。就是浏览器窗口关闭就失效了。
如何实现浏览器内多个标签的通信:localstorge在一个标签页里被添加、修改或删除时,都会触发一个storage事件,通过在另一个标签页里监听storage事件,即可得到localstorge存储的值,实现不同标签页之间的通信。
js中实现继承的原理:类继承,原型继承,混合式继承
apply:调用一个对象的一个方法,用另一个对象替换当前对象。最多只能有两个参数
call:调用一个对象的一个方法,用另一个对象替换当前对象。它可以接受多个参数
typeof:获取一个变量是否存在
强制类型转换和隐式类型转换:通过String(),Number(),Boolean()函数强制转换;字符串加数字,数字就会转成字符串。.数字减字符串,字符串转成数字。
null和undefined 有什么区别:undefined看作是空的变量,而null看作是空的对象。
eval()函数可计算某个字符串,并执行其中的的JavaScript代码。
new:创建了一个空对象,并且this变量引用该对象, 属性和方法被加入到this引用的对象中;
原生Ajax状态值及状态码:200成功 304客户端已经执行了GET,但文件未变化
400错误请求,如语法错误 0 - (未初始化)还没有调用send()方法1 - (载入)已调用send()方法,正在发送请求2 - (载入完成)send()方法执行完成,3 - (交互)正在解析响应内容4 - (完成)响应内容解析完成,可以在客户端调用了
Jsonp:不支持POST跨域,所以会自动转成GET动态添加一个标签,而script标签的src属性是没有跨域的限制的
new object()的原理:创建一个Object对象并将其传入Object()函数中。
项目的性能优化:从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。从服务商角度而言,优化能够减少页面请求数、或者减小请求所占带宽,能够节省可观的资源。
New 实例化对象三部曲:创建一个新对象;把这个新对象的__proto__指向构造函数的prototype属性;把构造函数中的this上的属性全部添加到新对象;返回这个新对象
this的理解什么时候用:js的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,那就是this指的是,调用函数的那个对象。作为构造函数调用this就指这个新对象。 apply调用,
this指的就是这第一个参数。
复制节点,查找节点: 克隆节点clonechild 查找节点:getElementsByName()
Src和href的区别:src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。
indexOf()方法:可返回某个指定的字符串值在字符串中首次出现的位置。
数组的去重:
js将时间戳转yyyy-mm-dd
Js的垃圾回收机制:
JS的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义寻找到不再使用的变量,并释放掉它们所指向的内存。标记清除。引用计数。
创建AJAX 的过程:
screen对象用于获取用户的屏幕信息。
Navigator对象 通常用于检测浏览器与操作系统的版本
history对象记录了用户曾经浏览过的页面
location用于获取或设置窗体的URL
instanceof就是判断一个实例是否属于某种类型
constructor:返回当前的构造函数
post和get区别:get是从服务器上获取数据,post是向服务器传送数据。
Inset:box-shadow 盒子内阴影
display:table-cell多行文字垂直居中
float: none:取消元素浮动
删除元素:
增加元素:
替换元素
冒泡排序
循环输出1-100的和
循环输出1-100的乘积
输出1-100能被2整除的数
javaScript中如何检测一个变量是一个String类型:typeof(obj) === "string"
去除空格:$.trim()方法;
this的典型应用:
Typeof:用来检测基本数据类型;
Indexof:某个指定的字符串值在字符串中首次出现的位置
统计字符串中字母个数或统计最多字母数:
正则表达式邮箱验证:
Display:flex布局实例:
遍历对象的属性:
Css中的伪类和伪元素:
事件委托是利用冒泡原理实现的;
js中的循环语句可分为三种:1.while;2.do……while;3.for
图片垂直对齐: vertical-align:middle;
只有0代表false
eval()函数可计算某个字符串,并执行其中的的JavaScript 代码
localStorage常用的方法:localStorage.clear() localStorage.setItem() localStorage.getItem() localStorage.removeItem()
JSON的理解:它是一种数据交换的文本格式,而不是一种编程语言,用于读取结构化数据;
js中的3种弹出式消息提醒:alert("警告") confirm("确认");prompt("信息输入")
请简述jsnp的跨域原理:同源策略是浏览器的一种安全策略,所谓同源是指,域名,协议,端口号完全相同,不同源则为跨域;ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。
去掉一个字符(变量)的重复元素:
实现文本溢出省略号:
闭包就读取其他函数内部变量的函数;
闭包案例:
引用类型数据: 比如:Object、Array 、Function 、Data等;
javaScript之split与join的区别 :split()用于分割字符串,返回一个数组;join()用于连接多个字符或字符串,返回值为一个字符串;
如何判断一个变量是否是数组:instanceof;
点透问题:有时候用户只是想滑动屏幕,却触发了touchstart事件;不要混用touch和click,只用touch,只用click;
Es6知识点:
let和var的区别:let有花括号作用域,但是没有变量的提升;
Const:是常量,不可以重新赋值
=>函数:是没有this,当箭头函数外部有 function的时候
模块化的规范是什么:
npm是什么:包管理工具,以jQuery为例子,可以远程使用npm直接下载,也可以把自己的代码推动送出
CORS:是W3C出的一个标准,其思想是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。因此,要想实现CORS进行跨域,需要服务器进行一些设置,同时前端也需要做一些配置和分析。本文简单的对服务端的配置和前端的一些设置进行分析。
获取url中的参数:
字符串的截取:
判断数组有哪些方法: a instanceof Array a.constructor == Array
深拷贝案例:
继承的方法:
前端mvvm和后端的mvc概念:
前端: m(渲染的数据) v(页面结构) vm(调度者) vm提供了双向数据绑定
后端:m(模型) v(试图) c(控制器)
说一说CSS3中的动画,animation中可以取哪些值 :
vue中的数据双向绑定是如何实现的:
登录状态怎么使用cookie保持,最好的方法是什么:
手写代码判断是否是浏览器环境: