前端笔试题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 ...
随机推荐
- 如何在VMware虚拟机上安装Linux操作系统(Ubuntu)
作为初学者想变为计算机大牛非一朝一夕,但掌握基本的计算机操作和常识却也不是多么难的事情.所以作为一名工科男,为了把握住接近女神的机会,也为了避免当白痴,学会装系统吧!of course为避免把自己的电 ...
- 7. Reverse Integer
1. 问题描述 Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321 cl ...
- if---(switch-case)语句初步学习总结
Daily sentence: Happiness is about having each tiny wish come true. 幸福就是达成每一个Tiny Wish. Ctrl+E D C# ...
- Css 外边距折叠(collapsed margin ) 浅析
Css 外边距折叠(collapses margin ) a.先来看看w3c 文档对于外边距折叠的定义: In CSS, the adjoining margins of two or more bo ...
- C#高效导出Excel(IList转DataTable,DataSet)
微软的Excel操作类导出Excel会很慢,此方法简单的把表中内容以字符串的形式写入到Excel中,用到的一个技巧就是"\t". C#中的\t相当于Tab键,写入到Excel中时就 ...
- 浏览器中输入Google.com然后按下回车键
按下回车键,当然会产生操作系统的中断响应,产生一个WM_KEYDOWN消息,当然这些都不是计算机网络的东西,这里只讨论计算机网络相关的东西: 解析URL 浏览器通过URL能够知道下面的信息: Prot ...
- 自己拼接json字符串,现在用Gson来实现
StringBuilder stringBuilder = new StringBuilder("["); String ssString; ArrayList<Compet ...
- JQuery实战学习--在dreamweaver 8中配置Jquery自动提示
最近在学习jQuery,然后在网上找到了自动提示的方法,记之. 1,首先下载jQuery_API.mxp这个扩展文件. 2,打开DW,点击命令-->扩展管理-->文件-->安装扩展, ...
- Android TextWatcher应用实例
(1)使用TextWathcer限制输入字符个数布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输入框中 ...
- [置顶] What is the difference between Category and Class Extension?
细心的人会发现当我们new 一个文件的时候会发现下图的部分. 但是这个问题来了Category 和 Extension 就近又什么区别呢? 1:什么是Category? 实现这样一种场景,当我们用我们 ...