console.log(typeof true)
console.log(typeof true.toString())
console.log(typeof undefined)
console.log(typeof toString(undefined))
console.log(typeof toString(" "))
console.log(typeof Number('111'))
console.log(typeof "")
console.log(typeof Number(""))
console.log(parseInt(23.45))
console.log(parseInt("23.45"))
console.log(parseInt(""))
console.log(parseInt(" "))
console.log(parseFloat("23.45"))
console.log(parseFloat("123.45abc"))
console.log(parseFloat("123.aa"))
console.log(Boolean(NaN))
console.log(Boolean(0))
console.log(Boolean(1))
console.log(Boolean(""))
console.log(Boolean(" "))
console.log(Boolean(null))
console.log(Boolean(undefined))
console.log(Boolean(45))
console.log(Boolean(Infinity))
let a='Tower'+1
console.log(typeof a)
let b=true+'abc'
console.log(typeof b)
let d='100'
let e=d--
console.log(e)
console.log(d)
console.log(1+true)
console.log(1+undefined)
console.log(1+null)
console.log([1,2] == '1,2')
console.log([1,2].valueOf())
console.log([1,2].toString())
var o = {}
console.log(o == "[object Object]")
console.log(o.valueOf())
console.log({}.toString())
console.log(![] == 0)
console.log([] == ![])
console.log([].valueOf().toString())
console.log(Number(' '))
console.log({} == !{})
console.log(Number({}.valueOf().toString()))
console.log(!{})
console.log({})
console.log(Boolean(NaN))
console.log([] == [])
console.log({} == {})