前端优化问题
- 减少http请求次数:css spirit,data uri
- JS,CSS源码压缩
- 前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数
- 用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能
- 当需要设置的样式很多时设置className而不是直接操作style
- 图片预载
- 避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢
- 保持良好的编程习惯,避免重复的CSS,JavaScript代码,多余的HTML标签和属性
实现DIV的水平垂直居中
宽高已定(父、子容器宽高都固定大小)
设置position: absolute(父元素记得设置: relative), 然后top和left设置50%, 50%, 再设置margin-left=宽/2, margin-top:宽/2
父容器固定宽高,子容器固定宽高或不设置宽高
依然是利用position:子div的上下左右都设置成0,然后margin设置auto。关键是要设置position:子absolute,父relative。
不论是否固定宽高都可用. 问题在于兼容性. ie9及以下不支持
设置父级flex属性: display:flex; justify-content:center; align-items: center;
html
|
|
css
|
|
父子容器都设宽高
父级元素设置display:table-cell ,然后vertical-align:middle。这种方法可以设置垂直居中. 这时候只要在子元素里设置margin:auto即可实现水平居中
让DIV在页面水平垂直居中
css
|
|
图片替换方法
- text-indent属性,并且给其设置一个较大的负值,x达到隐藏文本的效果
|
|
js有哪些基本类型?
- 基本数据类型:Undefined, Null, Boolean, Number, String
- 引用数据类型: Object, Array, Date, RegExp, Function
基本类型与引用类型有什么区别?
- 存储
基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中
引用类型的值是对象, 保存在堆内存中. 包含引用类型的变量实际上包含的并不是对象本身, 而是一个指向该对象的指针 - 复制
从一个变量向另一个变量复制基本类型的值, 会创建这个值的一个副本
从一个变量向另一个变量复制引用类型的值, 复制的其实是指针, 因此两个变量最终都指向同一个对象 - 检测类型
确定一个值是哪种基本类型可以用typeof操作符,
而确定一个值是哪种引用类型可以使用instanceof操作符
apply和call的用法和区别
apply和call的区别在哪里
|
|
call()和apply()示例展示
|
|
结果123name:zhangsanage:22grade:"二年级"
什么情况下用apply,什么情况下用call
|
|
什么是闭包? 闭包有什么作用?
- 闭包是指有权访问另一个函数作用域中的变量的函数. 创建闭包常见方式,就是在一个函数内部创建另一个函数.
- 作用:
- 匿名自执行函数 (function (){ … })(); 创建了一个匿名的函数,并立即执行它,由于外部无法引用它内部的变量,因此在执行完后很快就会被释放,关键是这种机制不会污染全局对象。
- 缓存, 可保留函数内部的值
- 实现封装
- 实现模板
- js闭包的用途
指出 document load 和 document ready 两个事件的区别
- 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)
- 二是onload,指示页面包含图片等文件在内的所有元素都加载完成。
- jQuery中$(function(){/ do something/});他的作用或者意义就是:在DOM加载完成后就可以可以对DOM进行操作。一般情况先一个页面响应加载的顺序是,域名解析-加载html-加载js和css-加载图片等其他信息。