js面试题总结(未完待续。。。)

一.找出重复最多的字符

let str = 'asss23sjdssskssa7lsssdkjsssdss';
			const arr = str.split("") // 把字符串转换为数组
			const str2 = arr.sort().join("") // 首先进行排序,这样结果会把相同的字符放在一起,然后再转换为字符串
			let value = "";
			let index = 0;
			// console.log(str2)
			str2.replace(/(\w)\1*/g,function($0,$1){
				// console.log($0,$1)
				if (index < $0.length) {
					index = $0.length;   // index是出现次数
					value = $1;			 // value是对应字符
				}
			})
			console.log(str)
			console.log(`最多的字符: ${value},重复的次数:${index}`)

二.js数组去重的几个方法

1. ES6数组去重
拓展运算符(...)内部使用for...of循环,
Set数据结构,它类似于数组,其成员的值都是唯一的.
var arr = [3,5,6,5,4,6,9];
console.log(...new Set(arr));
//输出结果:[3,5,6,4,9]

2.利用Array.from将Set结构转换成数组,还能将伪数组转化为数组
var arr = [2,5,6,5,4,6,9];
console.log(Array.from(new Set(arr)));
//输出结果:[2, 5, 6, 4, 9]
3. 利用 arr.indexOf(a) 的方法解决数组去重,判断 a 值是否在arr中存在,
  如果存在就返回所在的下标,如果不存在就返回 -1

var arr = [2,3,4,5,2,5,6]
  function noRepeat (arr) {
      var newArr = []
      for(var i in arr){
        if(newArr.indexOf(arr[i]) == -1){
          newArr.push(arr[i])
        }
     }
     return newArr;
  }
console.log(noRepeat(arr));
//输出结果:[2, 3, 4, 5, 6]
4..使用 filter
	unique_array = arr.filter(function(elem, index, self) {
     return index == self.indexOf(elem);
    })

三.把手机号的中间4位换成*

//方法一、利用数组splice,split,join方法
var tel = 18810399133;
tel = "" + tel;
var ary = tel.split("");
ary.splice(3,4,"****");
var tel1=ary.join("");
console.log(tel1);
//方法二、利用字符串的substr方法
var tel = 18810399133;
tel = "" + tel;
var tel1 = tel.substr(0,3) + "****" + tel.substr(7)
console.log(tel1);
//方法三、利用字符串substring方法
var tel = 18810399133;
tel = "" + tel;
var tel1 =tel.replace(tel.substring(3,7), "****")
console.log(tel1);
//方法四、利用正则
var tel = 18810399133;
tel = "" + tel;
var reg=/(\d{3})\d{4}(\d{4})/;
var tel1 = tel.replace(reg, "$1****$2")
console.log(tel1);

解释一下什么是 promise ?

promise是js中的一个对象,用于生成可能在将来产生结果的值。值可以是已解析的值,也可以是说明为什么未解析该值的原因。
promise 可以有三种状态:

  • pending:初始状态,既不是成功也不是失败
  • fulfilled:意味着操作完全成功
  • rejected:意味着操作失败

一个等待状态的promise对象能够成功后返回一个值,也能失败后带回一个错误
当这两种情况发生的时候,处理函数会排队执行通过then方法会被调用

常用的跨域技术主要有如下几种:

https://juejin.im/post/5dc301a76fb9a04a7b29cdc3

JSONP跨域
iframe+domain跨域
nginx反向代理跨域
cors跨域
postMessage跨域

发布了54 篇原创文章 · 获赞 21 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_42816550/article/details/98727593
今日推荐