我不明白这个简单的代码段。 应该输出什么?
import React, { Component } from 'react';
import { DatePicker } from 'antd';
class DeliveriesDatePicker extends Component {
constructor(props) {
super(props)
this.state = {
day : ''
};
}
render() {
function onChange(date, dateString) {
this.setState( { day: dateString } );
console.log(date, dateString);
}
date = this.state.day
return (
<div className="Calendario">
<DatePicker onChange={onChange} />
</div>
);
}
}
export default DeliveriesDatePicker
export let date;
答案 0 :(得分:1)
代码:
var scope = "global";
function f() {
console.log(scope);
var scope = "local";
console.log(scope);
}
输出:
undefined
但是如果您在代码末尾添加f()
:
undefined
local
只需尝试一下!
var scope = "global";
function f() {
console.log(scope);
var scope = "local";
console.log(scope);
}
f()
答案 1 :(得分:1)
如果您致电f()
,则将注销undefined
和"local"
。
之所以会发生这种情况,是因为函数(本地)作用域是如何工作的,它将首先“读取”函数,并且由于在函数内定义了变量“ scope”,因此它将变量(scope)的所有实例视为本地范围。
然后由于未在第一个console.log调用中定义该局部作用域变量,您将得到未定义。
答案 2 :(得分:0)
致电f()
时,预期输出为
undefined
local
为什么?因为有一个叫做variable hoisting的东西。
您的代码有效地变为:
var scope = "global";
function f() {
// variable declaration has been hoisted
var scope;
console.log(scope); // undefined
scope = "local";
console.log(scope); // local
}