博主本人前两天刚参加了百度前端校园招聘笔试,现把能记住的跟大家分享探讨下,还有一些是网上搜集来的其他地区的笔试
1、列举所知道的图片格式,说明其应用场景和优缺点
当时只填出png,jpg,gif这几个格式,应用场景和优缺点只能随便写了几句话。
网上搜集的资料如下:
- bmp(位图)格式:它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点——占用磁盘空间过大。
- gif格式:可以同时存储若干幅静止图象进而形成连续的动画。目前Internet上大量采用的彩色动画文件多为这种格式的文件。缺点是不能存储超过256色的图像。
- jpeg格式:文件扩展名为.jpg或.jpeg,其压缩技术十分先进,可以用最少的磁盘空间得到较好的图像质量。应用非常广泛,特别是在网络和光盘读物上。
- png格式:一种新兴的网络图像格式,结合GIF及JPG两家之长,是目前保证最不失真的格式,它汲取了GIF和JPG二者的优点,存贮形式丰富。PNG的缺点是不支持动画应用效果。
以上资料摘自网上搜索结果。
2、跨域通信问题解决方法
作答时只写了利用document.domain
详情请见我另一篇博客web跨域通信问题解决
3、父元素设置了一个透明度,让子元素不继承父元素透明度,有什么解决方法
博主表示平常透明度用的就不多,更没有遇到子元素继承的情况,所以此题你懂的
解决办法:a、利用绝对布局,不使用子元素,使其看似是子元素,但由于position:absolute,可能会出现很多问题
b、IE中,子元素添加position:relative,非IE,使用background:rgba(120,120,120,0.7)来实现。
4、考察加号减号运算符
1 console.log(2+'1') //'21' 2 3 console.log(2-'1') //1 4 5 console.log(1+ -'1'+'2') //'02' 6 7 console.log(+'1'+'1'+'2') //'112' 8 9 console.log(1+ +'2'+'2') //'32' 10 11 console.log('A'-'B'+2) //NaN 12 13 console.log('A'-'b'+'2') //'NaN2'
5、手机端浏览器,当用户使用百度搜索某一结果时,返回N条记录,用户可向下滚动查看记录,而不是像电脑上的翻页效果
我觉得是考的AJAX无刷新修改页面的问题,当用户搜索时,先返回搜索记录的前n调数据(不用太多),当滚动到底端时,利用ajax技术,取得后n条数据,然后将取得的数据append进页面中。
6、设计一个once函数,这个函数只执行一次,若再执行,直接返回上次的结果。
我认为是利用立即执行加闭包的方式,再利用hash-table判断是否已经执行
1 /*只执行一次的函数*/ 2 var test1 =function(){ 3 alert('OK1'); //只会弹出一次 4 console.log('OK1'); 5 } 6 7 var test2 =function(){ 8 alert('OK2'); //只会弹出一次 9 console.log('OK'); 10 } 11 12 var once = function(){ 13 var obj = {},i = -1; 14 return function(fn){ 15 if(arguments.length<1){ 16 alert('请传入要执行的函数'); 17 return; 18 } 19 for(var key in obj){ 20 if(obj[key].func === fn){ 21 return obj[key].result; 22 } 23 } 24 var result = fn(); 25 i++; 26 obj[i] = {func:fn,result:result}; 27 return result; 28 } 29 }()