我试图定义一个变量x,用于检查圆形显示中移动点沿x轴的位置,如果它在允许的半径之外,则重新绘制它。只使用以下行指定一个方向时它起作用:
let x = ((this.state.centerx[point] + frame * this.props.jump) < (0.5 * this.props.width - 0.15 * this.props.width)) ?
(this.state.centerx[point] + frame * this.props.jump) + (0.3 * this.props.width) : this.state.centerx[point] + frame * this.props.jump
但是当我尝试以if语句的形式添加另一个检查时,我会收到错误:
63:20 error 'x' is not defined
以下是我尝试使用的整个代码:
for(var frame = 0; frame < this.props.numframes; frame++) {
var startpoint = (frame % 2 === 0) ? 0 : this.props.numpoints
for(var point = startpoint; point < startpoint + this.props.numpoints; point++) {
if(this.state.direction > 0) {
let x = ((this.state.centerx[point] + frame * this.props.jump) < (0.5 * this.props.width - 0.15 * this.props.width)) ? (this.state.centerx[point] + frame * this.props.jump) + (0.3 * this.props.width) : (this.state.centerx[point] + frame * this.props.jump)
} else {
let x = ((this.state.centerx[point] + frame * this.props.jump) > (0.5 * this.props.width + 0.15 * this.props.width)) ? (this.state.centerx[point] + frame * this.props.jump) - (0.3 * this.props.width) : (this.state.centerx[point] + frame * this.props.jump)
}
感谢您提供的任何见解。
答案 0 :(得分:0)
区别在于范围界定。 var的范围限定为最近的功能块,并且将范围限定为最近的封闭块,该封闭块可以小于功能块。如果在任何区块之外,两者都是全球性的。
此外,使用let声明的变量在它们的封闭块中声明之前是不可访问的。如演示中所示,这将引发ReferenceError异常
尝试更改变量定义方法
let x
到
const x