前端-关于上海某公司笔试题(小练)

本人于2021年5月21日“云”参与了该公司(名字不方便透露)的笔试,总体来说是非常常规的题目,下面是题目及答案。


一、填空题
1.目前常用的WEB标准静态页面语言是_xhtml_
2.改变元素的外边距用_margin_,改变元素的内填充用_padding_
3.在Table中,TR是_行_,TD是_单元格_
4.如果给一行两列的表格(table)定义高度样式,在_table_标签中定义最合理、
最能减少代码的臃肿
5.对ul li的样式设成无,应该是用_list-style:none_属性
6.在新窗口打开连接的方法是_target:blank_
7.color:#666666,可缩写为_#666_
8.合理的页面布局中常听过结构与表现分离,那么结构是_内容_,表现是_css_

二、问答题
1.请写出超链接的顺序或者你在初始样式中的连接方法。
(要求默认无下线,鼠标经过又下线)

    a {
      text-decoration: none;
    }
    a:hover {
      text-decoration: underline;
    }

2.当float和margin同时使用时,IE6的双倍边距BUG如何解决?

  第一种情况:所有的li都左浮动,但每行只显示两个,这样就会出现li自动换行,如果此时设置li的margin-left,则在IE6下出现的效果是margin-left为设置的值得2倍。
    这是因为在IE6下如果有浮动且换行了,那么第一个浮动元素的margin-left就会变成双倍。
  第二种情况:如果一个非block的元素,你设置成block显示,则第一个元素margin-left也会出现双倍的问题。
    两种情况的解决方法都是是 将li(即第一个元素)的dispaly设置为display:inline;   或者不是用li的margin-left而是用ul的padding-left

3.为什么无法定义1px左右高度的容器?

  IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden / zoom:0.08 / line-height:1px

4.请写出XHTML和CSS如何注释?

  xhtml:<!- content -->
  css:/* content */

5.请以缩写方法写出1px直线(实线)灰色(任意灰色代码值),
上面无边框的矩形边框样式。

  {
    border: 1px solid #333;
    border-top: none;
  }

6.你熟悉javaScript语言吗?如果table表格的属性中有个id,如果id等于’td1’,
请问那你如何获取第4行第3个单元格对象?

熟悉。

  let td1 = document.getElementById("td1");
  let tbody = td1.parentNode.parentNode;
  let res = tbody.childen[3].childen[2];
  console.log(res);

7.如何居中div?如何居中一个浮动元素?如何让绝对定位的div居中?

/* 答案不唯一 */
  /*① 不知到宽高*/
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    border: 1px solid #333;
    width: 100px;
    height: 100px;
  /*知道宽高*/
    float: left;
    border: 1px solid #333;
    width: 100px;
    height: 100px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top:-50px;
    margin-left: -50px;
 /* ② */width:500px;
    height:300px;
    float:left;
    margin-left:50%;
    position:relative;
    left:-250px;
 /* ③ */margin: 0 auto;
    left: 0;
    rigth: 0;
    position: absolute;

8.用js实现,找出字符串中出现次数最多的哪一个字符?

  let str = "tttgsgsssgweggwegaqpp";
  let obj = {};
  for(let i=0;i<str.length;i++) {
    // console.log(str.charAt(i));
    let char = str.charAt(i);
    if(obj[char]) {
      obj[char]++;
    }else {
      obj[char] = 1;
    }
  }
  console.log(obj);
  let max = 0;
  let maxChar = null;
  for(let key in obj) {
    if(max < obj[key]) {
      max = obj[key];
      maxChar = key;
    }
  }
  console.log("maxChar:"+maxChar);
  console.log("max:"+max);

9.用js实现,请将数组的日期从前到后排序。
//var myDate = [‘2021-4-19’,‘2021-4-29’,‘2012-4-2’,‘2012-4-5’];
//输出:[‘2012-4-2’,‘2012-4-5’,‘2021-4-19’,‘2021-4-29’]

  var myDate = ['2021-4-19','2021-4-29','2012-4-2','2012-4-5'];
  console.log(myDate)
  myDate.sort(function(a,b) {
    let A = new Date(a).getTime();
    let B = new Date(b).getTime();
    if(A>B) {
      return 1;
    }else {
      return -1;
    }
  });
  console.log(myDate);

总结:笔试内容仍有我平常从未接触的内容,如该笔试题中的ie6问题;
js代码仍不够熟悉。
解决方案:登录到牛客网,大量的查看面经及笔试题,熟悉题型。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值