предисловие
Продолжение предыдущей статьиЗапись предварительных письменных тестовых вопросов и вопросов интервью (Часть 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:
-
В компоненте vue диспетчеризация используется для запуска действий по отправке операции изменения данных.
-
Затем инициируйте мутации для изменения данных посредством фиксации действий.
-
Когда мутации получают запрос на фиксацию, они автоматически изменяют данные в состоянии (состояние данных в центре обработки данных) через Mutate.
-
Наконец, хранилище запускает обновление для каждого вызывающего его компонента.
Роль Vuex: централизованное управление состоянием данных проекта, проблемы передачи данных сложных компонентов (таких как одноуровневые компоненты, отдаленные относительные компоненты).
-
-
рендеринг на стороне сервера в vue
-
Двусторонняя привязка vue
两个问题都不会...
закончить смотреть? Лайк и поддержка, здесь есть еще одна статья, можете глянуть, когда будет время:Запись предварительных письменных тестовых вопросов и вопросов интервью (Часть 1).
резюме
Дамы и господа, вы также можете найти свои слабые места при поиске работы, а затем усилить их.Вас оскорбляют определенные проблемы в течение дня, а затем ночью, вы должны прояснить эти проблемы, и не быть тем же каждый раз.Если проблемой злоупотреблять, это не будет хорошо.
Я надеюсь, что друзья, которые прочитали это, могут поставить лайк или подписаться на меня.Ваша поддержка - самая большая поддержка для меня.
наконец: Если вам нужно перепечатать, пожалуйста, поставьте ссылку на оригинальный текст и подпишите его. Кодировать не просто,благодарныйслужба поддержки! Я пишу статью с менталитетом биржевых записей, и не хочу ее рвать, но приветствую подсказки.
личный блог and Персональная домашняя страница Nuggets
Выше 2018.4.7