1.如何解决塌陷问题
父级的第一个标签使用marign-top
设置overflow:hidden
添加一个border(给父元素)
不使用marign-top给父级使用padding-top
2.method与action的区别
method:请求方式
action:提交地址
3.深拷贝和浅拷贝区别
深拷贝:拷贝了内容
浅拷贝:拷贝了地址
4.6种数组方法
//1.join()将数组分隔为字符串 如果有参数用参数来分割 如果没有默认用逗号分隔
//2.向数组添加或者删除
//添加 push(向数组最后面添加) unshift(向数组最前面添加)会改变原数组
//pop 删除数组的最后一项 shift删除数组的最前面一项 会改变原数组
//3.sort()数组排序 如果是单个数字默认通过
//4.反转数组 reverse 会改变原数组
//5.拼接数组 concat()返回新的数组 不会改变原数组
//6.截取数组 slice()返回新的数组 不会改变原数组
//7.indexOf()从前向后查找 或者获取某元素的索引值 如果查找不到 得到的是-1
//lastIndexOf()从后向前查找 或者获取某元素的索引值 如果查找不到 得到的是-1
5.6种数据类型
基本数据类型
number
string
boolean
null
undefined
复杂数据类型
object
function
array
7.原型
该类的公共空间,节省内存空间,本质是个对象
8.事件对象
该事件所有相关信息
9.load和ready区别
load:DOM0只能实现一次,不能简写,资源全部加载完毕
ready:DOM2可实现多次,能简写,标签全部加载完毕
10.如何跨页面传值
10.1通过a标签或者location.href添加数据,在其他页面可以用location.search获取
10.2通过数据存储手段
11.标签名为什么语义化
标签名字有意义
1.在没有css样式的情况下对代码结构一目了然
2.有利于SEO
12.请说一下什么是viewport
初始化页面元素,防止页面被缩放,规范用户操作
13.mouseover mouseout与mouseenter mouseleave区别
建议使用mouseenter mouseleave,因为mouseover mouseout会造成多次无效触发
14.get和post区别
get:get是明文,获取数据
post:上传数据
15.同步与异步
同步:上一个任务结束,下一个在开始,比如alert弹窗,登录注册流程
异步:按顺序开始,不一定按顺序结束,比如图片加载,上传下载等任务
16.jquery链式语法的原理是什么
jq对象调用方法会返回一个jq对象
17.change与input事件区别
change:内容被修改并且失去焦点
input:内容被修改
18.请从html,css,js三个维度说一下如何减少页面加载时间
html:多使用语义化标签,减少层级嵌套
css:减少动画使用,适当使用服务器字体,使用精灵图
js:减少for循环嵌套,适当使用switch,减少重绘重排次数(多使用类修改,减少内联样式的修改),少用load,使用ready,减少网络请求次数,按需加载
19.请使用setTimeout实现setInterval
20.代码:冒泡排序