集结前端部分面试题及答案

.col-xs-* 超小屏幕如手机 (<768px)时使用;
.col-sm-* 小屏幕如平板 (768px ≤ 宽度 <992px)时使用;
.col-md-* 中等屏幕如普通显示器 (992px ≤ 宽度 < 1200px)时使用;
.col-lg-* 大屏幕如大显示器 (≥1200px)时使用。



//获取字符串是哪一个字符出现的字数最多
$str = "sdfhletlsflahlaasfsfjgfd;lsje;r;wj;ralajfe149253573";
//方法一
$arr = str_split($str);
//字符串分隔到数组中
$arr = array_count_values($arr);
//用于统计数组中所有值出现的次数,返回一个数组
//键名为原数组的键值,键值为出数
arsort($arr);//按键值倒序
print_r($arr);



一、JavaScript中如何检测一个变量是一个String类型?请写出函数实现
//方法一
function isString(obj){
    return typeof(obj) === "string"? true: false;
}

//方法二
function isString(obj){
    return obj.constructor === String? true: false;
}



二、请用js去除字符串空格?

方法一:使用replace正则匹配的方法
去除所有空格: str = str.replace(/\s*/g,””);
去除两头空格: str = str.replace(/^\s|\s$/g,””);
去除左空格: str = str.replace( /^\s*/, “”);
去除右空格: str = str.replace(/(\s*$)/g, “”);

str为要去除空格的字符串,实例如下:
var str = " 23 23 ";
var str2 = str.replace(/\s*/g,"");
console.log(str2); // 2323


方法二:使用str.trim()方法

str.trim()局限性:无法去除中间的空格,实例如下:

var str = "   xiao  ming   ";
var str2 = str.trim();
console.log(str2);   //xiao  ming




三、你如何获取浏览器URL中查询字符串中的参数?
测试地址为:http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23
实例如下:
function showWindowHref(){
    var sHref = window.location.href;
    var args = sHref.split('?');
    if(args[0] == sHref){
        return "";
    }
    var arr = args[1].split('&');
    var obj = {};
    for(var i = 0;i< arr.length;i++){
        var arg = arr[i].split('=');
        obj[arg[0]] = arg[1];
    }
    return obj;
}
var href = showWindowHref(); // obj
console.log(href['name']); // xiaoming


四、什么是跨域?

由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。存在跨域的情况:
网络协议不同,如http协议访问https协议。
端口不同,如80端口访问8080端口。
域名不同,如qianduanblog.com访问baidu.com。
子域名不同,如abc.qianduanblog.com访问def.qianduanblog.com。
域名和域名对应ip,如www.a.com访问20.205.28.90.


五、判断一个字符串中出现次数最多的字符,统计这个次数
var str = 'asdfssaaasasasasaa';
var json = {};
for (var i = 0; i < str.length; i++) {
    if(!json[str.charAt(i)]){
       json[str.charAt(i)] = 1;
    }else{
       json[str.charAt(i)]++;
    }
};
var iMax = 0;
var iIndex = '';
for(var i in json){
    if(json[i]>iMax){
         iMax = json[i];
         iIndex = i;
    }
}        
console.log('出现次数最多的是:'+iIndex+'出现'+iMax+'次');



六,数组去重
var arr = [2,3,4,4,5,2,3,6],
temp = [];
for(var i = 0;i    if(temp.indexOf(arr[i]) < 0){
        temp.push(arr[i]);
    }
}
console.log(temp); //[ 2, 3, 4, 5, 6 ]

//求最大数
var arr = [3,43,23,45,65,90];
var max = Math.max.apply(null,arr);
console.log(max);  // 90

//求最小数
var arr = [3,43,23,45,65,90];
var min = Math.min.apply(null,arr);
console.log(min);  //3


七、数组排序 从小到大
var arr = [3,43,23,45,65,90];
function sortnum(a,b){
  return a-b;
}
arr = arr.sort(sortnum);
console.log(arr);  //[ 3, 23, 43, 45, 65, 90 ]


八、冒泡排序:即实现数组由小到大进行排序
var arr = [3, 11, 49, 6, 50, 17, 29];
function bubbleSort(arr) {
    var len = arr.length;
    for (var i = len; i >= 2; --i){
        for (var j = 0; j < i - 1; j++) {
            if (arr[j + 1] < arr[j]) {
                var temp;
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    return arr;
}

//小到大进行排序
var arr2 = bubbleSort(arr);
console.log(arr2);  // [3, 6, 11, 17, 29, 49, 50]


//大到小进行排序
var arr3 = arr2.reverse();
console.log(arr3);  // [50, 49, 29, 17, 11, 6, 3]


九、数组的翻转 (非reverse())
方法一
    var arr = [1,2,3,4];
    var arr2 = [];
    while(arr.length){
        var num = arr.pop(); //删除数组最后一个元素并返回被删除的元素
        arr2.push(num);
    }
    console.log(arr2);  // [4, 3, 2, 1]


方法二
    var arr = [1,2,3,4];
    var arr2 = [];
    while(arr.length){
        var num = arr.shift(); //删除数组第一个元素并返回被删除的元素
        arr2.unshift(num);
    }
    console.log(arr2);

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

表情