Didi.com делает крутые записи об угоне автомобилей

опрос
Didi.com делает крутые записи об угоне автомобилей

предисловие

Дата собеседования 20 апреля в 19:00. Сегодня я опоздала на 20 минут по личным причинам.К счастью, интервьюер готова дождаться таинственного человека (да, Лао-Цзы), она не представилась, когда подошла, и сразу начала вопрос! !!

Начать интервью

Произнесите значение цвета шрифта метки ниже

Этот вопрос касается наследования CSS и взаимосвязи между весами.

Селектор Формат приоритетный вес
селектор идентификатора #id 100
селектор класса .class 10
Селектор тегов div 10
селектор потомков li a 0

Для приоритета селектора:

  • Селекторы тегов, селекторы псевдоэлементов: 1
  • Селекторы классов, селекторы псевдоклассов, селекторы атрибутов: 10
  • селектор идентификатора: 100
  • Встроенные стили: 1000

1. Сначала посмотрите на код

<style type="text/css">
	#a {font-size:12px}
	div p{ font-size:13px }
	div .c{ font-size:14px }
    .a .b .c{ font-size:15px }
    #b{ font-size:16px }
</style>
<div id=”a” class=”a”>
	<div id=”b” class=”b”>
        <p id=”c” class=”c”>I’am here</p>
	</div>
</div>

1618969792(1).jpg ps: вот моя меткаcОтвет был неверным, потому что я начал задавать вопросы, когда подошёл, и я сильно нервничал и сказалcунаследуетbЦвет шрифта.

Скажите, какие свойства CSS наследуются

На самом деле, это в соответствии с основным вопросом на обратной стороне интервью, который, по словам интервьюера, написал мне и сказал, перейдите к моей оценке, поэтому интервьюер очень мощный

  • Свойства семейства шрифтов
    • семейство шрифтов: семейство шрифтов
    • font-weight: вес шрифта
    • размер шрифта: размер шрифта
    • стиль шрифта: стиль шрифта
  • Свойства текстовой серии
    • text-indent: отступ текста
    • text-align: горизонтальное выравнивание текста
    • высота строки: высота строки
    • word-spacing: расстояние между словами
    • letter-spacing: китайский или расстояние между буквами
    • text-transform: управление регистром текста (то есть прописные, строчные, заглавные буквы этих трех)
    • цвет: цвет текста
  • видимость элемента
    • видимость: элемент управления для отображения и скрытия
  • Список свойств макета
    • стиль списка: стиль списка, включая тип стиля списка, изображение стиля списка и т. д.
  • свойства курсора
    • курсор: в какой форме отображается курсор

пс: теоретические вещи здесь, я был более осведомлен, общий тест я тянул почерк,

Закрытие JavaScript

Здесь замешаны замыкания, я сначала подумал, что тест — это контекст выполнения.

var a=0,b=0;
 function A(a){
    A = function(b){alert(a + b++)}
    alert(a++);
 }
 A(1);
 A(2);

из-за исполненияA(1)час,Aне имеет области действия A, поэтомуA = function(b){alert(a + b++)}переназначает себя и имеет прежнюю область действия (включая формальные параметрыa). образуют замыкание. вызовA(2)то, что выполняетсяalert(a + b++), в настоящее время в рамкахaравен 2, входящий параметр также равен 2, поэтому результат равен 4.

ps: Хотя мое объяснение здесь означает, что я, конечно, не коснулся этого ключевого момента напрямую.

Обход вложенных объектов

Напишите функцию для получения значения в объекте1, необходимо использоватьstr = 'a.b.c';

лучший ответ здесь

«Наверное, мой ответ удивителен. Если вы только что закончили есть, не читайте его, я боюсь, что вы его разбрызгаете».

//find(obj,'a.b.c') //1
//find(obj,'a.d.c') //undefined
var obj = {
    a:{
        b:{
            c:1
        }
    }
}
 
var str = 'a.b.c';

const find = (obj,str) => {
  let arr = []
  for (const key in str) {
    if (Object.hasOwnProperty.call(str, key)) {
      if (str[key]!= '.') {
        arr.push(str[key])
      }
    }
  }
  try {
    return `${obj[arr[0]][arr[1]][arr[2]]}`
  } catch (error) {
    return undefined
  }
}

Смысл этого вопроса в том, чтобы узнать, как получить значение, содержащееся в объекте.

Есть два метода:

  1. существует[]Способ включения строкового выражения в суффикс следующий:obj[a]
  2. можно использовать.Обозначения, такие как:obj.a

ps: Вышеупомянутое решение заключается в использовании[]Способ решения этой проблемы, масштабируемость у меня не высокая, но вот дырка для себя!

Роль Object.hasOwnProperty

Вот только последний вопрос, который оставил для меня дыру, есть, есть!!!!!!

На самом деле к моменту интервью мой ритм сбился, но я еще не паниковала.

Улыбка интервьюера мгновенно заставила людей меньше нервничать.

Официальное объяснение от MDN

ps: Мой ответ - судить, является ли он нулевым или неопределенным. С неоднократной поддержкой интервьюера, я говорю это, чтобы судить о цепочке прототипов~~

Интервьюер здесь улыбается и хорошо выглядит😊😊😊

Прототип и понимание цепочки прототипов

Согласно предыдущему вопросу, интервьюер задал еще один вопрос,

const b = 2
a = b
// 问 : a的原型链指向谁?是怎么个查找顺序
// 答 : a是指向的b

// 问 : 怎么修改a的原型指向
// 答 : 深浅拷贝
// 问 : 除了拷贝呢
// 答 : 思考再三,我说了construvtor (这不对)
// 答 : 通过构造函数

// 下一题(≧﹏ ≦)

правильный ответ: Прототип a не указывает на b, это Number, а b — базовый тип, поэтому a — это переназначение, а прототип a указывает на Number. (После того, как большой парень в области комментариев напомнил мне, что я понял это неправильно)

1619141743(1).jpg

ps: Это потому, что не заложен фундамент, потому что опыта проектов много, а эти принципы игнорируются, что приводит к слабому пункту в технической оценке.

Визуализация данных проекта, компоненты высшего порядка Vue

Резюме читал здесь.Есть проекты, в которых написана визуализация данных в проекте, и в проекте используются Vue компоненты высокого порядка (ленивая загрузка компонентов)

Код отложенной загрузки компонента

const MonthlyAddition = () => ({
  // 需要加载的组件 (应该是一个 `Promise` 对象)
	component: import('@/components/Echart/MonthlyAddition.vue'),
  // 展示加载时组件的延时时间。默认值是 200 (毫秒
	delay: 900, // 延迟加载,默认200毫秒
  // 加载失败时使用的组件
	error: Hebberror, // 加载失败显示组件
  // 异步组件加载时使用的组件
	loading: Hebberror, // 加载时使用组件
  // 如果提供了超时时间且组件加载也超时了,
  // 则使用加载失败时使用的组件。默认值是:`Infinity`
	timeout: 2000, // 超时时间,默认 Infinity
});

JSX

export default {
	props: {
		nowTime: {
			type: String,
			default: '',
		},
	},
	render() {
		return (
			<time class="head__time" datetime={this.nowTime}>
				{this.nowTime}
			</time>
		);
	},
};

ps: На самом деле, здесь показан некоторый мой собственный проектный опыт, в основном высокоуровневые компоненты.

Тема расширения компонента высокого уровня

Из высокоуровневых компонентов предыдущего вопроса расширен таймер Promise plus, чтобы определить, отображать ли ненормальные компоненты в соответствии со статусом.

/**
 * 
 * @param {Object} falg 标识
 * @param {Object} date 数据
 * @returns 
 */
function componentsShow(falg = true,date) {
  let componentsTime = null
    return new Promise(function (resolve,reject) {
      if (falg) {
        componentsTime = setTimeout(function () {
          resolve()
        },200)
      }else{
        clearTimeout(componentsTime)
        if (date) {
          resolve()
        }else{
          reject()
        }
      }

  })
}

Оптимизация проекта

На самом деле это вопрос, который дает оценку. Я по-прежнему хорошо разбираюсь в оптимизации. В одно мгновение я чувствую

  • ленивая загрузка
  • CDN
  • оптимизация файлов
  • Оптимизация веб-пакета

Участие в инкапсуляции шаблона компании в проекте

Пакет мульти-окружения, плагин Ecahrts, axios, публичный стиль Css, Esilit,

psВот грубый взгляд на мой проект, и я также расскажу о том, что я сделал сам.

Webpack использовал эти загрузчики

  • babel-loader → escape-код
  • css-loader → загружать css, поддерживать импорт файлов
  • style-loader → внедрить код css в javaScript,
  • scss-загрузчик → экранировать scss

ps: Я проверил свое понимание Webpack здесь. На самом деле, я не ответил на многое. Я чувствую, что мой ответ не особенно хорош.

Суммировать

Оценка меня интервьюером - это принцип или немного, проектный опыт в порядке,

Из ее слов выяснилось, что я все-таки не подхожу.В принципе, после вопроса третьего уровня обе стороны негласно знали результат собеседования.

Благодаря этому интервью я узнал о своих собственных недостатках.Во время интервью я не уводил интервьюера в место, которое я считаю более теоретическим.В принципе, я буду следить за интервью, чтобы дополнить принципы и попытаться поговорить с этой барышней , быть коллегой,

Глядя на похорошевшую женщину-интервьюера, у меня не хватило смелости попросить WeChat или что-то в этом роде, очень жаль, надеюсь, она все еще будет там через полгода.