web前端面试第6记

1小程序打开页面限制解决方案

/**
  * @url  跳转地址   根目录 pages  
  */
App({
    data:{
        max_page: 5
    },
    openPage: function(url) {
        if(!url) return;
        url = `pages/${url}`;
        var pages = getCurrentPages(),  //页面栈
            len = pages.length,
            dlt = '',
            max_page = this.data.max_page,// 页面最大限制
            target = '/' + url.replace(/^\//, '');


        for (var i = 0; i < len; i++) {
          if (pages[i].route == target) { 
            dlt = i + 1;
            break;
          }
        } 

        //页面不在栈中
        if (!dlt) { 
          if (len < max_page) {
            wx.navigateTo({
              url: target
            });
          } else {
            wx.redirectTo({
              url: target
            });
          }
        } else {
          wx.navigateBack({
            delta: len - dlt
          });
        }   
    }
})  

2 渲染的时候key给什么值,可以使用index吗,用id好还是index好

key值就类似于数据库中的主键id一样,有且唯一

3 [1, 2, 3, 4, 5]变成[1, 2, 3, a, b, 5]

splice方法

4 取数组的最大值(ES5、ES6)

Math.max.apply(null,arr);
var max2 = arr.sort(function(a,b){
    return b-a;
})[0];

Math.max(...arr);//es6
var max = arr.reduce(function(a , b){ 
return b > a ? b : a; 
});

5 循环绑定时的index是多少,为什么,怎么解决

var list = document.getElementById("ulDemo").getElementsByTagName("li");
      for (var i = 0; i < list.length; i++) {
          var li = list[i];
          li.onclick= (function (index) {
              return function () { alert("第" + (index + 1) + "条" + this.innerHTML) };
          })(i);
      }

你可能感兴趣的:(web前端面试第6记)