变量未定义的问题

时间:2017-04-25 13:54:10

标签: javascript reactjs

我尝试使用下面给出的this example来循环使用普通js文件和reactjs中的for循环。

for(var a=[i=0];++i<20;a[i]=i);

当我在反应中运行此代码时显示

  

'我'未定义

import React, { Component } from 'react';
import './App.css';
export default class Board extends Component
{

    move (e)
    {
        for(var a=[i=0];++i<20;a[i]=i);
        console.log(a)
    }
    render () {
        return (
            <div className="boxes" onClick={this.move.bind(this)}></div>
        );
    }
}

enter image description here

当我在普通的js文件中运行它时,它工作正常。任何想法为什么它发生在reactjs。

3 个答案:

答案 0 :(得分:1)

您的捆绑代码在文件顶部有“严格模式”。如果使用未声明的变量,严格模式将引发错误。

答案 1 :(得分:1)

这是因为您的React应用程序使用的是严格模式:

##top 8 rows
muid    tactic  total_sent
0   1   100 1
1   1   101 1
2   2   101 1
3   2   107 1
4   3   102 1
5   3   104 1
6   4   103 2
7   5   102 1
8   5   104 1

如果您不想禁用严格模式,只需事先声明"use strict"; for(var a=[i=0];++i<20;a[i]=i);变量即可解决此问题:

i

然而,您用来捆绑应用程序的软件最有可能支持为您缩小文件,所以我不确定您自己缩小它们会带来什么好处。例如,如果您使用的是Webpack,则可以参考以下问题:How to build minified and uncompressed bundle with webpack?

答案 2 :(得分:0)

Webpack正在转换您的代码,并且不允许在未声明的情况下使用变量。 Javascript本身将允许使用未定义的变量。