2018秋招58同城笔试题分享(前端篇)

2018秋招58同城笔试题分享(前端篇)
最新回答
待春暖花開

2021-12-13 16:34:20

填空题答案解析
  1. 号码段为131到139的11位手机号码正则校验

    答案:/^13[1-9][0-9]{8}$/

    解析:此正则表达式匹配以13开头,第二位为1-9,后跟8位数字的11位手机号码。

  2. 移动端通过链接调起拨打电话

    答案:<a href="tel:10086">10086</a>

    解析:在HTML中使用tel:协议链接,点击后可调起拨号界面。

  3. 代码输出结果

    答案

    "teacher"Uncaught ReferenceError: s is not defined

    解析:var声明的变量t具有函数作用域,而let声明的变量s具有块级作用域。在代码块外访问s会报错。

  4. HTTP协议状态码

    答案

    200: OK(请求成功)

    400: Bad Request(客户端请求错误)

    500: Internal Server Error(服务器内部错误)

  5. JavaScript算术运算及ES6字符串模板

    答案

    '10' + 1 结果为 '101'(字符串拼接)

    '10' - 1 结果为 9(字符串转换为数字后运算)

    ES6字符串模板:`${ting}室${shi}厅${wei}卫`

  6. ES6解构赋值

    答案:let {name: n, age: a} = obj;

    解析:将obj对象的name属性赋值给n,age属性赋值给a。

  7. HTTP/HTTPS协议默认端口号

    答案

    HTTP:80

    HTTPS:443

  8. 名词解释

    答案

    MVC:模型-视图-控制器,将应用分为三个核心部件。

    MVP:模型-视图-表示器,表示器处理用户交互。

    MVVM:模型-视图-视图模型,视图模型自动同步模型和视图。

  9. Flex布局实现垂直居中对齐

    答案

    .box { display: flex; align-items: center;}
简答题答案解析
  1. CSS3的box-sizing属性

    答案

    content-box:默认值,宽度和高度仅包含内容。

    border-box:宽度和高度包含内容、内边距和边框。

  2. switchCase函数执行结果

    答案

    switchCase(0):输出default(严格比较,0不等于'0')

    switchCase('0'):输出case 0和case 1(无break语句)

    switchCase():输出undefined(未传参时value为undefined)

  3. CSS隐藏元素的方法及区别

    答案

    display: none:不占据空间,无法交互。

    visibility: hidden:占据空间,无法交互。

    opacity: 0:占据空间,可以交互。

    position: absolute; left: -9999px:移出可视区域。

  4. 代码执行结果

    答案

    s.getS():输出student(this指向s)

    s.getS.apply(t):输出teacher(this指向t)

    getS():输出undefined(this指向全局对象,无s属性)

    getS1.call(t):输出student(bind已固定this为s)

  5. 移动端适配方案

    答案

    视口设置(<meta name="viewport">)

    媒体查询(@media)

    rem单位(基于根元素字体大小)

    弹性布局(Flexbox/Grid)

    百分比布局

应用题答案解析
  1. 随机打乱数组顺序的函数

    答案

    function shuffleArray(arr, fixedIndex = -1) { const array = [...arr]; for (let i = array.length - 1; i > 0; i--) { if (i === fixedIndex) continue; const j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; } return array;}

    解析:使用Fisher-Yates洗牌算法,跳过固定索引的元素。

  2. 比较APP版本号的函数

    答案

    function compareVersions(v1, v2) { const parts1 = v1.split('.').map(Number); const parts2 = v2.split('.').map(Number); const maxLength = Math.max(parts1.length, parts2.length); for (let i = 0; i < maxLength; i++) { const num1 = parts1[i] || 0; const num2 = parts2[i] || 0; if (num1 > num2) return 1; if (num1 < num2) return -1; } return 0;}

    解析:将版本号拆分为数字数组,逐级比较。