来自一本书的 JS 代码片段
JS code snippet from a book
我有以下代码:
var person = { name: "Nicholas" };
var people = [{ name: "Nicholas" }];
var morePeople = [person];
alert(people.indexOf(person)); //-1
alert(morePeople.indexOf(person)); //0
我不明白为什么当人是一个数组并包含{ name: "Nicholas" }
时,第一个警报会给出 -1(未找到)
因为虽然两个对象包含相同的信息,但它们不是同一个对象。例如:
var nick = { name: 'Nick' };
var nick2 = { name: 'Nick' };
console.log(nick === nick2); // false
console.log(nick === nick); // true
这是真的,因为Javascript不会在对象之间进行每个属性的比较来确定相等性。它只检查"这是否与另一个对象完全相同?如果且仅当这是真的,在比较两个对象时,你才会得到一个真实的结果。
.indexOf
使用此类比较来确定数组中是否有任何对象或值。
相关文章:
- 为什么indexOf在这个js代码中不起作用
- js代码从jQuery转换为原生代码
- JS代码中的减号
- 谷歌地图Api和JS代码不工作
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- 为什么这个JS代码打印未定义
- JS代码在jsbin中有效,在jsfiddle或Chrome/Safari中无效
- 页面加载后加载简单的JS代码
- 扩展JS代码
- 如何使用js代码转发reactjs路由器
- 用js代码重新定位文本
- 即使被信号处理程序中断,node.js代码也会一直运行到完成吗
- JS代码使IE9和Safari冻结,在Opera中不起作用
- 分析JS代码以在客户端获取cookie
- 改进js代码以删除全局变量和函数
- 对php文件的Ajax调用返回该文件中的JS代码,而不是执行它
- 在单独的上下文中运行 js 代码并访问其全局变量
- 这个 ajax.js 代码有什么问题
- 如何使用 GetValues 使用 Jint 运行 Js 代码
- JS代码有什么问题,让我知道代码是否可以改进