WEB笔试题

tech2023-05-10  116

1.分别写出10个行内标签和5个块级标签(h系列算一个标签)

行内标签: <a>标签可定义锚</a>, <b>字体加粗</b>, <em>定义为强调的内容</em>, <i>斜体文本效果</i>, <sup>上标/sup> <sub>下标</sub>, <u>下划线</u><ins></ins>, <del>删除线/del><s></s>, <strong>加粗</strong><b></b>, <lable></lable>

块级标签 h1~h6标签, <p>段落</p>, <ul>无序列表</ul>, <ol>有序列表</ol>, <li>有序列表</li>, <div><div> <form>表单</form>, <table>表格</table>

2.请写出CSS中几种浏览器的前缀写法

-moz- 火狐等使用Mozilla浏览器引擎的浏览器 ; -webkit- Safari, 谷歌浏览器等使用Webkit引擎的浏览器; -o- Opera浏览器(早期); -ms- Internet Explorer (IE);

3.请写出5个CSS中有兼容问题的属性名称

background-size: 调整背景图片的大小,最低兼容至IE9; word-wrap;text-overflow;text-shadow; transition:过渡; transform:转换; Animation:动画; border-radius:圆角; box-shadow:阴影; border-image:边框图片; column-count: 规定元素应该被分隔的列数。 column-gap: 规定列之间的间隔。 column-rule: 设置列之间的宽度、样式和颜色规则

4.请写出JS创建对象的四种方式

一,字面量创建

var obj={1:1,2:2, 方法名1:function(){}, 方法名2:function(){} }

二,new 对象创建 new Object();O大写

var obj=new Object(); //创建一个空白对象 // console.log(obj); obj.name="小白"; obj.age=12; obj.show=function () { console.log("秀儿同学"); } obj.walk=function () { console.log("走猫步"); }

三,工厂函数造对象

//工厂函数造对象 function createNewObj(name,age){ var obj=new Object(); obj.name=name; obj.age=age; obj.show=function () { console.log("请不要秀"); } obj.walk=function () { console.log("朕要巡视了..."); } return obj; } var newObj=createNewObj("小白",12); console.log(newObj); var newObj1=createNewObj("(●—●)",16); console.log(newObj1); // 批量造对象 for(var i=0;i<10;i++){ var per=createNewObj("哈哈"+i,i+10) console.log(per); }

四,构造函数创建对象

//创建一个构造函数 function Person(name,age){ this.name=name; this.age=age; this.show=function () { console.log("构造函数对象的show"); } this.walk=function () { console.log("构造函数的走路方法"); } } // 根据构造函数创建对象 var per=new Person("小白",12); console.log(per); var per1=new Person("小红",18); console.log(per1);

5.写出五种JS中的兼容问题,以及解决方式(节点访问里面那些算一种)

1.事件对象的获取兼容

onclick=function(event){ event = event || window.event; }

2.阻止默认事件的兼容

function prevent(event){ event = event || window.event; if(event.preventDefault){ event.preventDefault(); }else { event.returnValue = false; } }

3.鼠标到body的距离

function getpageXY(event){ return{ x:scroll().left+event.clientX, y: scroll().top+event.clientY } }

4.事件冒泡阻止

function stopBubble(event){ if(event.stopPropagation){ event.stopPropagation(); }else{ event.cancelBubble=true; } }

5.页面被卷去头部和左侧的距离兼容性封装

function scroll() { if (window.pageXOffset!=undefined){ return{ left:window.pageXOffset, top:window.pageYOffset } } else{ return{ left:document.documentElement.scrollLeft, top:document.documentElement.scrollTop } } }

6.写出冒泡排序(要求:四次优化不能少)

var arr=[8,1,5,3,7]; console.log("操作前原数组:",arr); for(var j=0;j<arr.length-1;j++){ var boo=true; for(var i=0;i<arr.length-1-j;i++){ if(arr[i+1]){ boo=false; var temp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=temp; } console.log("第"+j+"轮"+"第"+i+"次"); } console.log("本次交换完数组:",arr); if(boo){ //如果本轮完事,没有执行if语句,表示前面没有比后面小的,也就是前面比后面大,那么就是有顺序的了,可停止循环。 break; } } console.log("操作后的原数组",arr);

冒泡排序法四次优化 1内层for循环:变量<.length-1; 原因:最后一个数,不能和后面比较,所以最大索引是倒数第二个索引。 2外层for循环:变量<.length-1; 原因:n个数,冒泡(n-1)次就会出现顺序。 3内层for循环:变量<.length-1-外层for循环变量; 原因:每轮冒泡结束后,就会诞生一个最下值,下一轮可少比较一次。 4开闭原则:排出顺序立即停止。

7.请写出将当前日期以YYYY-MM-DD HH:mm:ss打印的代码

例如:今天是2019年1月15日 15点18分25秒 则最后在控制台输出:2019-01-15 15:18:25

var h1=document.getElementsByTagName("h1")[0]; var date; setDate(); function setDate() { date=new Date(); var year=date.getFullYear(); var month=date.getMonth(); var day=date.getDate(); var week=date.getDay(); var hour=date.getHours(); var minute=date.getMinutes(); var second=date.getSeconds(); var arr=["日","一","二","三","四","五","六"]; var str=year+"年"+month+"月"+day+"日 星期"+arr[week]+" "+hour+"小时"+minute+"分钟"+second+"秒"; h1.innerHTML=str; }

8.手写数组去重的方法

//编写一个方法 去掉一个数组的重复元素 var arr= ["c","a","c","z","d","a","x","a","x","a"]; var newArr=[]; arr.forEach(function (item,index,arr) { //利用indexOf方法 该方法就是找到元素第一次出现的位置 //如果跟当前元素的位置不一样 那么就证明当前元素不是第一次出现了 if(arr.indexOf(item)==index){ newArr.push(item); } }) // console.log(arr.indexOf("c")); console.log(newArr);```
最新回复(0)