前端面试题摘录

2018-05-15  本文已影响0人  Cherry9507

Q:什么情况下会碰到跨域问题?有哪些解决方法?

Q:如何判断一个变量是对象还是数组?

判断数组和对象分别都有好几种方法,其中用Object.prototype.toString.call()兼容性最好。

function isObjArr(value){
     if (Object.prototype.toString.call(value) === "[object Array]") {
            console.log('value是数组');
       }else if(Object.prototype.toString.call(value)==='[object Object]'){//这个方法兼容性好一点
            console.log('value是对象');
      }else{
          console.log('value不是数组也不是对象')
      }
}

ps:千万不能使用typeof来判断对象和数组,因为这两种类型都会返回"object"。

Q:html中title属性和alt属性的区别?

1.<img src="#" alt="alt信息" />
//1.当图片不输出信息的时候,会显示alt信息 鼠标放上去没有信息,当图片正常读取,不会出现alt信息
2.<img src="#" alt="alt信息" title="title信息" />
// 2.当图片不输出信息的时候,会显示alt信息 鼠标放上去会出现title信息
//当图片正常输出的时候,不会出现alt信息,鼠标放上去会出现title信息

Q:标准盒子模型和IE盒子模型的区别?

标准盒子模型的高度 = content;
IE盒子模型的高度 = content+padding + border;

Q:翻转一个字符串

var str = "hello zaron";
var rev = str.split('').reverse().join('');
console.log(rev);//noraz olleh

Q:垂直居中有哪些方法?

Q:如何对一个数组去重?

let unique= [...new Set(array)];
//es6 Set数据结构类似于数组,成员值是唯一的,有重复的值会自动去重。
//Set内部使用===来判断是否相等,类似'1'和1会两个都保存,NaN和NaN只会保存一个
let a = ['1','2','3',1,NaN,NaN,undefined,undefined,null,null, 'a','b','b'];
    let unique= arr =>{
         let newA=[];
        arr.forEach(key => {
           if( newA.indexOf(key)<0 ){ //遍历newA是否存在key,如果存在key会大于0就跳过push的那一步
             newA.push(key);
           }
        });
        return newA;
    }
    console.log(unique(a)) ;//["1", "2", "3", 1, NaN, NaN, undefined, null, "a", "b"]

indexOf()这个方法不能区分NaN


作者:OBKoro1
链接:https://juejin.im/post/5aad40e4f265da237f1e12ed
来源:掘金

上一篇下一篇

猜你喜欢

热点阅读