前言
只是记录本人遇见的问题,可能这些问题对佬们来说很简单,但是也是我自己使用以来没有发现的问题。
在今天的代码中练习中,遇见了一次之前从来没遇见的问题,问题和问题代码如下:
错误信息
这段报错信息出现了指的是在你的JavaScript代码中,你试图在一个变量checkRePassword被声明之前就访问它。:
遇见的控制台错误信息:
解决问题
这么一看好像代码也没有问题,vscode控制台也没有提供报错信息,但是为什么?就会发生这样的错误呢? 经过我自己的百度和查看问题。
变量提升(Variable Hoisting):在JavaScript中,变量声明(使用var、let或const)会被提升到其所在作用域的顶部。但是,只有var声明的变量会被初始化为undefined,而let和const声明的变量则不会被初始化,它们会处于“暂时性死区”(Temporal Dead Zone, TDZ)状态,直到执行到它们的声明语句。如果你在let或const声明之前就尝试访问这个变量,就会抛出这个错误。
根据这个知识点我将const换成了var问题解决了,但是后面在经过我的查看和发现,只需要将定义的自定义校验函数,放到rules之前就可以解决了....
总结
可能还是归功于自己对这些方面不太了解,还需要多加练习才行,解决这次的问题也让我明白加深了var、let、const,这方面的知识。