问题&答案

什么时候 a 1 && a 2 && a==3 为 true?

  var a = {
i: 1,
toString: function () {
return a.i++;
}
}
  • 关键点在于==在比较的时候会进行类型转换,上例会调用a.valueOf(a.toString())来将a转换成Number数据类型,因此改写a的toString方法即可。
  var a = [1,2,3];
a.join = a.shift;
  • 同样的数组a在进行类型转换的时候会调用toString()的方法,而a.toString()其实调用的是a.join('')方法,因此修改a.join方法使其指向shift方法让其每次只输出第一个值,并且输出后从数组移除即可。
  var val = 0;
Object.defineProperty(window, 'a', {
get: function() {
return ++val;
}
});
  • 使用Object.defineProperty()方法为window添加a属性,修改其getter方法,使其依次返回val变量值。

参考资料

  1. 前端开发面试题
  2. 2019寒冬中的深圳前端面试分享(附笔试题)。
  3. Web前端常见面试题汇总
  4. 深入浅出Object.defineProperty

结束语

尺蠖之屈,以求信也;龙蛇之蛰,以存身也。与时屈伸。柔从若蒲苇,非慑怯也;刚强猛毅,靡所不信,非骄暴也。

最新文章

  1. php知识案列分享
  2. IE9下WebUploader上传图片跨域问题
  3. 哈夫曼树(一)之 C语言详解
  4. STL vector按多字段值排序
  5. Android安装失败 Installation error code: -110
  6. 【WPF】控件使用-宽度自动适应窗口大小
  7. FTP+SFTP工具类封装-springmore让开发更简单
  8. C# - DataValid数据验证类
  9. HDU 2056 Rectangles
  10. 0-C相关01:NSlog函数介绍。
  11. Jquery与DOM对象
  12. HDU 1852 Beijing 2008 数论
  13. Struts2中获取HttpServletRequest,HttpSession等的几种方式
  14. java多线程系列(四)---Lock的使用
  15. HTTP入门
  16. 前端工具mock的使用 - 造数据模拟网络请求
  17. Zookeeper~Linux环境下的部署
  18. [20190329]探究sql语句相关mutexes补充2.txt
  19. CCPC-Wannafly Winter Camp Day1 Div1 - 夺宝奇兵 - [贪心+线段树]
  20. 可恶的 0xc0000005异常

热门文章

  1. mybatis连接mysql(jdbc)常见问题
  2. CSS——fixed 固定定位相对于父容器
  3. idHttpServer接收类型
  4. 清除input表单内容
  5. Java8之深入理解Lambda
  6. MyBatis从入门到精通(第4章):MyBatis动态SQL【foreach、bind、OGNL用法】
  7. 常见的nosql数据库有哪些?以及他们的特点与区别?
  8. ES6之对象的语法糖
  9. ReportingService语法
  10. Proe5.0导出PDF至配置文件的相关方法,VC++