JS syntaxError - chrome - 数组解构

时间:2013-10-11 13:57:14

标签: javascript

以下代码在firefox上工作正常,但在chrome上引发错误 - SyntaxError: Unexpected token [

我期待这段代码在给定的div中附加日期。

var output = document.getElementById('output');
var classes = ['history', 'biology', 'physics'];
var students = 90; 

function getExamDate() {
  return [20, ' March ', 2013, ' 9AM'];
}

var [date, month, year, time] = getExamDate();

output.innerHTML(date + month + year + time);

2 个答案:

答案 0 :(得分:5)

这种陈述

var [date, month, year, time] = getExamDate();

destructuring assignment。它是ECMAScript 6的一部分。它在大多数浏览器中都不可用。

目前,您最好避免分配所有这些变量:

output.innerHTML = getExamDate().join('');

(是的,你有另一个错误:innerHTML是作为属性访问的,而不是函数)

Here's a good introductory article on destructuring assignments

答案 1 :(得分:3)

Working DEMO

您正在使用名为ECMAScript 6的{​​{1}}功能,但尚未成为标准功能。只有像chrome和firefox这样的现代浏览器才实现了一些功能。从函数返回多个值时,数组解构是有用的简写,因为我们不再需要包围对象。

在您的情况下,您可以调整代码以返回一个简单的数组,如下面的代码片段所示。

我使用Array destructuring函数检查数组项是否为数字。如果它是一个字符串,则删除它周围的引号。您将以完全相同的输出结束您。

isNumber