使用import语句,为什么会失败,并显示“ Uncaught SyntaxError:Unexpected identifier”

时间:2018-12-24 04:05:22

标签: javascript module

因此,我正在尝试测试import myFunction from './mymodules.js'。 在Chrome中打开,我收到错误-Uncaught SyntaxError: Unexpected identifier

以下是副本:https://repl.it/@PaulThomas1/ModulePractice

我正在看这篇文章:https://developers.google.com/web/fundamentals/primers/modules

我的模块类:

export default function findInArray(arr, search) {
  if(Array.isArray(arr) == false) return Error("arr - Is not an array");
  if(search == undefined) return Error("search - Undefined");

  let searchMethod;

  if(typeof search == 'string') {
      searchMethod = (element) => { 
        return search == element;
      };
    } else {
      searchMethod = (element) => {
        return search(element);
      };
    }

  arr.forEach(element => {
    if(searchMethod(element)) {
      return element;
    }
  });

  return '';
}

正在尝试导入此代码的我的Javascript:

import findInArray from './modules/util.js';

let myArray = ["Bill", "Bob", "Ben"];

console.log(findInArray(myArray, "Bob"));

注意:在Repl中,它可以识别导入中的方法,但无法运行。 我已经读了好几页,但是对此一无所获。 我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

看起来有几个问题:

1)您只需要加载script.js,因为该调用在另一个模块中进行(请确保type="module"在该脚本中)

<script type="module" src="script.js"></script>

2)在util中,您无法像这样从forEach的回调中返回。根据您的要求,您可能应该使用filterfind返回新的数组或对象:

return arr.filter(element => searchMethod(element));