美文网首页
js常见面试题

js常见面试题

作者: 五四青年_4e7d | 来源:发表于2020-02-13 09:28 被阅读0次

instanceof的用法:

// 判断是不是一个数组对象2种方法:
// instanceof判断是不是一个数组对象 console.log(arr   instanceof  Array)
 console.log(Aaary.isAaary(arr))

promise链式编程:

//不了解promise可以先去看看,了解后再来相信大家读能看的懂
function Promise1(resolve, reject) {
    setTimeout(function() {
        resolve('1');
    },5000);
}

function Promise2(resolve, reject) {
    setTimeout(function() {
        resolve('2');
    },5000);
}

function Promise3(resolve) {
    setTimeout(function() {
        resolve('3');
    },5000);
}
new Promise(Promise1).then(function(val){
    console.log(val + 5);
    return new Promise(Promise2);
}).then(function(val){
    console.log(val);
    return  new Promise(Promise3);
}).then(function(val){
    console.log(val);
});

三元运算表达式在常见的循环中怎么使用:

var obj = [
    {"title":'222',"status":0},
    {"title":'111',"status":1}
]
for(var i = 0; i < obj.length;i++){
    // console.log(obj[i].status)
    var status = (obj[i].status === 0) ? '已完成' : '未完成'
    var str = ""
        str+=`<p>${status}</p>`
        console.log(str)
        $("#box").append(str)
        
}

switch常见的使用:

//onclick调用-switch判断:
const getText = (status)  =>{
    switch(status){
        case 1:
        $("body").css({'background':'red'})
        break;
        case 2:
        $("body").css({'background':'green'})
        break
        default:
        $("body").css({'background':'pink'})
        break

    }
}

使用闭包进行数据的获取和存储:

//闭包的作用是为了设置或者获取数据;这样写便于项目的维护和层级明确;
function  user(name){
  var age;
  return {
      getname:function(){
          return name
      },
      setname:function(newname){
          name = newname
      },
      getage:function(){
          return age
      },
      setage:function(newage){
          age = newage
      }
  }
}

var lk = user('李康')
lk.setage('22')
lk.setname('哇哈哈')
var name = lk.getname()
var age = lk.getage()
console.log(lk)
console.log(age)
console.log(name)

回调函数的简单使用:

//执行callback 并且把callback 拿过来

var a = [1,4,5,6,77,8,9,53,32,112]
var b = [232,4,522,6,77,8,9,53,32,112]
function each(arr,callback){
    for(var i = 0; i < arr.length;i++){
        var item = arr[i]
        callback(item)
    }
}
each(a,function(item){
    if(item>100){
        console.log(item)
    }
})

//简单的写法
each(b,master)
function master(item){
    if(item > 200){
        console.log(item)
    }
}

使用call apply bind封装方法:

function charst(url,number){
  var list  =   this.number
  var text  =   this.number
  var from  =   this.from
    $.ajax({
        type:"post",
        url: url,                       
        dataType:"jsonp",
        success:function(data){
            console.log(data.num[0].num)
            var numbers = data.num[0].num + list + text + from
            $("#box").append(numbers)
        }
    })
}
var a = {
    number:12,
    text:13
}
a.from = 123
charst.apply(a,["http://app.zsbtv.com.cn/daping/get_topic.php?model=1",22])

列举DOM元素的增删查改Api

//创建dom节点:
document.createElement()
//查找:
document.getElementById()
document.querySelector()
document.querySelectorAll()
//追加:
document.appendChild()
//删除:
document.removeChild()

BOM常见的对象:

location
location.href  //url地址
location.reload //刷新页面
location.search //查询字符串

navigator    //浏览器信息

history    //历史信息

screen  //屏幕的对象

常见的浏览器的兼容问题(简单说几个):

1.不同浏览器的标签默认的外补丁( margin )和内补丁(padding)不同
2.IE9一下浏览器不能使用opacity;
3.IE不支持addEventListener,IE用attachEvent;
4.获取事件源参数,主流浏览器event.target ;IE用evnent.srcElement
防止冒泡和捕获
w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true

实现多个标签页之间通信的几种方法:

websocket、setInterval+cookie、localstorage、SharedWorker和postMessage

解释ajax的工作原理:

var   xhr = new XMLHttpRequest   //创建异步对象 
xhr.open('请求方式','请求地址')    //设置请求行
xhr.send(null)    //发送请求

网站性能优化:

1.减少http请求次数;
2.压缩css,js文件;
3.不要滥用闭包;
4.使用图片懒加载;

es7的新特性:

//使用includes()验证数组中是否存在某个元素,这样更加直观简单:
let arr = ['react', 'angular', 'vue'];

if (arr.includes('react'))
{
    console.log('react存在');
}

es8新特性(padStart) (padEnd):

String.prototype.padStart( maxLength [ , fillString ] )
String.prototype.padEnd( maxLength [ , fillString ] )

相关文章

  • 2021 web高频面试题新人可看

    当日目标 1 常见面试题分布情况? 2 高频面试题 1 常见面试题分布情况 公司面试题一般分为js,vue,小程序...

  • WEB前端常见面试题及答案2.0

    第一版请见:WEB前端常见面试题及答案 1、js内存机制 JS内存空间分为栈(stack)、堆(heap)、池(一...

  • JS 函数的执行时机

    1. 常见的面试题代码解释 // 6 个 6JS是单线程运行的,setTimeout(code,millisec)...

  • js基础面试题

    面试题:延迟加载JS有哪些方式? 面试题:JS数据类型有哪些? 面试题:JS数据类型考题 考题一: 考题二: 面试...

  • js 面试题 函数声明 变量声明

    一个常见的函数声明和变量的面试题 题目一: 题目二: 想回答出来上面的面试题来,先要理解js中函数声明提升、变量声...

  • 前端vue面试题分享(附答案)

    本篇文章给大家分享一些常见的前端vue面试题,有一定的参考价值,希望对大家有所帮助。 vue面试题 vue.js的...

  • JS常见面试题

    1.基本数据类型有哪些? Undefined、Null、Boolean、Number、String 2.原型,原型...

  • js常见面试题

    总结了一些常见的js面试题,欢迎大家评论补充。!!!注意不要一味的死记硬背,掌握原理才是关键。 数组去重 var ...

  • 常见js笔试面试题

    1 js基础知识 1. javascript typeof返会的数据类型有哪些 object,string,und...

  • js常见原理面试题

    1. 实现一个call函数 2. 实现一个apply函数 3. 实现一个bind函数 4. instanceof原...

网友评论

      本文标题:js常见面试题

      本文链接:https://www.haomeiwen.com/subject/fwhkfhtx.html