鸡兔同笼问题
1. 数学计算
2.Number()方法
用于将字符串转化为数字
如果输入的不是合法数字,Number()将返回NaN
3.判断输入的是否为数字
isNaN()方法
如果非数字,返回true
4.整数检测
输入值不能是小数
用parseInt()方法取整后再做判断
5.没有内容的对象的检测
{} == {}; ?
不可行,因为这是两个对象
处理方法:
1)枚举
对于没有内容的空对象({}),i并不会被赋值,for-in中的内容也不会执行
2)Object.keys(obj)
该方法类似于枚举,但是,是直接调用Object的keys方法,方法的返回值为所有可枚举属性的字符串数组。如果当前对象为空({}),则返回一个空数组
3)JSON.stringify()
JSON.stringify()方法,用于将JSON对象解析为字符串,即可和{}比较
4)Object.getOwnPropertyNames(obj)
返回对象自己的属性的名称,返回值为一个数组,因此可以通过length属性,进行判断,如果length长度为0,则代表该对象为空
可枚举属性是指那些内部 “可枚举” 标志设置为 true 的属性,对于通过直接的赋值和属性初始化的属性,该标识值默认为即为 true,对于通过 Object.defineProperty 等定义的属性,该标识值默认为 false。可枚举的属性可以通过 for...in 循环进行遍历(除非该属性名是一个 Symbol )。属性的所有权是通过判断该属性是否直接属于某个对象决定的,而不是通过原型链继承的。一个对象的所有的属性可以一次性的获取到。