https://blog.csdn.net/phj_88/article/details/52443571
1)HTML5和CSS3有哪些新特性?
html5:
1. 用于绘画的 canvas 元素
2. 用于媒介回放的 video和 audio元素
3. 对本地离线存储的更好的支持
4. 新的特殊内容元素,比如 article、footer、header、nav、section
5. 新的表单控件,比如 calendar、date、time、email、url、search
css3:
1. CSS3实现圆角(border-radius),阴影(box-shadow),
2. 对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform)
3. transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);// 旋转,缩放,定位,倾斜
4. 增加了更多的CSS选择器 多背景 rgba
5. 在CSS3中唯一引入的伪元素是 ::selection.
6. 媒体查询,多栏布局
7. border-image
2)HTML的兼容性问题?
1. 双边距BUG float引起的 使用display
2. 3像素问题 使用float引起的 使用dislpay:inline -3px
3. 超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
4. IE z-index问题 给父级添加position:relative
5. Png 透明 使用js代码 改
6. Min-height 最小高度 !Important 解决’
7. select 在ie6下遮盖 使用iframe嵌套
8. 为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
9. IE5-8不支持opacity,解决办法:
.opacity {
opacity: 0.4
filter: alpha(opacity=60); /* for IE5-7 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; /* for IE 8*/
}
10. IE6不支持PNG透明背景,解决办法: IE6下使用gif图片
3)如何垂直居中一个浮动元素?
// 方法一:已知元素的高宽
#div1{
width:200px;
height:200px;
position: absolute; //父元素需要相对定位
top: 50%;
left: 50%;
margin-top:-100px ; //二分之一的height,width
margin-left: -100px;
}
//方法二:未知元素的高宽
#div1{
width: 200px;
height: 200px;
margin:auto;
position: absolute; //父元素需要相对定位
left: 0;
top: 0;
right: 0;
bottom: 0;
}
{
display:table-cell;
text-align:center;
vertical-align:middle;
}
4)call和apply的区别?
它们各自的定义:
apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。
call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2);即A对象调用B对象的方法。
它们的共同之处:
都“可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象”。
它们的不同之处:
apply:最多只能有两个参数——新this对象和一个数组argArray。如果给该方法传递多个参数,则把参数都写进这个数组里面,当然,即使只有一个参数,也要写进数组里。如果argArray不是一个有效的数组或arguments对象,那么将导致一个TypeError。如果没有提供argArray和thisObj任何一个参数,那么Global对象将被用作thisObj,并且无法被传递任何参数。
call:它可以接受多个参数,第一个参数与apply一样,后面则是一串参数列表。这个方法主要用在js对象各方法相互调用的时候,使当前this实例指针保持一致,或者在特殊情况下需要改变this指针。如果没有提供thisObj参数,那么 Global 对象被用作thisObj。
实际上,apply和call的功能是一样的,只是传入的参数列表形式不同。
5)如何编写高性能的JavaScript?
1、尽量不要用for-in 循环去访问数组,建议用 for 循环进行循环
2、建议将对象进行缓存处理,特别是DOM访问是比较消耗资源的
3、建议不要在函数内进行过深的嵌套判断
4、避免循环引用,防止内存泄漏
5、建议避免在函数内返回一个未声明的变量,会污染外部变量
6、var声明变量,建议写在多行
7)如何消除一个数组里面重复的元素?
var data = ['blue', 'red', 'green', 'blue'];
function UniqueData(data) {
for (var i = 0; i < data.length; i++) {
for (j = i + 1; j < data.length; j++) {
if (data[i] === data[j]) {
data.splice(j, 1);
}
}
}
return data;
}
UniqueData(data);
8)数组对象、字符串对象的属性和方法?
https://blog.csdn.net/xiaobing_hope/article/details/52461005
String对象的属性有:
(1) length (返回字符串的字符长度)
(2) prototype
(3) constructor
String对象的方法:
charAt(); charCodeAt(); indexOf(); match(); replace(); search(); slice(); toUpperCase(); toLowerCase(); 等方法
(1)charAt() —-返回字符串在下标index位置的字符
(2) charCodeAt() —- 返回字符串相应下标index位置的字符的unicode编码
(3) indexOf() —-返回某个指定的字符串值在字符串中首次出现的位置
(4) match() —- 在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
(7) slice() —提取字符串的某个部分,并以新的字符串返回被提取的部分
Array对象的属性有:
(1) length (返回数组的长度)
(2) prototype
(3) constructor
Array对象的方法:
shift(); unshift(); pop(); push(); concat(); reverse(); splice(); slice(); 等方法
(1)shift(); —删除数组的第一个元素
(2) unshift(); —向数组开头添加元素; 返回的是新数组的长度
(3) pop(); —-删除数组的最后一个元素
(4) push(); —向数组最后添加元素
(5) concat() — 连接多个数组
(6) reverse(); — 反转数组
9)对vue的理解,可以从指令、生命周期的钩子函数?
https://www.cnblogs.com/xkloveme/p/7435271.html
https://blog.csdn.net/u013451157/article/details/78969300
所有的生命周期钩子自动绑定this上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着你不能使用箭头函数来定义一个生命周期方法(例如created: () => this.fetchTodos())。这是因为箭头函数绑定了父上下文,因此this与你期待的 Vue 实例不同,this.fetchTodos的行为未定义。
生命周期
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeDestroy
destroyed
10)Node的优点和缺点?
Nodejs区别于传统应用的特点:
1. 异步事件驱动
2.非堵塞I/O
3. 单线程(这里指主线程)
4. 性能出众
优点:
1. 采用事件驱动,异步编程,为网络服务而设计。
2. node.js非阻塞模式的IO处理给node.js带来在相对较低的资源耗用下的高性能与出众的负载能力。
3. node.js轻量高效,可以认为是数据密集型实时应用系统的完美解决方案。
4. js语言适合前端工程师上手。
5. 社区活跃发展速度快。
缺点:
1. 单线程,单进程,只支持单核CPU,不能充分的利用多核CPU服务器。
2. 对程序员要求高一旦进程崩溃,那么整个web服务器就崩溃了。
3. 不适合做复杂性很高的计算。
11)输出p标签123的color值。(red)
12)x的值是多少?(6)
结果为6,是因为delete删除失败,delete只能删除通过for in访问的属性。
13)a输出多少?
666,undefined
14)ture还是false?
0 == ''; ture
NaN == NaN; false
[] == false; ture
[] ==![]; ture
15)i输出多少?
4 4 4
16)a输出多少?
2