我一直试图将6位数字组合成一个字符串,但我判断了组合Pin的长度,它是54,尽管我还没有输入任何东西

以下是我的代码片段

combinedPin = "" + this.pinCode1 + this.pinCode2 + this.pinCode3 + this.pinCode4 + this.pinCode5 + this.pinCode6;
combinedPinInt = parseInt(combinedPin);
console.log("pincode: " + combinedPinInt + " length: " + combinedPin.length + " typeof: " + typeof combinedPin);

这是怎么回事?54是从哪里来的?

enter image description here

推荐答案

这里的问题似乎与JavaScript如何解释变量this.pinCode1this.pinCode6有关.当您try 将未定义的变量连接起来时,JavaScript可能会将它们转换为"未定义的"字符串.这将增加您的combinedPin字符串的长度.

以下是可能发生的事情的一个潜在例子:

pinCode1 = undefined
pinCode2 = undefined
pinCode3 = undefined
pinCode4 = undefined
pinCode5 = undefined
pinCode6 = undefined

combinedPin = "" + this.pinCode1 + this.pinCode2 + this.pinCode3 + this.pinCode4 + this.pinCode5 + this.pinCode6;

console.log(combinedPin.length)  // Prints: 54

每个"undefined"字符串有9个字符,您连接其中的6个字符,结果是总共54个字符.

要解决此问题,您需要确保正确定义了pinCode1pinCode6,并在连接操作之前保持预期的值.

如果您可以展示更多的代码,我也许能够帮助您进行潜在的修复.

它也可能是其他东西,但非常巧合的是,它恰好记录了54.这就是为什么我怀疑所有的值都是未定义的.

Typescript相关问答推荐

如何为ViewContainerRef加载的Angular组件实现CanDeactivate保护?

JS Redux Devtools扩展不工作

为什么TypeScript失go 了类型推断,默认为any?''

如何推断计算逻辑的类型

Angular 15使用react 式表单在数组内部创建动态表单数组

有没有可能产生输出T,它在视觉上省略了T中的一些键?

正交摄影机正在将渲染的场景切成两半

@TANSTACK/REACT-QUERY中发生Mutations 后的数据刷新问题

类型';字符串|数字';不可分配给类型';未定义';.类型';字符串';不可分配给类型';未定义';

如何在脚本中输入具有不同数量的泛型类型变量的函数?

是否可以通过映射类型将函数参数约束为预定义类型?

对有效枚举值的常量字符串进行常规判断

map 未显示控制台未显示任何错误@reaction-google-map/api

使用强类型元组实现[Symbol.iterator]的类型脚本?

无法缩小深度嵌套对象props 的范围

可以用任意类型实例化,该类型可能与

如何将对象的字符串文字属性用作同一对象中的键类型

如何创建允许使用带有联合类型参数的Array.from()的TS函数?

定义一个只允许来自另一个类型的特定字符串文字的类型的最佳方式

为什么 Typescript 无法正确推断数组元素的类型?