前端笔试题 JS部分
题目 http://www.itmian4.com/forum.php?mod=viewthread&tid=4540
http://www.itmian4.com/forum.php?mod=viewthread&tid=4540 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var div=document.createElement('div');
var o={a:1,b:{c:1}};
var obj = {
name: "Simon",
age: "20",
clothing: {
style: "simple",
isDouche: false
}
}
var arr=[1,2,3];
window.onload=function(){
//当输入框获取焦点时 删除原有字符 离开输入框且未输入字符时重新显示原有字符
//checkInput();
//当点击链接/按钮时 显示这是当前第几个链接/按钮
//countLink();
//countBtn();
//countBtn2();
//获取全部父节点名字
//getAllParents(document.getElementById('getParent'));
// 给定一个对象var o={a:1,b:{c:1}}; 取到全部属性的名字 如abc
//recursion(o);
//recursion(obj);
//比较除了第一个字符之外剩余字串 并按顺序排列
//asort();
//为数组添加Shuffle()方法
// addShuffle();
// testShuffle();
// 将两个数组合并在一起
//mergeArray();
// 判断是不是数组
//isArray(arr);
//alertMath();
//数组去重
//deleteDupligate();
//addUniqueForArray();
// 判断是否是String类型 'xxx' new String('xxx') 都要能够正确判断
//testString();
//显示标签名称
//alertName();
}
// all props
function allProp(){
for(prop in div.style){
str+=(prop+=' ');
}
document.getElementById('msg').innerHTML=str;
}
function checkProp(prop){
if(prop in div.style){
return true;
}else{
return false;
}
}
function checkInput(){
var input=document.getElementsByName('input1')[0];
//下面这种定义事件的方式看起来简单但是不好
//看起来定义了为blur事件定义了两个函数 //实际上后面一个函数覆盖了前面一个 最终只会弹出b2
// input.onblur=function(){
// alert('blur');
// }
// input.onblur=function(){
// alert('b2');
// }
//所以应该使用下面的方式
input.addEventListener('focus',function(){
if(this.value=='default'){
this.value='';
}
},false);
input.addEventListener('blur',function(){
if(this.value==''){
this.value='default';
}
}); } function countLink(){
var sum=document.getElementsByTagName('a').length;
console.log(sum);
for (var i = 0; i < sum; i++) {
document.getElementsByTagName('a')[i].onclick=function(x){
return function(){
alert(x);
}
}(i); //使用闭包Closure的方式向匿名函数传参
}
}
//关于事件传参使用Closure http://stackoverflow.com/questions/10856517/javascript-issue-with-scope-and-passing-parameters-to-dynamically-created-even function countBtn(){
var all=document.getElementsByTagName('button');
var sum=document.getElementsByTagName('button').length;
for (var i = 0; i < all.length; i++) {
all[i].addEventListener('click',function(x) {
return function(){
alert(x);
}
}(i));
}
}
// 为什么要用return check this
// http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example
function countBtn2(){
var all=document.getElementsByTagName('button');
for (var i = 0; i < all.length; i++) {
all[i].addEventListener('click',closureForCountBtn2(i));
}
}
function closureForCountBtn2(x){
return function(){
alert(x);
}
}
function getAllParents(dom){
if (dom.tagName=='html') {
console.log('html it is the root');
}else{
console.log(dom.tagName);
getAllParents(dom.parentNode)
}
} function recursion(o){
for(var name in o){
if(o.hasOwnProperty(name)){
console.log(name+" "+typeof(o[name])+" "+(o[name] instanceof Object));
if(o[name] instanceof Object){
recursion(o[name]);
}
}
}
} function asort(){
var arr=["abd","cba","ba"];
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length-i-1; j++) {
//if(strcmp(arr[j],arr[j+1])==1){
//现在的要求是只比较除了第一个字符之外的剩余字符
if(strcmp(arr[j].substring(1),arr[j+1].substring(1))){
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
};
};
for(var index in arr){
console.log(arr[index]);
}
} function strcmp(str1,str2){
return ( str1 < str2 ) ? -1 : ( str1 > str2 ? 1 : 0 );
} function addShuffle(){
Array.prototype.shuffle=function(){
var len=this.length;
for(var i=0,j=0;i<len;i++){
j=(function(x){
return Math.floor(Math.random()*x);
}(len));
temp=this[i];
this[i]=this[j];
this[j]=temp; }
return this;
}
}
function getRandom(len){
return Math.floor(Math.random()*len);
}
function testShuffle(){
var arr=[1,2,3,4,5,6,7,8,9,10];
arr.shuffle();
console.log(arr);
} function mergeArray(){
var a = [-3,-1,0,1,3,5,7,9];
var b = [-4,-2,0,2,3,4,5,6,7,8];
for (p in b) {
a.push(p);
}
a.sort();
console.log(a);
} function isArray(obj){
//alert(obj instanceof Array);
//alert(obj.constructor==Array); //constructor
console.log('constructor---------------');
console.log(Object.constructor);//function Function() { [native code] }
console.log(typeof Object);//function 可执行对象说一律返回function
console.log(Object instanceof Object);//true
console.log(typeof Object.constructor);//function
console.log(Array.constructor);//function Function() { [native code] }
console.log({}.constructor);//function Object() { [native code] }
console.log([].constructor);//function Array() { [native code] } //constructor ==
var arr=[1,2,3];
console.log(arr.constructor);//function Array() { [native code] }
console.log(arr.constructor==Array);//true //prototype
console.log('---------------');
console.log(Object.prototype);//Object {}
console.log(Object.prototype.constructor);//function Object() { [native code] }
console.log({}.prototype);//undefined //根据犀牛书121页 字面量对象的原型就是Object.prototype
var F=function(){};
console.log(F);
console.log(F.prototype.constructor);//function (){}
console.log(F.prototype);//Object {} //由此可见 函数的prototye属性是一个对象
console.log(typeof F.prototype);
console.log((function(){}).prototype);//Object {}
console.log((function(){}).prototype.constructor);//function (){}
// //console.log(arr.prototype.constructor);//Uncaught TypeError: Cannot read property 'constructor' of undefined
//console.log({}.prototype.constructor);//Uncaught TypeError: Cannot read property 'constructor' of undefined //var o1= Object.create([1,2,3]);
// console.log(o1.prototype);//undefined
console.log('----------------');
function Animal(name){ }
console.log(typeof Animal.prototype);//object
console.log(Animal.prototype);//Animal {}
} function alertMath(){
var a= (Math.PI++);
var b = (Math.PI++);
alert(a);//3.14...
alert(b); } function deleteDupligate(){
var arr=[1,1,2,3,4,4,5,6,7,7,8,9];
for (var i = 1; i < arr.length; i++) {
if(isExists(i,arr)){
mymove(i,arr);
arr.length=arr.length-1;
}
}
console.log(arr);
}
function isExists(i,arr){
flag=false;
for (var j = 0; j < i; j++) {
if(arr[i]==arr[j]){
flag=true;
break;
}
}
return flag;
} function mymove(i,arr){
for(j=i;j<arr.length-1;j++){
arr[j]=arr[j+1];
}
} /*上面去除重复元素的方法太C语言了 */
// 看看这个帖子 http://php.js.cn/blog/array-unique-in-javascript/
//原文中第4中实现似乎是最高效的方式 但是改变了元素顺序 所以还是写第2种好了
function addUniqueForArray(){
//为数组添加function
Array.prototype.unique4=function(){
var uni={};//不重复元素列表 //key-value形式
var re=[];
for (var i = 0; i < this.length; i++) {
if(!uni[this[i]]){
uni[this[i]]=true;//值设置为true
re.push(this[i]);
}
};
return r;
}
}
function classof(obj){
if(obj===null)return null;
if(obj===undefined) return undefined;
// 注意 null undefined在使用==的时候被认为是相同的
//所以 第一个判断上如果使用的是== 是无法判断究竟是null还是undefined
return Object.prototype.toString.call(obj).slice(8,-1);
}
function testString(){
var isString=function(str){
return (typeof str=='string');//这种方式不能检测包装对象
}
console.log(isString('sdcds'));//true
console.log(isString(new String('scsc')));//false var isString2=function(arg){
return ((typeof arg=='string')||(arg.constructor==String));
}
console.log(isString2(new String('')));//true
var isString3=function(arg){
//return ((typeof arg=='string')||(typeof classof(arg)=='string'));
return ((typeof arg=='string')||(classof(arg)=='String'));
}
console.log(isString3(new String('')));//true
} function alertName(){
var all=document.getElementsByTagName('a');
for (var i = 0; i < all.length; i++) {
console.log(all[i].tagName);
};
} // 异步加载script
function loadScript(url, callback) {
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState){//IE
script.onreadystatechange = function(){
if (script.readyState == "loaded"||script.readyState == "complete"){
script.onreadystatechange =null;
callback();
}
};
}else{//Others: Firefox, Safari, Chrome,and Opera script.onload = function()
{
callback();
};
}
script.src = url;
document.body.appendChild(script);
}
</script>
</head> <body>
<div class='root'>
<a href="javascript:void(0);">111</a>
<button>1</button>
<div>
<a href="javascript:void(0);">222</a>
<button>
<span id='getParent'>2</span>
</button>
<div>
<a href="javascript:void(0);">323</a>
<button>3</button>
</div>
</div> </div>
</body>
</html>
前端笔试题 JS部分的更多相关文章
- 也许你需要点实用的-Web前端笔试题
之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...
- 前端笔试题2 JS部分
笔试题2 var EventME = {}; EventME.addHandle = function(ele, eventName, handleFunction) { if (ele.addEve ...
- 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 ...
- 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 ...
随机推荐
- Swift与Objective-C交互
在同一个工程中是可以同时使用Swift和OC的,但不可以同时出现在同一个文件中. OC调用Swift相关信息的方法 在***.m文件中导入工程名-Swift.h即可. 如工程名为ABC,则在需要使用S ...
- 新辰:4G时代怎样利用手机进行移动APP营销?
未来的时代是4G时代,新辰手机用户的搜索量不在电脑端之下.那么,我们要怎样用手机进行营销呢?手机站点的竞价文章,要怎样去写比較好?手机站点要做专题吗?手机站点的优化思路在哪里?手机的系统不同,在不同的 ...
- iWeb峰会见闻
8.16去参加了iWeb峰会,一大早8点过10分就到了,发现外面已经排起了长队(说明影响力越来越大,关注的人越来越多了.) 此次大会参与的企业也越来越多,当然是有目的而来~ 上午 google商业合作 ...
- VS2012 TFS切换账号登录
最近要做团队项目,用到的vs2012的tfs代码管理器(win7 +vs2012),切换账号的流程如下: 1.打开控制面板,进入用户账户 2.点击左侧的管理您的凭据,看到自己的TFS服务器的地址,然后 ...
- 红豆带你从零学C#系列之:使用集合组织相关数据
ArrayList(数组列表) Why:如果一个公司有5名员工,一般我们会用长度为5的对象数组来存储信息,但要是有新员工来了,5个长度的数组就不够用了,因此我们需要一种能够根据需要自动分配容量的动态数 ...
- 任务栏流量监测工具 NetSpeedMonitor 在Windows 8下的安装使用
这个是给不喜欢360等提供的桌面浮动网络监控的园友准备的,NetSpeedMonitor 是一个可以在任务栏监控流量的小工具,集成在任务栏上显示,可以手动设置单位.文字大小等.还支持监控日志,相比其他 ...
- USACO Section 4.3 Buy low,Buy lower(LIS)
第一眼看到题目,感觉水水的,不就是最长下降子序列嘛!然后写……就呵呵了..要判重,还要高精度……判重我是在计算中加入各种判断.这道题比看上去麻烦一点,但其实还好吧.. #include<cstd ...
- SQL2-子查询、join查询
SQL常用高级查询包括:Join查询.子查询. 子查询: USE flowershopdb --子查询:在一个select语句使用另一个select 语句作为条件或数据来源. --查询块:一个sele ...
- python基础学习笔记6--异常
异常 1.什么是异常? python用异常对象来表示( exception object)异常情况.如果异常没有被处理或扑捉,程序就会所谓的回溯(TraceBack,一种错误信息)而终止执行: 2. ...
- 具有 CSA CCM 证明的 SOC 2 可简化 Windows Azure 客户的安全性评估过程
编辑人员注释:本文章由 Windows Azure 产品市场营销总监 Sarah Fender 撰写. 今天,我们宣布 Microsoft 的公共审计师 Deloitte 已经发布了有关 Window ...