java面试总结2
原创1、javascript如何实现冒泡排序?
Document
冒泡排序优化
Document
2、封装一个函数正则匹配获取当前页面中的class类名
function getClass() {
var arr = [];
var str2 = document.getElementsByTagName("html")[0].innerHTML;
var reg = /class=[|"]?([w+s]+)[|"]?/g;
var flag1 = str2.replace(reg, function ($0, $1) {
arr.push($1);
});
return arr;
}
console.log(getClass());
其中获取页面内容,使用的document.getElementsByTagName(“html”)[0].innerHTML。但这方法,会包括注释里的内容。
函数中正则是匹配class的内容,但是为什么写[’|"]?呢?因为html中设置class有三种方式:class=“value” class=‘value’ class=value ,所以使用非贪婪获取单引号,双引号,或者没有。真正需要的class的值使用小括号当做捕获组内容。然后因为一个元素可能含有多个类名,所以匹配字符和空格,并且是贪婪的(+)。
然后在接下来的replace函数中,将匹配的$1捕获组也就是匹配的小括号内容也就是class里的值添加到数组中,解释一下这里$0返回的是整个的class匹配,也就是正则对象的匹配内容class="value"这样的。最后返回数组。
3、ajax原理是什么?
Ajax是Asynchronous JavaScript and XML的缩写。
Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求.
4、前端开发移动端与PC端比有哪些不同?
- pc端有ie,chrome,ff内核兼容问题移动端,简单来说兼容问题相对较少。但是移动端要做好多分辨率的处理。移动端所有图片和所有html标签的尺寸都要减半。
- 第一、普通移动端网页(比如手机新浪网,手机淘宝,手机百度等)这个在js方面和PC端区别不是太大;主要的区别在于移动端没有了鼠标悬停(onmouseover);点击(onclick)还可以用;多了触摸、滑动(会用一些插件)。
- 第二、canvas相关游戏canvas相关的html5增加了好多js;
5、类的继承
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
上一篇:搜索添加位置 下一篇:掌握json库进行信息的维度变换