该文章仅用来记录博主求职过程当中遇到的一些常见的面试题,供本身学习,请不当心看到该文章的童鞋自行参考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
复制代码
这里有坑,请注意:
必定要让这些难题出如今你最擅长的领域,这样才会在接下来的延伸问题中不至于被大几率问卡壳