金山笔试总结

  金山公司的笔试题目,过后把自己在考场写的代码测试一下,发现存在不少问题,仔细地总结了一番,如下:

一、检查一个值是否为NaN

 1 <html>
 2 <head>
 3 <script language="JavaScript">
 4     function isNumber(){
 5     var btnObj=document.getElementById("idTel");
 6     var strValue=btnObj.value;
 7
 8     if(!isNaN(strValue)){ //若是数字则返回false
 9         alert("is number");
10     }else{
11     alert("not a number");
12     }
13
14     }
15 </script>
16 </head>
17 <body>
18     <form action="" method="post" name="">
19         <input type="text" name="tel" id="idTel" value="">
20         <input type="button" name="isNum" value="提交" onclick="isNumber()">
21     </form>
22 </body>
23 </html> 

二、JS函数实现sum(2)(3) => 5

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 </head>
 7 <body>
 8     <script type="text/javascript">
 9         function sum(a){
10             return function(b){
11                 return a+b;
12             }
13         };
14         alert(sum(3)(2));//闭包有两种应用:1、函数作为返回值 2、函数作为参数传递
15     </script>
16 </body>
17 </html>

三、从整数1到n共出现多少个0

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <script type="text/javascript">
 9     //从整数1到n共出现了多少个0
10         function count_zero(n){
11             var arr = new Array();
12             for(var i = 1;i <= n;i++){
13                 var b = i,r;
14                 while(b != 0){
15                     r = b % 10;
16                     b = Math.floor(b / 10); //一开始是"b=b/10",js并不像C语言
17                     arr.push(r);
18                 }
19             };
20             var zero_num = count(arr);
21             return zero_num;
22         }
23
24         function count(arr){
25             var count = 0;
26             for(var i = 0;i < arr.length;i++){
27                 if(arr[i] == 0){
28                     count++;
29                 }
30             }
31             return count;
32         }
33
34         var a  = count_zero(100);
35         var b  = count_zero(105);
36         console.log(a);
37         console.log(b);
38
39     // javascript除法如何取整
40     // Math.round(x) 四舍五入,如Math.round(0.60),结果为1;Math.round(0.49),结果为0;
41     // Math.floor(x) 向下舍入,如Math.floor(0.60)与Math.floor(0.49),结果均为0;
42     // Math.ceil(x)向上舍入,如Math.ceil(0.60)与Math.ceil(0. 49),结果均为1。
43     </script>
44 </body>
45 </html>

四、JS函数,从数组中清除重复元素

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 </head>
 7 <body>
 8     <script type="text/javascript">
 9         function uniqueArray(arr){
10             var arr = arr || [];    //var arr = arr | [];   arr一直都是0。。。
11             console.log(arr);
12             var obj = {};
13             for(var i = 0;i < arr.length;i++){
14                 var v = arr[i];
15                 if(typeof(obj[v]) == ‘undefined‘){
16                     obj[v] = 1;
17                 }
18             };
19             arr.length = 0;
20             for(var i in obj){
21                 arr[arr.length] = i;
22             };
23             return arr;
24         }
25         var arr1 = [1,3,5,7,7,8,9,3,10,8];
26         var arr2 = [1,3,5,7,7,8,9,3,10,8,"sdsdsds","sss","ffff","sss","sss"];
27         console.log(uniqueArray(arr1));
28         console.log(uniqueArray(arr2));
29     </script>
30 </body>
31 </html>

  这是在度娘上找到的不错的一种算法

五、prototype实现一个简单的继承例子

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 </head>
 7 <body>
 8     <script type="text/javascript">
 9         function Father(){
10             this.Supproperty = "hi,i am gdt";
11         }
12         Father.prototype.getSupValue = function(){
13             return this.Supproperty;
14         };
15         function Son(){
16             this.Subproperty = "hi,i am fxt";
17         }
18         Son.prototype = new Father();
19
20         Son.prototype.getSubValue = function(){
21             return this.Subproperty;
22         };
23
24         var instance = new Son();
25         console.log(instance instanceof Son);//instanceof用于判断一个变量是否某个对象的实例,如是则返回true
26         console.log(instance);
27         //引用父类的属性和方法
28         console.log(‘父类属性:‘+instance.Supproperty);
29         console.log(‘父类属性:‘+instance.getSupValue());
30         //使用子类的属性和方法
31         console.log(‘子类属性:‘+instance.Subproperty);
32         console.log(‘子类属性:‘+instance.getSubValue());
33     </script>
34 </body>
35 </html>

六、网络请求优化方案

  • 尽量减少HTTP请求数里的减少图片请求数量,可用实现CSS Sprite
  • 压缩文本和图像,使用gzip这样的压缩技术,依靠增加服务端压缩和浏览器解压的步骤,来减少资源的负载。
  • 使用Ajax来从Web服务器上获取数据,它并不需要更新正在运行的页面,Ajax能更新页面上的某个部分而不需要重新构建整个页面。

  详细还可参考http://blog.jobbole.com/46599/

时间: 2024-12-15 06:54:11

金山笔试总结的相关文章

c++的内存分配

C++堆和栈的分配 腾讯.金山笔试常考 栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈. 堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,注意它与数据结构中的堆是两回事,分配方式类似于链表. 全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后由系统释放 文字常量区—

2014/4月金山WPS笔试

今晚去參加了金山的笔试. 一開始还以为选C++的人不会非常多. 我去啊,一去到,好多人,一整个大教室都快满人了. 还好我算是去的比較早的了. 还拿到了一个位置. 金山还是挺不错的,对于我这类还没有实力进去腾讯阿狸百度这样的大公司的程序员来说. 还是说说笔试吧. 10道选择,三道大题. 考得都是比較基础的,主要是考你对模板已经文件读这一方面. 毕竟是招进去做WPS的. 自己做的还算不错吧.最后一道大题由于最后时间差点儿相同了.也就仅仅写了思想算了. 预计能拿到面试机会吧. 只是那么多人.也说不定.

算法笔试

1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child of

笔试算法题

转自:http://www.cnblogs.com/xwdreamer/archive/2011/12/13/2296910.html 1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  i

DP - tencent2016实习生笔试A

tencent2016实习生笔试A Problem's Link ---------------------------------------------------------------------------- Mean: 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串.如何删除才能使得回文串最长呢?输出需要删除的字符个数. analyse: 对于这题来说,插入字符和删除字符使其成为回文串,答案是一样的. 首先求s的反串rs,然后对s和rs求最长公共子序列,要删除的字

算法学习 并查集(笔试题目:找同伙)

题目背景太长,记得不清楚,暂参考<啊哈算法>一书,根据笔试题目大意改编如下: 警察正要捉获某地区的犯罪团伙,由于强盗人数过大,想查清楚有几个团伙非常困难. 根据上级指示,需要首先尽快抓获强盗A所在的团伙,这需要掌握 1 所在团伙的人数.先有资料如下: 强盗1 和 强盗2 是同伙 强盗3 和 强盗4 是同伙 强盗2 和 强盗5 是同伙 强盗3 和 强盗2 是同伙 注意,强盗的同伙的同伙也是同伙,问  强盗1 的同伙(不包括1自己)有多少人? 该题形式化表示如下: 每个测试实例首先包括2个整数:N

2015腾讯笔试大题

今天做完腾讯的在线笔试,感觉自己弱爆了,选择题部分考得比较基础,但是考的面比较广,数据结构,计算机网络,算法常识,概率题,C,C++,都有.大题如下: 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code).请编写一个函数,使用递归方法生成N位的格雷码,并且保证这个函数的健壮性. 2. 有下图的题解,请用C/C++代码来列出满足下图0-100内的所有答案. 3. 如图所示,系统中有三个进程Producer,Transmitter和Consumer.

腾讯、网易有道和阿里的笔试分享及自我总结

声明:本人Android移动开发岗 腾讯:考的很杂 选择题(25题不定项):考的包括: 编译原理两题, 计算机网络一两题(私网地址), C++若干, IOS开发一两题, 还有二叉树两三题,先后序遍历,求深度 jvm也有一题, 概率论一两题, JavaScript一题, 还有C语言(包括指针数组,数组指针,指针函数之类的)也挺多的 更多的是看程序求输出. 大题: 1,10亿QQ号用Set和Vector两个容器来删除奇数号 2,猴子摘香蕉,一次可以摘一根或两根,求摘50根有几种摘法(斐波那契数列)

58同城2015校招笔试、一面、二面经历

10.18 宣讲 58宣讲时间真是安排的晚...19.30开始,我6.30就到了..整整放了1个小时不重复的视频.....我听完他们CSO对行业和公司的介绍就走了.感觉58可能是o2o的下一个爆发点.感觉蛮有前景的.宣讲会也是和小米的宣讲差不多,过道上都挤满了人这种.我个人还是比较些向往去58的.个人感觉对于O2O,58算是赶了个早集..把最脏最累的活给做了..反而是美团,大众点评这种抓住了热点...当然,未来的大趋势也是O2O,就看58能不能赶上这趟快车了. 10.19 笔试 昨天的唯品会和中