gpt4 book ai didi

javascript - 两个矫揉造作和一个 if 条件测试

转载 作者:行者123 更新时间:2023-11-30 08:27:03 26 4
gpt4 key购买 nike

我正在研究 Mike Bokstok (d3js) 的高度优化的 voronoi 实现代码。

我不明白当前的测试:

if (!(m = (halfedges = cell.halfedges).length)) return;

请在此处查看代码:https://github.com/d3/d3-voronoi/blob/master/src/Diagram.js#L87

  1. halfedges 和 m 是后一行定义的变量!它是如何工作的?
  2. 测试的目的是什么?如果有人使用错误类型的单元格调用函数(没有数组类型的 halfedges 属性),它是否是防御性测试?

最佳答案

因为var hoisting , var 可以放在函数中的任何位置,但将首先在其范围内处理:

bla = 2;
var bla;

// is implicitly understood as:
var bla;
bla = 2;

请注意,它使用的是 =,而不是 ==。它不是对 mhalfedges 的测试,它是两个矫饰和对 cell.halfedges.length 的测试。

可以改写为

if (!cell.halfedges.length) return;
halfedges = cell.halfedges;
m = halfedges.length;

关于javascript - 两个矫揉造作和一个 if 条件测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43931798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com