[英]Why can I use a variable before declaring it in JavaScript / TypeScript?
据我了解,在 ES6 和let
和const
的引入之后,使用它们声明的变量必须在使用之前声明。 但是,我遇到了许多示例,当我在使用后声明变量时,我的代码运行得很好。 例如,这是来自 React Native 的 TypeScript 模板(简化版)的代码:
import React from 'react';
import {StyleSheet, Text} from 'react-native';
const App = () => {
return (
<>
<Text style={styles.text}>Some text</Text>
</>
);
};
const styles = StyleSheet.create({
text: {
backgroundColor: 'blue',
},
});
export default App;
在这里, styles
是在使用后声明的,这甚至似乎是惯用的方式,但即使 ESLint 突出显示为no-use-before-define
。
我的问题是:为什么它仍然有效?
在声明之前您没有使用它。
在调用内部使用的 function 之前,不会使用该变量。
基本上正在发生的事情是
const styles = StyleSheet.create({});
已被声明为名为 function。 因此,在声明 function 时运行,变量分配为 object;
const App = () => {return()};
正在声明 App将是function,当它从主进程执行时将调用它的构造函数,目前您只是从模块中导出它。 因此,在导出时 Styles 已声明并返回 object,并且已声明 App 等待未来执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.