趣题记录
下面代碼中 a 在什么情況下會打印 1?
var a = ?; if(a == 1 && a == 2 && a == 3){console.log(1); }
方法一、使用toString()
let aa = {i: 1,toString () {console.log(`i`,aa.i)return aa.i++} }if(aa == 1 && aa == 2 && aa == 3) {console.log(1); }
方法二、利用 valueOf()
let a = {i: 1,valueOf () {return a.i++} }if(a == 1 && a == 2 && a == 3) {console.log(1); }
方法三、利用數組的 join 和?shift
var a = [1,2,3]; a.join = a.shift; if(a == 1 && a == 2 && a == 3) {console.log(1); }
方法四、ES6的Symbol
方法五、Object.defineProperty
轉載地址
轉載于:https://www.cnblogs.com/detanx/p/jsInterestingTopic1.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: TCP/IP和OSI4层、7层协议介绍
- 下一篇: List 的add()与addAll()