// a 是多少的时候 可以让下面的打印ok
if(a == 1 && a == 2 && a ==3){
console.log('ok')
}

  分析1:

== 比较,如果左右左右两边数据类型不一样  对象 == 字符串  把对象转为字符串,剩下的情况都要转数字

  分析2:

基本数据类型转数字,默认隐式调用Number()来处理,所以此处a必定不能是基本数据类型

  分析3:

对象转数字;先转为字符串(先调用valueOf ,获取原始值,如果原始值不是基本类型,继续调用toString ),然后把字符串转数字 

所以答案有以下三种

var a = {
i:1,
valueOf(){
return this.i++
}
}

  第二种

var a = [1,2,3]
a.toString = a.shift;
// 当a去比较的时候,一定会调用toString方法, 我现在让他执行shift 每次都去取数组第一项

第三种 使用Object.defineProperty

// 使用数据劫持
var i = 1
Object.defineProperty(window, 'a', {
get() {
return i++
}
})

  

  

通过面试题学JavaScript知识(1)的更多相关文章

  1. 怎么学JavaScript?

    作者:小不了链接:https://zhuanlan.zhihu.com/p/23265155来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 鉴于时不时,有同学私信问我( ...

  2. 统一回复《怎么学JavaScript?》

    作者:小不了链接:https://zhuanlan.zhihu.com/p/23265155来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 鉴于时不时,有同学私信问我( ...

  3. 《jQuery风暴》第2章 必须知道的JavaScript知识

    第2章 必须知道的JavaScript知识 JavaScript是jQuery应用的基础,掌握JavaScript这门语言是使用jQuery的基础条件.本章不会全面细致的讲解JavaScript的全部 ...

  4. JavaScript知识(一)

    首先想为大家分享两句话: 侧耳听智慧,专心求聪明,呼求明哲,扬声求聪明.——箴言2:2-3 你要保守你心,胜过保守一切,因为一生的果效,是由心发出.——箴言 4:23 ...O(∩_∩)O...今天学 ...

  5. WEBBASE篇: 第十篇, JavaScript知识5

    JavaScript知识5 <!doctype html> <html lang="en"> <head> <meta charset=& ...

  6. 《零基础学JavaScript(全彩版)》学习笔记

    <零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...

  7. 【原文】前端程序员必须知道的高性能Javascript知识

    原文:前端程序员必须知道的高性能Javascript知识 想必大家都知道,JavaScrip是全栈开发语言,浏览器,手机,服务器端都可以看到JS的身影. 本文会分享一些高效的JavaScript的最佳 ...

  8. web前端面试试题总结---javascript篇

    JavaScript 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol(创建后独一无二且不可变的 ...

  9. Javascript知识——事件

    O(∩_∩)O~~又是新的一周开始了,今天还是在继续学习Javascript知识,今天主要讲了事件的知识.现在就总结下吧. 事件 事件一般是用于浏览器和用户操作进行交互.最早是 IE 和 Netsca ...

随机推荐

  1. U3D破解方法

    文件我的云盘里面有,然后操作如下:Win版破解方法:1.安装Unity后(联网破解不成功就断网试试),运行破解补丁.2.点击Browse选择Unity所在路径 例如我的Unity安装路径 F:\Sof ...

  2. 循环输出 一个li里边两个图片循环

    <ul> <li><img src="123454"/><img src="123454"/></li&g ...

  3. DBScan聚类,打破形状的限制,使用密度聚类

    如何用花盆摆放成国庆字,并且包围这两个字. 在DBSCAN中衡量密度主要使用的指标:半径.最少样本量 算法原理 *直接密度可达 如果一个点在核心对象的半径区域内,那么这个点和核心对象称为直接密度可达, ...

  4. ArcMap线上均匀生成点

    面中均匀生成点方法: [创建渔网]→[要素转点](或[要素折点转点])→[裁剪](或[按位置选择]→[导出数据]),即可. ArcMap中随机生成点: [随机生成点]工具 最近博主的朋友有均匀布点的需 ...

  5. hadoop学习笔记 一

    Hadoop 2.x * common * HDFS 存储数据 NameNode 主从结构 * 存储文件系统的元数据,命名空间namespace DataNode * 存储数据 SecondaryNa ...

  6. 揭秘.NET Core剪裁器背后的技术

    十天前,我发布了对.NET Core程序进行瘦身的开源软件Zack.DotNetTrimmer,与.NET Core内置的剪裁器相比,Zack.DotNetTrimmer不仅对程序的剪裁效果更好,而且 ...

  7. 微信Native支付

    微信Native支付对接(扫码) 由于有业务需求对接了微信和paypal支付,这边做个记录 微信支付开发文档:https://pay.weixin.qq.com/wiki/doc/api/index. ...

  8. Parrot Linux安装教程

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.Parrot Linux介绍 Parrot 是一个由开发人员和安全专家组成的全球社区,他们共同构建一个共享的工具框架,使他们的工作更轻松.标准 ...

  9. 6月20日 Django中ORM介绍和字段、字段参数、相关操作

    一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...

  10. [环境部署] Windows Server 2016 配置指南 之 安装 Redis3.0

    Redis是一个开源的高级key-value(键-值)缓存与存储,以高性能著称.用于做对象缓存,可以获得极佳的性能体验,可是 Redis 的官方开发团队并没有开发针对 Windows 的版本,不过还好 ...