該文章僅用來記錄博主求職過程當中遇到的一些常見的面試題,供本身學習,請不當心看到該文章的童鞋自行參考javascript
字符 | 含義 |
---|---|
& | & |
> | > |
< | < |
  | 空格 |
<div style="height: 1px;background: #000;"></div>
複製代碼
關於彈性佈局flex的學習css
<div class="container">
<div class="left"></div>
<div class="middle"></div>
<div class="right"></div>
</div>
.container{
padding: 0 30px;
display: flex;
}
.left{
width: 100px;
order: 1;
}
.middel{
height: 500px;
order: 2;
width: 100;
}
.right{
width: 100px;
order: 3;
}
複製代碼
// 向上三角形, 不帶邊
{
width: 0;
height: 0;
border-bottom: 100px solid green;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
}
複製代碼
查看更多css畫三角形html
1.已知元素寬高前端
{
position: absolute;
top: 50%;
left: 50%;
margin-left: -100px; // 寬度的一半
margin-top: -100px; // 高度的一半
width: 200px;
height: 200px;
}
2.不知道元素寬高
{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
或者
{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
複製代碼
大部分都是程序輸出、寫一段js代碼實現一個簡單的功能vue
在紙上手寫代碼仍是和在編輯器裏寫代碼有很大的區別的,寫過的童鞋應該都深有體會html5
// 方法1,拆分url
function getParams(url) {
if (url.length <= 1) {
return;
}
url = url.replace('?', '');
let arr = url.split('&');
let key, val, key_val = [], obj = {};
for (let i = 0; i < arr.length; i++) {
key_val = arr[i].split('=');
key = key_val[0];
val = key_val[1];
obj[key] = val;
}
return obj;
}
getParams(location.search);
// 方法2,正則
// 第一種是必須掌握的,不少面試官也會問,使用正則的方式怎麼寫,各位看官,下面請
function getParams(url){
if (url.length <= 1) {
return;
}
url = url.replace('?', '');
let reg = /(\w+)=(\w+)/ig;
let obj = {};
url.replace(reg, (a, b, c) => {
obj[b] = c;
});
return obj;
}
console.log(getParams(location.search));
複製代碼
有關於正則和repalce的學習,須要紮實的正則基礎java
該正則匹配不到
a=1.0
等參數中帶有. * _
等特殊符號的參數webpack
網上這樣的一搜一大把,不要在須要用到的時候,直接去網上直接
ctrl + c
,ctrl + v
,等下次用的時候再去尋找,也不要死記硬背代碼,要明白原理,這樣手寫的時候,就手到擒來了css3
function mpsort(arr){
for(let i = 1;i < arr.length;i++){
for (let j = 0;j < arr.length - i;j++){
if(arr[j] > arr[j+1]){
let temp;
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
複製代碼
給定一個顏色紙字符串,轉成對應的rgb,測試用例:#223344 輸出:rgb(34,51,68)git
parseInt()
: 第二個參數是以n進制解析當前字符串而後轉爲10進制,而不是要轉爲幾進制,第二個參數就爲幾
function formatColor(str){
str = str.replace('#', "");
let r, g, b;
if(str.length === 3){
// #223344 <=> #234
r = str.slice(0, 1);
g = str.slice(1, 2);
b = str.slice(2, 3);
r += r;
g += g;
b += b;
}else {
r = str.slice(0, 2);
g = str.slice(2, 4);
b = str.slice(4, 6);
}
return `rgb(${parseInt(r, 16)}, ${parseInt(g, 16)}, ${parseInt(b, 16)})`;
}
複製代碼
關於
slice()
,以前一直記得是第二個參數爲個數,應該爲結束元素的下角標
給定一個有序數組和一個值,查找該值的插入索引號,若是已經存在,則返回該索引號,要求使用 二分法,不能使用系統函數,注意代碼邊界和效率
測試用例: [1,3,5,6,8] 5 => 2 ; [1,3,5,6,8] 7 => 4
function findStr(){
}
複製代碼
test(var1, var2, var3)的調用改爲:
func.apply(this, [var1, var2, var3]);
func.call(this, var1, var2, var3);
複製代碼
function connectUrl(url, key, value){
}
複製代碼
function randomStr(len){
}
複製代碼
var mObj = {
foo: 2,
test: function(){
var foo = 3;
var self = this;
console.log(this.foo); // 2
console.log(self.foo); // 2
(function(){
foo: 4;
// 自執行函數中this指向window
console.log(this.foo); // undefined
console.log(self.foo); // 2
}());
}
}
mObj.test();
複製代碼
a.參數n是整數
b.返回一個數組
c.n個隨機不重複的整數
d.整數範圍11~41
function randomInt(n){
}
複製代碼
var funcs = [];
for(var i = 0;i < 10;i++){
funcs.push(function (){
console.info(i);
})
}
funcs.forEach(function(func){
func();
});
複製代碼
如何輸出0~10?使用let定義i,爲何能夠
// title 01
function fun(n, o){
console.log(o);
return {
fun: function(m){
return fun(m, n);
}
}
}
var a = fun(0); // undefined
a.fun(1); // 0
a.fun(2); // 0
a.fun(3); // 0
// title 02
var a = 100;
var b = a;
a = 200;
var c = a+++b;
console.log(b);
console.log(c);
// title 03
function sidEffecting(ary){
ary[0] = ary[2];
}
function bar(a, b, c=4){
c = 5;
sidEffecting(arguments);
return a + b + c;
}
console.log(bar(2, 2, 2)); // 12
複製代碼
var data = {a: 1,b: 2,c: 3,d: 4,e: 1,f: 4}
// 利用Set的特性
function objToarr(obj){
let arr = [];
for (let key in obj){
arr.push(key);
arr.push(obj[key]);
}
return Array.from(new Set(arr));
}
複製代碼
git remote -v
複製代碼
暫無
複製代碼
v-if
和v-show
的區別var x = [1, 2, 3, 4, 5];
var [y, z] = x;
console.log(y, z); // 1, 2
複製代碼
這裏有坑,請注意:
必定要讓這些難題出如今你最擅長的領域,這樣纔會在接下來的延伸問題中不至於被大機率問卡殼