js 基础 面试题分享! 干货!

闭包

今天面试遇到的一道题 拿出来和你们分享

var x = 1;
var y = 2;

methods(8);

alert(x + y); // 他会弹出什么

function methods(y) {
     x += 2;
     y += 3;
    alert(x + y); // 他会弹出什么
}

首先思考一下 出这道题的目的 自然面试官是要考你知识面了

包含内容(全部都是基础,当然这道题,我当时只答对了一半稍多一点点,有点尬)
  • 闭包 ,作用域 ,运算符, js线程

大神 勿喷 学习路上慢慢积累

答案在最下方

事件委托

描述场景: 一个列表 有n条数据 用事件委托实现删除

  • 下方是一个实现过程
funciton Contact() {
    this.init();
}

// 创建一个原型 函数表达式
Contact.prototype.init = function() {
        // 这里获取的是ul
    var lis = document.querySelector('#J_list');
    
    // addEventListener 绑定一个事件
    lis.addEventListener('click', function(e) {
        
        // e.target e.srcElement  关键字事件源
        // IE下,event对象有srcElement属性,但是没有target属性;
        // Firefox下,event对象有target属性,但是没有srcElement属性.
        // 但他们的作用是相当的。
        // Firefox下语法为:event.target
        var target = e.target || e.srcElement;
        
      // toLowerCase() 把字符串转换成小写
      // 说明: delete 这个是class 的类
        if (!!target && target.className.toLowerCase()==='delete') {                     
                 target.parentNode.parentNode.removeChild(target.parentNode);
        }
        
    })
    
}

事件委托这个纯属个人摘抄 记录一下 顺便占一下位

公布上述结果

从上往下依次弹出 14 、 5

不知道你答对了吗?
评论区等你

你可能感兴趣的:(js 基础 面试题分享! 干货!)