HTML篇
- HTML语义化的理解:
1.1 html语义化是页面内容结构化,结构更清晰,便于浏览器,搜索引擎解析;
1.2 在样式css未加载时,页面也是以文档格式结构显示,便于阅读;
1.3 搜索引擎的爬虫依赖于html标记上下文和关键字的权重,利于seo;
1.4 对于阅读源码的人更好的将网站分块,便于阅读维护理解; - 标签title和alt属性的区别
2.1 alt属性是针对搜索引擎识别的,是图像无法加载使得替代文本;
2.2 title是元素的注释信息,主要是给用户解读的; - iframe的优缺点:
优点: 解决加载缓慢的第三方内容如广告,图标等的加载问题;并行加载脚本;
缺点:无语义;无内容时也会加载;加载时会阻塞主页面的onload事件; - href与src的区别:
4.1 href指向网络资源地址,它只链接当前标签与目标地址;
4.2 src指定外部资源地址,他会将外部资源下载下来并替换到文档中,注意当浏览器解析到src的时候,会暂停其他资源的下载和处理,知道该src资源被下载,解析,执行完毕之后。因此在引入js脚本的时候我们一般会放到底部而不是头部;
CSS篇
-
css的盒子模型
1.1 标准盒子模型(IE盒模型)和怪异盒模型(w3c盒模型);
1.2 IE盒模型:content+padding+border+margin;
1.3 W3c盒模型:content+margin; -
css选择器优先级
!important > 行内样式 >ID >class >元素 >通配符 >继承 >浏览器默认; -
垂直居中的几种方式
flex布局;margin:0 auto; absolute+transform;line-height; -
简述css link和@import的区别和用法
-
rgba和opcitly的区别:
rgba的透明属性不会被后代继承,而opcitly的透明属性会被后代继承; -
display:none与visibility:hidden的区别:
都是控制元素的隐藏,display:none,文档不会为它保留空间,各元素会合拢;而visibility:hidden;文档布局中仍会保留她的空间; -
position的值,relative和absolute分别是相对于谁定位的?
relative相对于自身定位;absolute是相对于离他最近的position不是static的父级元素定位; -
float怎么清除浮动:
HTML/CSS混合偏 -
html5新特性:
-
css3新特性:
-
BFC是什么:
-
常见兼容问题:
JS篇 -
数据类型:
1.1 基本数据类型:Number,String,Boolean,Null,undefined
1.2 引用类型:Object,Array,Function,
1.3 symbol,创建后独一无二不可改变的数据类型; -
判断一个数据是什么类型有什么方法:
typeof (stirng,number,boolean);
instanceof ;
Object.prototype.tostring(); -
null和undefined的区别:
null是指变量被定义且赋值了,只是值为空值;
undefined变量未被定义或者定义了但是未赋值; -
怎么判断一个变量arr是否为数组:
Array.isArray(arr),arr instanceOf Array;Object.prototype.tostring(arr) == ‘[Object Array]’;
Array.constructor == Array; -
"===“和”=="的区别:
“===”判断数值+类型
“==”自己判断数值; -
eval的作用:
把字符串变解析为js代码,运行; -
箭头函数有哪些特点:
改变this指向;
省略return;
不需要function关键字创建函数; -
var,let,const的区别:
let 块级作用域,无变量提升;
var全局作用域,可变量提升,注意变量会提升但不会赋值;
const 定义常量,必须初始化,值不可修改; -
new 操作符具体做了什么?
-
深拷贝与浅拷贝:
浅拷贝:只复制指向某个对象的指针,而不是复制对象本身;深拷贝:另外创造一个一模一样的的对象,新对象与就对象不共享内存,修改新对象的时候不会修改旧对象; -
JSON的了解:
JSON是轻量化的数据交换格式,结构简单,便于读写,占用带宽小; -
document.write:重写整个页面;
innerHtml重绘页面的一部分; -
JavaScript的同源策略:
协议,域名,端口号保持一致:同源策略是一种安全协议; -
ajax实现的过程:
1.1. 创建XMLHttpRequest对象,创建一个异步回调对象;
1.2. 创建Http请求,设置请求方式,URL以及验证信息;
1.3. 设置相应http请求的函数;
1.4. 发送http请求;
1.5. 获取异步回调返回的数据
1.6. 使用JavaScript和DOm实现局部刷新; -
闭包和闭包的常用场景:
1.1 有权访问另一个函数作用域的函数;创建闭包的常见方式是在一个函数的内部去创建另外一个函数;
1.2三个特性:函数嵌套函数;内部函数可以访问外部函数的参数和变量;参数和变量不会被垃圾回收机制回收;
1.3 场景:需要设置私有变量;
1.4 缺点:常驻内存,增大内存使用量,使用不当会造成内存泄露; -
javascript的内存(垃圾)回收机制?(不懂)
垃圾回收器每隔一段时间就会寻找那些不再使用的内存将其释放;
一般使用标记清除方法:变量进入环境标记为进入环境,离开环境就标记为离开环境,当垃圾回收器运行时会将内存里所有的变量标记然后去除环境里的变量以及被环境变量引用的变量的标记,剩下带有标记变量就是要回收的;
有些引用计数方法: -
Javascript原型,原型链有什么特点?
每个对象都有一个初始化的属性Prototype(即为原型),当访问对象的某个属性,如果对象内部无该属性,就会到他的prototype里去访问,如果还是没有找到就回到prototype的prototype去找,这就是所说的原型链;
特点:在JavaScript的对象是通过引用传递的,我们创建的新的对象实体并没有独立的原型副本,当我们修改原型是时,对应的对象也会继承;