JavaScript古怪性-typeof[]==typeof{}的计算结果为';正确';
我知道JS中的严格相等计算了两件事: 平等性与相似性 Object.is()是我能找到的最接近于收集进一步见解的比较,在我的调查中几乎没有提供进一步的信息 任何一个摸过JS内脏的人都能更好地解释这一点吗?数组是一个非常奇怪的对象实现吗?所以它们是空的,在这里计算相同的值JavaScript古怪性-typeof[]==typeof{}的计算结果为';正确';,javascript,arrays,object,Javascript,Arrays,Object,我知道JS中的严格相等计算了两件事: 平等性与相似性 Object.is()是我能找到的最接近于收集进一步见解的比较,在我的调查中几乎没有提供进一步的信息 任何一个摸过JS内脏的人都能更好地解释这一点吗?数组是一个非常奇怪的对象实现吗?所以它们是空的,在这里计算相同的值 我很困惑,只是好奇。typeof返回操作数的基本类型。对于除布尔、数字、字符串、函数和未定义对象以外的任何对象,这都是对象。数组是具有许多附加方法的对象--将它们定义为“高级、类似列表的对象”,并继续说: 数组是类似列表的对象,
我很困惑,只是好奇。
typeof
返回操作数的基本类型。对于除布尔、数字、字符串、函数和未定义对象以外的任何对象,这都是对象。数组是具有许多附加方法的对象--将它们定义为“高级、类似列表的对象”,并继续说:
数组是类似列表的对象,其原型具有要执行的方法
遍历和变异操作
函数
不是一种类型<代码>类型为weird@vkurchatkin我的意思是,你可以试试:typeof function(){}==“function”
是的,对,但它不是类型。函数的实际类型是一个对象
。呃,typeof 0===typeof 3
。那又怎样?数组是对象(对整数属性和特殊的.length
属性具有优化访问)typeof
只是一个查找表。看见另一点是,所有不是基元值的东西(数字、字符串、布尔值、null、未定义)都是对象。@FelixKling null是对象。@JaredSmith:不是: