我的面经1

  • js
function test(){
    for(var i = 0; i < 3; i++) {
        var img = document.createElement('img');
        img.src = 'img' + i + '.png';
        img.onload = function(){
            alert(i)
        }
        document.body.appendChild(img);
    }
}
test();

问弹出几次弹窗,弹出的是多少?
弹出3次弹窗,弹出结果都是3
for每循环一次,i + 1;循环结束,i变为固定值3;onload调用的时候,i为3,有3张图片,onload执行3次,所以弹出3次

  • js基础数据类型包括?譬如Date/error是什么数据类型?
    null undefined string number boolean
    引用数据类型
  • childNodes 和children 的区别
    首先看node和element的区别;element是node的一种,只有当nodeType是1时为元素节点,即element;所以说element是node的一种,element同时扩展了node,有id/children等属性
    children和childNode获取的都是子节点,但是children获取的是元素节点,childNode获取的是所有节点,包括文本节点,注释节点等
  • 单页面应用的路由系统是基于什么实现的?
    单页面的路由有两种实现方式:
    1.h5的historyAPI:页面在历史记录中切换时,出发popstate事件,历史记录一般是由pushState/hash锚点等操作产生。
    2.hash路由,也就是常见的# 号:location.hash = url;hash变化时,出发hashChange事件。
  • 标准盒子模型包括?有几种描述方式,受什么影响?
    margin border padding content
    分为两种:border-box;标准盒模型:content-box;
    doctype会影响盒模型的呈现方式,标准模式下以标准盒模型呈现

  • 请写一个实现script延迟加载的函数,并且当加载完成时收到通知

  • async和defer的区别
    script标签中存有2个属性,async和defer
    async:后续文档的加载与渲染与js脚本的加载和执行同步执行
    defer:加载后续文档的过程与js脚本的加载同步执行,但是js脚本的执行在文档解析完成之后

  • 不加任何干预的情况下,为什么移动端的click比touch慢?
    移动设备上某个元素的执行顺序是:touchstart touchmove touchend click
    click虽然会在移动设备上识别,但是确实最后才执行
  • 以下伪代码如果可以执行的话存在什么问题?
var arr = []; //arr里面包含很多数据
var s = ''// s是一个string或者是数字
if(arr.indexOf(s)){
    do something;
}

s在arr中不存在时,indexOf返回值是-1,if函数执行;s在arr中存在时,只有当 s == arr[0] 时indexOf返回值是0,if函数不执行,其他时候均执行,所以if判断没有意义。
- css选择器有哪些,优先级是怎么计算的
类选择器 id选择器 属性选择器 标签选择器
!important > 内联 > id > 类 = 伪类 = 属性 > 标签 = 伪元素
内联:1000 id: 0100 类 = 伪类 = 属性 : 0010 标签 = 伪元素: 0001

  • transition-property?对哪些属性不起作用?
    transition-property规定使用过渡效果的css属性的名称。包括3个值 none :没有属性获得过渡效果,all所有属性获得过渡效果,property指定属性名称,多个时逗号分隔。
    应该始终设置transition-duration,否则时长为0不会产生过渡效果
    transition-property只对能够 量化 的属性如width、height起作用,对于不能量化的属性如display不能起到过渡的作用
  • 请定义一个通用的数据结构
//1
{
    'data' : 239,
    'error' : false
}
//2
{
    'data' : false,
    'error' : {
        'errorCode': 1,
        'errorName' : 'error'
    }
}
//3
{
    'data' : {
        'id' : 1,
        'name' : 'data'
    },
    'error' : 230
}

利用静态数据类型进行定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值