布局
标签
a
如何在新的标签打开
target='_blank'
伪类的执行顺序
:link
:visited
:hover
:active
如何不跳转
herf='javascript:;'
阻止默认
如何跨页面传值
location.href, location.search,
localSorage, sessionStorage, cookie
img
只给高度或宽度,会等比例变化
inline-block,默认下边会有一个白边 (改成block 使用浮动 定位 弹性)
input
常用属性
name 向后台传值的描述
value 更改默认值
placeholder 表单提示信息
disabled 控制表单是否禁止操作
readonly 只读不可操作
required 必填字段提示
语义化
标签名有意义
(1)在没有css样式的情况下对代码结构一目了然
(2)有利于SEO(网络引擎搜索优化)
样式
盒模型
正常盒模型 外扩
怪异盒模型 内嵌
弹性盒模型
justify-content 设置主轴对齐方式
align- items 单排垂直布局
align-content 多排垂直布局
flex-grow 剩余空间的分配比例
浮动
清除浮动
BFC
格式化上下文
定位
固定定位 position:fixed 相对于浏览器窗口
相对定位 position:relative 相对于元素原来的位置
绝对定位 position:absolute相对于有定位的父元素或祖先元素 如果都没有就相对于body
响应式
viewport
初始化页面元素,防止页面被缩放,规范用户操作
媒体查询
@media screen and(min-width:1200px)
特效
less
sass、scss
变形 transform
平移 transform:translateX
旋转 transform:rotate
缩放 transform:scaleY
倾斜 transform:skew
过渡 transition
过滤 filter
模糊 filter:blur
亮度 filter:brightness
对比度 filter:contrast
阴影 filter:drop-shadow
灰度 filter:grayscale
过滤 filter:hue-rotate
反转 filter:invert
透明度 filter:opacity
饱和度 filter:saturate
褐色 filter:sepia
渐变
线性渐变 linear-gradient
径向渐变 radial-gradient
交互
ES5
基本数据类型与引用数据类型的区别
基本数据类型:值在栈区
引用数据类型:值在堆区
深浅拷贝
浅拷贝:拷贝了地址
深拷贝:拷贝了内容
如何实现一个深拷贝
JSON
for in
递归
JSON
JSON是一种特殊格式的字符串
可以与数组、对象进行转换
常用于前后端数据交互、文件配置说明
递归
随机函数的书写
//封装一个函数 取两个数之间的随机整数
function getRandom(min,max){
return Math.floor( Math.random()*(max-min-1)+min)
}
变量提升
1.if形成{}
2.局部变量不适用var声明
== ===区别
== 内容相等
===值和数据类型都相等
if与switch的区别
switch判断常量
switch更高效
array
排序
冒泡排序
快速排序
选择排序
数组去重
Array.prototype.singleArr=function(){
var newArr=[];
this.forEach(function(item){
newArr.indexOf(item)===-1?newArr.push(item):null;
})
return newArr;
}
string
substr与substring的区别
反转字符串
function reverseString(str){
return str.split('').reverse().join('');
}
String.prototype.reverseStr=function(){
return this.split('').reverse().join('');
}
计时器
请使用setTimeout实现setlterval
BOM
location
navigator.userAgent
EVENT
什么是事件对象
当前事件的所有信息
over out 与enter leave的区别
建议使用enter与leave
over与out在指针进入子级标签时会多次触发
冒泡与捕获
事件冒泡:同类型事件,子级向父级传递
事件捕获:同类型事件,父级向子级传递
DOM0 DOM2
dom0只能添加一个事件响应
dom2可以添加多个事件响应
阻止冒泡 阻止默认
阻止冒泡 e.stopPropagation();
阻止默认 e.preventDefault();
事件委托 e.target
把事件添加给标签的父元素
通过事件对象e.target来实现具体的操作
RegExp
验证手机号 var reg1=/^1[^0124]\d{9}$/;
邮箱 var reg3 =/\w+@\w+\.[(com)(cn)(net)$]
OOP
提升效率
new的作用是什么
开辟堆内存空间
简述new的工作原理
new object()
三大特征
封装 将一堆属性方法结合在一起
继承
多态 多种形态 参数不能重复
call apply的区别
构造函数主要通过 call()或者 apple()
call(this,参数1,参数2,....)
apply(this,[参数列表])
什么是原型 原型的作用
该类的公共空间,节省内存,本质是一个对象
公共资源写在原型中
原型需要使用构造函数的名字来调用
原型是一块独立的内存空间,本质是个对象
原型链
对象调用属性或方法的寻找过程
先在自己的构造函数中寻找,如果没有就到自己的原型中寻找,如果还没有,就到原型的原型中寻找,一直找到Object的原型,如果还没有就报错