CSS
- text-align:行内块元素才能居中显示
- vertical-align:解决图片底测有空白缝隙的问题
- white-space:强制一行内显示
- overflow:hidden:溢出隐藏
- text-overflow:ellipsis:超出部分为省略号
- box-sizing:border-box:加了边距也不会撑开盒子
- transition:过渡效果
- background:linear-gradient:颜色渐变
- transform:旋转
- transform-style:preserve-3d:让父盒子的外边框变成3D效果
- perspective:透视
- 父级元素:flex-direction:设置主轴的方向
- justify-content:设置主轴上的子元素排列方式
- flex-wrap:设置子元素是否换行
- align-content:设置侧轴上的子元素的排列方式(多行)
- align-items:设置侧轴上的子元素排列方式(单行)
- flex-flow:复合属性,相当于同时设置了flex-diretion和flex-wrap
- 子项常见属性:flex:子项目占的份数
- align-self :控制子项子级在侧轴的排列方式
- order:属性定义子项的排列顺序(前后顺序)
BFC(float,overflow,display,position):是一个隔离的容器
作用:块级格式化上下文,与区域外部无关
- BFC可以清除浮动
- 可以清除margin重叠部分
- 制作右侧自适应盒子问题
属性前面加前缀,浏览器的兼容性
- -webkit-: Goole Chrome, Safari, Android Browser
- -moz-: Firefox
- -o-: Opera
- -ms-: Internet Explorer, Edge
- -khtml-: Kouqueror
JavaScript
- location.href:页面跳转
- window.onload:页面加载时会触发
- Math.random(): 随机数的获取,获取的结果是小数
- Math.round(1.1)//1: 四舍五入取整
- Math.abs():绝对值方法
- Math.floor(1.1)// 1:向下取整 往最小了取值
- Math.ceil(1.1); // 2:向上取整 往最大了取值
- indexOf(): 数据匹配返回对应的数据,空返回-1,返回该数组元素的索引号str.
- replace(): 替换操作
- getAttribute(‘class’):获取类名
- setAttribute(‘class’, ‘click’):设置类型
- document.body.offsetWidth:获取body的宽度
- e.clientX:获取鼠标X的坐标
- div.clientWidth:获取div盒子的宽度
- array.push():拼接数组
- array.splice(下标, 1):删除元素
- div.removeChild(删除该元素DOM):删除DOM元素
- JSON.parse():将字符串格式转化成json对象
- offsetTop:一个元素到父级的顶部距离(父级必须有position属性)
- date.getFullYear()); // 返回当前日期的年
- date.getMonth() + 1); // 月份 返回的月份小1个月 记得月份+1 呦
- date.getTime(); // 这里得到的是, 具体时间 即2021-01-09 距离 1970 年 1 月 1 日 到今的毫秒数
- date.getDate()); // 返回的是 几号
- date.getDay()); // 3 周一返回的是 1 周六返回的是 6 但是 周日返回的是 0
- date.getHours()); // 时
- date.getMinutes()); // 分
- date.getSeconds()); // 秒
- date.valueOf()); // 就是 我们现在时间 距离1970.1.1 总的毫秒数
- date1 = +new Date(); // +new Date() 返回的就是总的毫秒数
- arr instanceof Array:运算符 它可以用来检测是否为数组
- Array.isArray(arr):H5新增的方法 ie9以上版本支持
- arr.flat(Infinity): 数组的扁平化,就是把多维数组变为一维数组
- arr.map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值
- arr.push(4, ‘pink’):数组的末尾 添加一个或者多个数组元素,返回的结果是 新数组的长度
- arr.includes(): 检查元素是否在arr数组里。
- arr.unshift(‘red’, ‘purple’):在我们数组的开头 添加一个或者多个数组元素,返回的结果是 新数组的长度
- arr.pop():删除数组的最后一个元素,返回的结果是 删除的那个元素
- arr.shift():删除数组的第一个元素,返回的结果是 删除的那个元素
- arr.reverse():翻转数组
- arr.lastIndexOf(‘green’):作用就是返回该数组元素的索引号 从后面开始查找
- arr.toString():将我们的数组转换为字符串
- arr.join(分隔符):将数组以什么符号分割开来,变成字符串
- arr.filter(函数):筛选数组。返回存在的数组
- arr1.some(函数) :查找数组中是否有满足条件的元素,返回true、false。在some 里面 遇到 return true 就是终止遍历 迭代效率更高
- arr.every(箭头函数): 遍历每一项是否都是一样
- str.charAt(index) :根据位置返回字符
- str.charCodeAt(index) : 返回相应索引号的字符ASCII值 目的: 判断用户按下了那个键
- str.concat(‘red’,‘active’):字符串操作方法。相当于字符串的拼接
- str.substr(‘截取的起始位置’, ‘截取几个字符’):字符串的截取
- str.replace(‘被替换的字符’, ‘替换为的字符’) :它只会替换第一个字符
- str2.split(‘分隔符’):字符转换为数组
- Object.keys(obj);用于获取对象自身所有的属性,把属性名变成数组。
- Object.defineProperty() 定义新属性或修改原有的属性
- ary.find(函数):返回一个对象
- ary.findIndex(箭头函数):找到一个即返回对应的索引值
- ary.includes(变量’):存在返回true,否则false
- console.log(“y”.repeat(5)):把y打印5次
- str.startsWith(‘2015’):匹配开始的字符串是否一样
- str.endsWith(‘2015’):匹配结尾的字符串是否一样
性能优化
一、优化原则
- 尽量减少HTTP请求
- 使用内容传送网络CDN
- 避免空src或者是href值
- gzip的组件
- CSS放在顶部,JS放在底部
- 减少DNS查找
- 压缩资源
- 避免3XX/4XX(避免重定向/避免404浏览器找不到资源的情况发生)
- AJAX优化
- Cookie优化
- 利用缓存
- 缩短服务器响应的时间
优化工具
- Google Page Speed
- JsPerf & Benchmark.js