这些在react-native中声明变量的方式之间的区别是什么。
import React, { Component } from 'react';
import { AppRegistry, Image, View, Text, } from 'react-native';
export default class Hello extends Component {
render() {
**const var1 = 'hi';**
return ( );
}}
import React, { Component } from 'react';
import { AppRegistry, Image, View, Text, } from 'react-native';
**const var1 = 'hi';**
export default class Hello extends Component {
render() {
return ( );
}}
答案 0 :(得分:3)
这些变量之间的差异是范围。
在这两种情况下,due to the use of const
,var1
只有在 声明之后才能访问 。
const
变量的范围是它正在运行execution context。在您的两个示例中,执行上下文是不同的。
在第二个例子中:
import React, { Component } from 'react';
import { AppRegistry, Image, View, Text, } from 'react-native';
const var1 = 'hi';
export default class Hello extends Component {
render() {
return ( );
}
}
声明var1
的执行上下文是文件。
这意味着在const var1 = 'hi';
var1
变量可用之后在文件的任何位置,其值为'hi'
在你的第一个例子中:
import React, { Component } from 'react';
import { AppRegistry, Image, View, Text, } from 'react-native';
export default class Hello extends Component {
render() {
const var1 = 'hi';
return ( );
}
}
声明的执行上下文是方法render()
。
同样,它意味着在render()
方法中的和render()
方法中const var1 = 'hi';
方法之后的任何一点var1
语句'hi'
变量可用,其值为const var1 = 'hi';
。
总之,当您在方法中使用var1
时,const var1 = 'hi';
(常量)变量仅可用 该方法。 OTOH,当您在文件中声明{}
时,在任何类或var1
或函数之外,var1
将在整个文件中可用。
但在这两种情况下,const var1 = 'hi';
只会在a
声明语句后定义/可用。