前端笔试题2 JS部分
笔试题2
var EventME = {};
EventME.addHandle = function(ele, eventName, handleFunction) {
if (ele.addEventListener) {
ele.addEventListener(eventName, handleFunction, false);
} else if (ele.attachEvent) {
ele.attachEvent('on' + eventName, handleFunction);
} else {
ele['on' + eventName] = handleFunction;
}
};
window.onload = function() {
//写一个函数 去除开头和结尾的空格
//yourTrim();
//生成一个页码 要求当前页之前最多有n页 当前页之后有n页 总共2n+1页 n可设置
//makePage(4,3);//ok
//makePage(3, 3); //ok
//统计出现次数最多的字符以及其次数
//countMaxChar();
//统计字串长度 中文占2个长度
//countWords();
//数组去重
//deleteDuplicate();
//关于this的理解
aboutThis();
//计算二进制的值
//calcBinNum(1001);
}
function yourTrim() {
String.prototype.trimME = function() {
var firstIndex = ,
endIndex = this.length - ;
for (var i = ; i < this.length; i++) {
if (this[i] != ' ') break;
}
firstIndex = i;
i = this.length - ;
while (i >= ) {
if (this[i] != ' ') {
break;
} else {
i--;
}
}
endIndex = i;
return this.slice(firstIndex, endIndex + );
}
console.log(new String(' bubu ').trimME());
}
function makePage(curPageNo, nsize) {
//DOM本身没有insertAfter() 自己写一个
//若当前节点是最后一个节点的时候 新插入的后续节点将成为最后一个节点
//因此使用appendChild()
//若当前节点不是最后一个节点 那么首先通过nextSibling找到当前节点的额下一个节点
//然后再使用insertBefore
//这里的当前节点是指 新插入的后续节点之前得那个节点
function myInsertAfter(after, curNode) {
if (curNode.parentNode.lastChild == curPage) {
curNode.parentNode.appendChild(after);
} else {
curNode.parentNode.insertBefore(after, curNode.nextSibling);
}
return after;
}
var wrapper = document.createElement('div');
document.body.appendChild(wrapper);
var curPage = document.createElement('span');
curPage.innerHTML = curPageNo;
curPage.className += 'cur';
wrapper.appendChild(curPage);
function createPage(pageNo) {
var page = document.createElement('span');
page.innerHTML = pageNo;
return page;
}
curPageloop = curPage;
countPre = ;
for (var i = curPageNo - ; i >= ; i--) {
if (countPre++ >= nsize) {
break;
}
pre = createPage(i);
//在待操作的两个节点的父节点上调用insertBefore
curPageloop.parentNode.insertBefore(pre, curPageloop);
curPageloop = pre;
};
curPageloop = curPage;
for (i = curPageNo + ; i <= * nsize + ; i++) {
nxt = createPage(i);
myInsertAfter(nxt, curPageloop);
curPageloop = nxt;
};
}
function countMaxChar() {
var str = 'hgfuihgwhiho rhfgsdchuyhhthsdfhcuhyt';
var charlist = {
};
var max = ;
maxChar = '';
for (var i = ; i < str.length; i++) {
//console.log(str[i]);
if (!charlist[str[i]]) { //当这个字符是第一个出现 那么charlist中还没有这个key
charlist[str[i]] = ;
} else {
charlist[str[i]]++;
}
if (charlist[str[i]] > max) {
max = charlist[str[i]];
maxChar = str[i];
}
};
console.log(max + maxChar);
}
function countWords() {
//中文判断 参考http://www.jb51.net/article/14004.htm
String.prototype.isChinese = function(i) {
var re = /[^\u4e00-\u9fa5]/;
if (re.test(this[i])) return false;
return true;
}
String.prototype.myLength = function() {
var count = ;
for (var i = ; i < this.length; i++) {
if (this.charCodeAt(i) > && this.isChinese(i)) {
count += ;
} else {
count++;
}
};
return count;
}
console.log('大家好sdc'.myLength());
}
function deleteDuplicate() {
Array.prototype.eraseDuplicate = function() {
var after = {};
var re = [];
for (var i = ; i < this.length; i++) {
if (!after[this[i]]) {
after[this[i]] = ;
re.push(this[i]);
}
}
return re;
};
console.log([, , , , , , , ].eraseDuplicate());
}
// 关于this http://www.cnblogs.com/TomXu/archive/2012/01/17/2310479.html
function aboutThis() {
var foo = {
x:
};
var bar = {
x: ,
test: function() {
console.log(this === bar); // true
console.log(this.x); // 20
//this = foo; // 错误,任何时候不能改变this的值
}
};
bar.test();// true 20 //因为是bar调用的test 所以test中得this就是bar
foo.test=bar.test;//给foo对象添加了一个属性test 这个属性的内容是bar中test属性内容
//注意不要写成foo.test=bar.test() 这是把bar对象test()执行结果赋值给foo.test属性
foo.test();// false 10
function foo2() {
console.log(this);//window
}
foo2();
var foo3 = {
bar:function() {
console.log(this);
console.log('-----'+(this===foo3));
},
sub:{
barSub:function(){
console.log(this);
console.log('....'+(this==foo3));
}
}
}
foo3.bar();//foo3 -----true
foo3.sub.barSub();//sub ....false
// apply和call改变了所执行的函数中的this指向
foo3.sub.barSub.apply(Window);//Window ....false
var exe=foo3.bar;
exe();//Window -----false
}
function calcBinNum(num){
var nums=num+'';
var sum=;
var len=nums.length;
for (var i = nums.length-; i >=; i--) {
n=nums.charAt(i);
sum+=Math.pow(,len--i)*n;
};
console.log(sum);
}
前端笔试题2 JS部分的更多相关文章
- 也许你需要点实用的-Web前端笔试题
之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...
- 2015年百度实习生前端笔试题上海卷a
1.写出javascript运行结果:alert(‘5’+5); 结果:’55’ 2.写出javascript运行结果:for(var i=0; i<10; i++){} alert(i); 结 ...
- 2016届百度实习生前端笔试题上海卷a
1.写出javascript运行结果:alert(‘5’+5); 结果:alert()函数中不能进行算术运算或字符串拼接,故不会弹出对话框. 2.写出javascript运行结果:for(var ...
- 前端笔试题 JS部分
题目 http://www.itmian4.com/forum.php?mod=viewthread&tid=4540 http://www.itmian4.com/forum.php?mod ...
- 2015腾讯web前端笔试题
1 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性) 2 请指出一下代码的性能问题,并经行优化. var info="腾讯拍拍网(www.paipai.com)是 ...
- web前端笔试题
1, 判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母.数字.下划线,总长度为5-20 var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/; reg.test ...
- 腾讯web前端笔试题及个人答案
每道题都有答案,大多数答案亲测正确. 简答题 1.js中“5”+4=? 答案:54 2.js中void(0)=? 答案:undefined 3.js中NaN*4=? 答案:NaN 4.js中null* ...
- web前端笔试题总结
em和rem的区别: 浏览器的默认字体高度是16px,1em=16px:大小可以自己设置调整,并且默认集成父级容器中文本的大小. rem是CSS3中新增的属性,默认情况下是文本尺寸的大小,不同的是它集 ...
- 腾讯2013笔试题—web前端笔试题 (老题练手)
问题描述(web前端开发附加题1): 编写一个javascript的函数把url解析为与页面的javascript.location对象相似的实体对象,如:url :'http://www.qq.co ...
随机推荐
- C#实现按Word模板导出Word(加书签bookMark)
本方法是针对word导出操作,需要制作好的模板文件 模板.doc 引入应用Microsoft.Office.Interop.Word 11.0 (office2003) 导出文件注意:有时候迅雷会在 ...
- Windows Server 中开启 SQL Server 2008 的1433端口
在Windows Server2008 服务器上部署了Microsofit SQL Server2008 R2 ,想让远程机器能够访问,于是开放1433端口,进行了如下设置: 1.打开“本地安全策略” ...
- Farpoint Spread 常用事件
1 // 单元格编辑结束,焦点离开或者按回车键时 比如:你要判断当前单元格输入内容是否合法.private void fpSpread1_EditModeOff(object sender, Syst ...
- Struts2相关注意点
今天开始学习Struts2,有一个小栗子用到了DMI动态方法调用,使用DMI可以减少action的数量简化程序,不用在struts.xml的action中定义method属性.刚开始怎么也不能使用DM ...
- BZOJ 2324: [ZJOI2011]营救皮卡丘( floyd + 费用流 )
昨晚写的题...补发一下题解... 把1~N每个点拆成xi, yi 2个. 预处理i->j经过编号不超过max(i,j)的最短路(floyd) S->0(K, 0), S->xi(1 ...
- BZOJ 1037: [ZJOI2008]生日聚会Party( dp )
dp(i, j, a, b)表示选了i个男生, j个女生, 后缀中男生比女生多a(最多), 女生比男生多b(最多). dp(i+1, j, a+1, max(0, b-1)) += dp(i, j, ...
- day5_python学习笔记_chapter7_字典
1. 内建方法fromkeys()创建一个默认字典, 字典中元素具有相同的值,默认为None dict1 = {}.fromkeys(('x', 'y'), -1) 2. 访问字典中的值, for ...
- 本地搭建php环境
AppServ 是 PHP 网页架站工具组合包,所包含的软件有:Apache[.Apache Monitor.PHP.MySQL.phpMyAdmin等,如果您的本地机器没有安装过php.mysql等 ...
- 数组求最大最小值和排序java实现
public class ArrayDemo05 { public static void main(String[] args) { int list01[]={67,89,87,69,90 ...
- 3种方式实现可滑动的Tab
1. 第一种,使用 TabHost + ViewPager 实现 该方法会有一个Bug,当设置tabHost.setCurrentTab()为0时,ViewPager不显示(准确的说是加载),只有点击 ...