js:

  1. 对原型链的理解?prototype上都有哪些属性
  2. 为什么使用继承
  3. jQuery addClass()的内部实现
  4. jQuery的优缺点,与vue的不同,vue的优缺点?
  5. vue v-modle实现原理
  6. http 缓存
  7. cookie可设置哪些属性?httponly?
  8. 登录后,前端做了哪些工作,如何得知已登录
  9. xss
  10. setTimeout时间延迟为何不准
  11. 事件循环述,宏任务和微任务有什么区别?
  12. let const var作用域
  13. 项目结构
  14. 数组排重,多种方法
  15. 实现sum(1,2,3,4..n)转化为 sum(1)(2)(3)(4)...(n)
  16. node 使用场景,express如何实现304
  17. 用javascript让(a==1&&a==2&&a==3)为true
    1、如果a是一个对象,那在执行比较的时候先执行valueOf方法,如果没有valueOf方法,就会去执行toString方法。 let a = { i : 1, toString: function(){ return a.i++ } } if(a==1&&a==2&&a==3){ console.log('hello') } 2、如果a是一个数组,在数组转换成字符串的时候,会去实行数组的join方法。 let a = [1,2,3]; a.join = a.shift; if(a==1&&a==2&&a==3){ console.log('hello') } 3、 var i = 0; with({ get a() { return ++i; } }) { if (a == 1 && a == 2 && a == 3) console.log("hello"); } 4、 var i = 0; Object.defineProperty(window, 'a', { get: function() { return ++i; } }); console.log(a == 1 && a == 2 && a == 3); 5、 window.__defineGetter__( 'a', function(){ if( typeof i !== 'number' ){ i = 0; } return ++i; }); console.log(a == 1 && a == 2 && a == 3); 6、 var a = new Proxy({ i: 0 }, { get: (target, name) => name === Symbol.toPrimitive ? () => ++target.i : target[name], }); console.log(a == 1 && a == 2 && a == 3); 7、 let a = {[Symbol.toPrimitive]: ((i) => () => ++i) (0)}; console.log(a == 1 && a == 2 && a == 3); 8、 var a = 1; var ᅠ1 = a; var ᅠ2 = a; var ᅠ3 = a; console.log( a ==ᅠ1 && a ==ᅠ2 && a ==ᅠ3 ); 猜猜这是为啥??