语义化html
什么是语义化html?
语义化html就是根据页面内容的结构,选择合适的标签(例如头部用header标签,导航用nav标签,底部用footer标签等)。
使用语义化html的好处在于便于开发者阅读,方便后期的更新迭代,增强网页的权重。
H5新增的特性
H5新增了哪些新特性?
新增了一些新标签:canvas,video,header,nav,article等
form表单新增一些新类型:list,range,email,tel等
css3新增一些新属性:@media,@keyframe,transform,box-shadow,display:flex等
闭包
什么是闭包?使用闭包有什么好处?
闭包首先是有两个函数,一个函数嵌套另一个函数,格式如下:
function fn(){
var a = 0;
return function(){
a++;
alert(a);
}
}
var b = fn();
b();
函数调用一次形成一个闭包。
好处:变量私有化,避免变量命名冲突,可以缓存,具有封装性
null跟undefined
null跟undefined有什么区别?
null跟undefined都是js的基本数据类型,null是表示没有对象,是一个空指针,undefined是声明了一个变量但没有赋值。
ajax的请求方式
ajax的请求方式有哪些?它们有什么区别?
ajax请求方式有get请求,post请求
get:请求数据量小,请求信息在地址栏显示,安全系数低
post:可以请求大量数据,请求信息不在地址栏显示,安全系数高
json数据
json数据的格式是什么样的?如何解析json数据渲染到页面上?
json格式:
简单格式:
`{"name":"a"}`
数组格式:
{
"json":[
{"name":"a"},
{"name":"b"},
{"name":"c"}
]
}
解析:
数据请求成功后保存到一个变量data中,
var html = "";
for(var i = 0; i < data.length; i++){
html += "<div>" + data.json[i].name + "</div>"
}
$('#element').html(html);
跨域问题
如何解决跨域问题?jsonp用哪种请求方式?
iframe跨域
动态创建script标签,src结尾需要加上?callback=jsonpCallback
ajax请求,dataType为jsonp,jsonp的请求方式用get请求
原型跟原型链
先留着,待讲解(因为我不懂,里边的关系太乱了)
this对象
如何理解this对象的指向?
谁调用这个方法,this就指向谁,没有调用就指向window,自执行的方法也指向window
图片懒加载
图片懒加载的原理?
像做一些电商的项目就会有大量的图片展示,这时就会用到图片懒加载,它的原理就是按需加载,先把图片的真实地址保存到一个自定义属性中,为了用户体验可以先给img标签的src一个默认的本地图片地址,然后根据scrollTop的变化触发事件把存放图片真实地址的值赋给src