Web前端测试题(社招)

1.盒子模型,块级元素和和行内元素特性和区别
2.CSS实现垂直水平居中
3.常用的css hack方法
4.position的值,relative和absolute分别是相对于谁进行定位的?
5.如何解决跨域问题
6.清除浮动的方式和各自的优劣
7.求100之内的素数(大于1的自然数中,只能被1和它本身整除的数)
8.请写一个函数,实现以下功能,字符串"open_door"转换成"OpenDoor" / “make_by_id"转换成"MakeById”


9.找出字符串"aabckaas"中出现最多次数的字母

var str="aabckaas";
var arr=[];
for(var i=0; i<str.length;i++){
	var char=str[i];
	//console.log(char);
	if(arr[char]===undefined){
	arr[char]=1;
	}else{
	arr[char]++
	}
}
console.log(arr)
var max,count=0;
for(var key in arr){
	if(arr[key]>count){
		count=arr[key];
		max=key;
	}
}
console.log(`出现最多的字母是:${max},出现的次数是:${count}`)

10.给定一个数,判断是否是回文数,这个数顺读和逆读都是一样的.例如:121,1221是回文数,123,1231不是回文数

function hw(num){
	var str=num.toString();
	for(var i=0;i<str.length/2;i++){
		//通过判断对称位的值是否一致,来return 是不是回文
		if(str[i] !== str[str.length-1-i]){
			return "不是回文";
		}
	}return "是回文";
}
console.log(hw(1221221))

11.CSS选择器以及优先级计算
12.下面代码打印的值是:

var o={
	a:10,
	b:{
		fn:function (){
			console.log(this.a) // this=>b b是一个对象 this.a => obj.a 强行访问一个对象中不存在的值将会返回undefined
		}
	}
}
o.b.fn();

13.把下面数组
[
[1,2],
[3,4]
[
[5,6],
[7,8]
],
[
[
[9,10],
[11,12]
]
]

]
处理成
[
[1,2],
[3,4],
[5,6],
[7,8],
[9,10],
[11,12]
]

//处理思路:先进行降维操作,在进行升维操作
var arr=[
	[1,2],
	[3,4],
	[
		[5,6],
		[7,8],
	],
	[
		[
			[9,10],
			[11,12],
		],
	]

];
//console.log(arr.length);
//var arr2=[].concat(...arr);
//var arr3=[].concat(...arr2);
//var arr4=[].concat(...arr3);
//console.log(arr4)  
//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]  
function More(arr) {
    for (let i = 0; i < arr.length; i++) {
      if (Array.isArray(arr[i])) {
         let sj = arr[i]
         //[1,2]
         //[3,4]
         //[[5,6],[7,8]]
         //[[[9,10],[11,12]]]
       arr.splice(i, 1, ...sj)
       //
       i--
}
}
 return arr 
}

console.log(More(arr));
//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
function oneToTwo(old) {
    var array = [];
    //首先创建一个大的空数组 [                              ]
    for (var i = 0; i < Math.ceil(old.length / 2); i++) {
       array[i] = [];
       //    0 下标为0的位置在建一个小的空数组
       //    [ []                           ]
       //    1 下标为1的位置再建一个小的空数组
       //    [ [] ,[]                       ]
        //   2 下标为2的位置在建一个小的空数组
       //    [ [],[],[]                     ]
       //    3 下标为3的位置再建一个小的空数组
       //    [ [] ,[] ,[],[]                ]
        //   4 下标为4的位置在建一个小的空数组
       //    [ [] ,[] ,[],[] ,[]            ]
       //    5 下标为5的位置再建一个小的空数组
       //    [[] ,[] ,[],[] ,[],[]          ]
       array[i].push(old[i * 2]);
	   array[i].push(old[i * 2 + 1]);
	    //第一次把旧数组里面的下标为0 下标为1 的值放进去
	    //第二次把旧数组里面的下标为2 下标为3 的值放进去
	     //第三次把旧数组里面的下标为4 下标为5 的值放进去
	    //第四次把旧数组里面的下标为6 下标为7 的值放进去
	     //第五次把旧数组里面的下标为8 下标为9 的值放进去
	    //第六次把旧数组里面的下标为10 下标为11 的值放进去
    }
    return array;
  }

 console.log(oneToTwo(arr))
//var result = arr.reduce((pre,next,idx)=>{
   // if(idx%2){
    //   pre[parseInt(idx/2,10)].push(next);
  //   }else{
   //     pre.push([next]);
   //  }
     //  return pre
//},[]);
//console.log(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值