Предварительные письменные вопросы теста и запись вопросов интервью (ниже)

внешний интерфейс Vue.js CSS опрос

предисловие

Продолжение предыдущей статьиЗапись предварительных письменных тестовых вопросов и вопросов интервью (Часть 1). Пользуясь праздником Цинмин, я также напишу остальную часть последней части, потому что я был занят в последнее время, и эта статья долго задерживалась. Серебряный 4 только начался. Должны быть некоторые друзья, ищущие работу. Еще не поздно. Я надеюсь, что эта статья поможет этим друзьям.

Личный блог, чтобы узнать:obkoro1.com


Основное содержание этой статьи следующее:

  • Вопросы для интервью QA
  • Вопросы для интервью
  • Vue серия вопросов

Вопросы для интервью QA

В: Вы понимаете объявления переменных let и const в ES6? В чем разница с ES5 var?

let

  • В той же области видимости: var может многократно объявлять переменные,let не может повторно объявлять одну и ту же переменную.

    es5 — это область действия функции, то есть функция — это только область действия, es6 — область видимости на уровне блока (фигурные скобки '{это область видимости}'), например: if, ибо фигурные скобки — это все область видимости.

  • var имеет подъем переменной и может использоваться перед объявлением переменной,В let нет продвижения переменной, и будет сообщено об ошибке, если она будет использована перед переменной.

  • пусть есть временная мертвая зона,Въездной документ es6 Руан ИфэнОбъяснение следующее:

    引用阮一峰大佬解释以及栗子

const

  • Многие функции const такие же, как и у let: неповторяемое объявление, отсутствие продвижения переменных, временная мертвая зона и область действия на уровне блоков.

  • Есть также некоторые отличия от команды let: константе должно быть присвоено значение при ее объявлении, иначе будет сообщено об ошибке. Константа, объявленная const, не может быть изменена.

    Константы здесь относятся к: числовым значениям, строкам и логическим значениям. Для ссылочных типов (массивы и объекты) const может гарантировать только фиксирование указателя. Что касается того, есть ли какие-либо изменения в массиве и объекте, это что-то что const не может контролировать.


Q: Приоритет CSS.

Этот тип также обычно появляется в письменных тестовых вопросах, и конкретные вопросы не ясны.

权重优先级:
!important>style(1000)>id(100)>class(10)
!important是优先级最高的不管权重多少,始终采取important。
如果两个选择器作用在同一元素上,计算权重值,相加。权重高者属性生效。
(笔试题就出现过层叠的class id选择器,作用在同一个标签上,然后问最后哪个css属性生效)

Если вам интересно, вы можете прочитать, что я написалВы действительно достаточно знаете о весах CSS?


Q: Методы экземпляра и наследование прототипов объектов функций наследования.

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

function father(name){//父函数
  this.name=name|'koro1';
  this.code=function(){ //父类的实例方法
    console.log(this.name+'coding');
  }
};
father.prototype.add=function(food){ //父类的原型方法
  console.log(this.name+'eat'+food);
}
function son(name){ //子函数
  father.call(this); //将this绑定到子类,绑定父类的实例方法code(原型方法add还未绑定)
  this.name=name|| 'OBKoro1';
}
son.prototype = new father();//把父类的原型方法绑定到子类,实现继承
var sonVar= new son('faker');//这里也可以传参name
son.prototype.constructor = son;//修复构造函数的指向
console.log(sonVar.code());
console.log(sonVar.add());//可以调用父类的方法了

Вопрос: пройтиreduceфункция для реализации простого суммирования массивов, пример массива[3,4,8,0,9];

Это простой письменный тестовый вопрос.Ниже написаны два метода, один из которых является общим методом обхода, а другой - использоватьeval()метод.

    let reduce=(arr)=>{ //第一种常规遍历。
        let num=0; 
        for(let [index,value] of arr.entries()){
            num+=value;
        }
        return num;
    }
    let reduce=(arr)=>eval(arr.join("+")); //第二种 
    //join() 方法把数组元素放入字符串 上面的栗子: arr.join("+")得到字符串:'3+4+8+0+9';
    // eval() 函数计算字符串 ,并执行其中的的 JavaScript 代码
    //经提醒:原来有一个reduce()数组求和的方法,把这个方法加上去
    let result=[3,4,8,0,9].reduce((total,value)=>{ //这两个参数是默认参数不用设置的
		return total+value
	});

В: В чем разница между call() и apply()?

Первый параметр call() и apply() будет использоваться как значение this в функции, которая используется для изменения указателя this функции. Разница между вызовом и применением заключается в том, что метод call() принимает параметры, разделенные запятыми, в качестве следующих параметров, а apply() принимает массив параметров в качестве следующих параметров.

从别的博客那边看到一个简单的记忆方法:从call中的 C 联想到逗号分隔(comma-separated),从apply中的 A 联想到数组(array)。

В: Каковы значения позиции? каков эффект?

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

В: Как реализовать замыкание? Каковы функции замыканий?

Когда функция вложена внутрь другой функции, областью действия вложенной функции является замыкание.

Роль: создавать частные переменные, уменьшать глобальные переменные и предотвращать загрязнение имен переменных. Переменными во внешней области можно манипулировать, переменные не будут повторно использоваться браузером, а значение переменной будет сохранено.


В: Пожалуйста, из2017-05-15T09:10:23 Europe/ParisИзвлеките результаты["2017","05","15","09","10","23"]

Это письменный тестовый вопрос. Он связан с регулярностью. Вы можете узнать, чего они хотят, посмотрев на содержание. Чтобы извлечь все числа, вы можете написать регулярное выражение, которое получает только числа.

let str = '2017-05-15T09:10:23 Europe/Paris';
let arr = str.match(  /\d{1,}/g); 
//match会返回一个数组,
// \d 查找数字  
// {1,} 表示至少重复几次 
// /g表示全局搜索

В: Пожалуйста, опишитеPromiseСценарии использования Promise, проблема, которую он решает, и текущее решение для асинхронных операций.

Это письменный тестовый вопрос, и это мой ответ на данный момент.

Сценарии использования промисов: Ajax-запрос, функция обратного вызова, оценка сложной операции.

Promise родился в ES6 для решения проблемы асинхронного программирования.

Решение для асинхронной работы:Promise,Generator, таймер (не знаю, считается ли) и ES7async


Несколько небольших вопросов из интервью:

Здесь в основном небольшие проблемы, возникающие на собеседовании.Вы можете взглянуть на то, что можно объяснить в одном-двух предложениях.

продвижение переменной параметра функции

    function aa(val){  //函数参数的变量也会提升
    console.log(val);//'函数传参'
     var val='变量声明';
     console.log(val);//'变量声明'
}
    aa('函数传参');  

Какие методы есть у js для определения объектов?

    var obj=new Object();//new 一个对象
    var obj={name:"OBKoro1"} //对象字面量写法

Проблема операции преобразования строкового числа

      console.log(1+'2'+'2'); //122  
      console.log(+'1'+-'2'+'2');//-12
      console.log('A'+'B'+'2');//AB2
      console.log('A'-'B'+2);//NaN
      //两个都是数字才能相加,否则都是以字符串形式拼接。
      //相减只能两个都是数字,字符串也会转成数字,如果不能转换,值就为NaN

В чем разница между split() и join()?

    split()是将字符分割成一个数组,join()将数组转为一个字符串

Что делает pop() push() unshift() shift()?

    pop()删除并返回数组的最后一个元素。
    push()可向数组的末尾添加一个或多个元素,并返回新的长度。
    unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
    shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

Проверить, является ли число целым

    function isIntefer(x){
        return x%1===0; //返回布尔
    }

Как преобразовать строки в числа, например:12.3b?

    var num=parseFloat('12.3b')

Что такое маржинальное слияние?

Когда встречаются два вертикальных поля, они образуют единое поле, а высота объединенного поля равна большей из высот двух объединенных полей.

Q: Каковы ваши наиболее часто используемые командные строки git/svn? Что такое встроенные элементы и что такое блочные элементы? Какие селекторы есть в css?

    自行谷歌,类似的还有css3新增的属性,H5新增的属性之类的,有空的话,稍微背一背,都碰到过。

Серия вопросов Vue:

Меня редко спрашивали о фреймворке в процессе собеседования, и многие из них встречались в письменных тестовых вопросах.Представляя свой проект, я иногда объяснял, какая технология Vue здесь использовалась.В это время интервьюер может, если вы спрашивайте у Vue, это не будет слишком глубоко в общем.

Ниже приведены реальные вопросы письменного теста:

  • Как vue-router определяет динамическую маршрутизацию? Как получить переданные динамические параметры?

      定义:path:'a/:value' 获取:this.$route.params.value。
    
  • Назовите как минимум 4 директивы Vue и их использование.документация vue показывает 13 директив

  • Как vue связывает события.@click="事件名"

  • Каковы сходства и различия между директивами v-show и v-if?

      1.v-if是删除/添加Dom标签,不占据文档位置,v-show切换css的display属性,控制显示隐藏,还会占据文档位置。
      2.v-if会删除dom标签所以v-if性能消耗会高一些,需要频繁切换的话,使用v-show会好一点。
    
  • <keep-alive></keep-alice>Какова роль?

      `<keep-alive>`是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。
    
  • Перечислите три часто используемые функции хука жизненного цикла в Vue?Vue-документация

  • Запишите коды команд для упаковки веб-пакетов на сервер и локальную предварительную версию соответственно:

      npm run build npm run dev  我都觉得很弱智。。
    
  • Как компоненты Vue «родитель-потомок» передают параметры?

      父组件传参给子组件通过props,子组件传参给父组件是用事件传递的。细节见文档。
    
  • Для чего используется v-модель и как ее использовать.

      用来为input输入框或者单选框、select选择框这类的东西做双向绑定的。
      使用栗子:<input v-model="inputData"/>
    
  • Рабочий процесс Vuex и что он делает, сценарии использования.

    Рабочий процесс vuex:

    vuex的工作流程

    1. В компоненте vue диспетчеризация используется для запуска действий по отправке операции изменения данных.

    2. Затем инициируйте мутации для изменения данных посредством фиксации действий.

    3. Когда мутации получают запрос на фиксацию, они автоматически изменяют данные в состоянии (состояние данных в центре обработки данных) через Mutate.

    4. Наконец, хранилище запускает обновление для каждого вызывающего его компонента.

    Роль Vuex: централизованное управление состоянием данных проекта, проблемы передачи данных сложных компонентов (таких как одноуровневые компоненты, отдаленные относительные компоненты).

  • рендеринг на стороне сервера в vue

  • Двусторонняя привязка vue

      两个问题都不会...
    

закончить смотреть? Лайк и поддержка, здесь есть еще одна статья, можете глянуть, когда будет время:Запись предварительных письменных тестовых вопросов и вопросов интервью (Часть 1).

резюме

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

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

наконец: Если вам нужно перепечатать, пожалуйста, поставьте ссылку на оригинальный текст и подпишите его. Кодировать не просто,благодарныйслужба поддержки! Я пишу статью с менталитетом биржевых записей, и не хочу ее рвать, но приветствую подсказки.

личный блог and Персональная домашняя страница Nuggets

Выше 2018.4.7

Ссылка на ссылку:

команды let и const