繁体   English   中英

为什么我可以在 JavaScript / TypeScript 中声明变量之前使用它?

[英]Why can I use a variable before declaring it in JavaScript / TypeScript?

据我了解,在 ES6 和letconst的引入之后,使用它们声明的变量必须在使用之前声明。 但是,我遇到了许多示例,当我在使用后声明变量时,我的代码运行得很好。 例如,这是来自 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM