前端基础知识必备技能

106 阅读1分钟
1.给你一个字符串 s,找到 s 中最长的回文子串。
给你一个字符串 s,找到 s 中最长的回文子串。
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

huiwen(s) {
            if (s.length < 2) {
                return s;
            }
            let maxLength = 1;
            start = 0;
            function opt(left, right) {
                while (left >= 0 && right < s.length && s[left] == s[right]) {
                    if (right - left + 1 > maxLength) {
                        maxLength = right - left + 1;
                        start = left;
                    }
                    left--;
                    right++;
                }
            }
            for (let i = 0; i < s.length; ++i) {
                opt(i, i + 1);
                opt(i - 1, i + 1);
            }
            return s.substring(start, start + maxLength); 
        }

2.输入:nums = [2,7,11,15], target = 9

解释:因为 nums[2] - nums[0] = 9 ,返回 [0, 2]

3.手写一个new

原型链说明,例如声明一个new函数

4.代码优化:

let handleClick = (status) => {
  if (status == 1) {
    sendLog('processing')
    jumpTo('IndexPage')
  } else if (status == 2) {
    sendLog('fail')
    jumpTo('FailPage')
  } else if (status == 3) {
    sendLog('fail')
    jumpTo('FailPage')
  } else if (status == 4) {
    sendLog('success')
    jumpTo('SuccessPage')
  } else if (status == 5) {
    sendLog('cancle')
    jumpTo('CancelPage')
  } else {
    sendLog('other')
    jumpTo('Index')
  }
}
5.实现双向绑定

bd() {
            let elems = [document.getElementById('el'), document.getElementById('input')];
            let data = {
                value: 'hello',
            };
            let command = {
                text: function(str) {
                    this, (innerHtml = str);
                },
                value: function(str) {
                    this.setAttribute('value', str);
                },
            };
            elems[1].addEventListener('keyup', function(e) {
                mvSet('value', e.target.value);
            });
            function mvSet(key, value) {
                data[key] = value;
                scan();
            }
            function scan() {
                for (let i = 0, len = elems.length; i < len; i++) {
                    var elem = elems[i];
                    elem.command = [];
                    for (let j = 0, len1 = elem.attributes.length; i < len1; j++) {
                        const attr = elem.attributes[j];
                        if (attr.nodeName.indexOf('q-') >= 0) {
                            command[(arrt, nodeName.slice(2).call(elem, data[attr.nodeValues]))];
                            elem.command.push(attr.nodeName.slice(2));
                        }
                    }
                }
            }
        },

\