我尝试使用下面给出的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>
);
}
}
当我在普通的js文件中运行它时,它工作正常。任何想法为什么它发生在reactjs。
答案 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本身将允许使用未定义的变量。