JavaScript Feature Reference: Array Destructuring Syntax Web Browser Support Test

Last reviewed/updated: 06 Mar 2018 | Published: 29 Jan 2018 | Status: Active
Web browser support: Internet Explorer 10+, Edge 12+, Firefox 6+, Chrome 30+, Opera 17+

1. Introduction

In this web page there is one web browser JavaScript feature support test: a feature implementation test. The implementation test determines if the web browser recognizes the JavaScript array destructuring syntax. The implementation test is a simple test for the presence of web browser support, and a definitive test for the absence of web browser support. If the web browser does not recognize the JavaScript array destructuring syntax, the implementation test reports: Fail (no support): The web browser does not recognize the JavaScript array destructuring syntax. The web browser does not support the JavaScript array destructuring syntax. If the web browser recognizes the JavaScript array destructuring syntax, the implementation test reports: Pass (at least partial/possibly full support): The web browser recognizes the JavaScript array destructuring syntax. The web browser at least partially/possibly fully supports the JavaScript array destructuring syntax. Positive determination of full web browser support is beyond the scope of this test.

The web browser support test source code is shown in Section 2.1. The web browser support test source code is run in Section 2.2, which shows the web browser support test result.

1.1. Array Destructuring Syntax Web Browser Support

  • Pass (at least partial/possibly full support): ED14+, FF38+, CH49+, OP36+.
  • Fail (no support): IE11-, SF5.1.7-.

1.2. Abbreviations

  • IE = Internet Explorer.
  • ED = Edge = EdgeHTML rendering engine (ED12+) and/or Edge browser (ED20+).
  • FF = Firefox.
  • SF = Safari.
  • CH = Chrome.
  • OP = Opera.

2. Array Destructuring Syntax Web Browser Support Test

2.1. Web Browser Support Test Source Code

<p id='testId'><b>Fail</b> (no support): The web browser does not recognize the JavaScript array destructuring syntax. The web browser does not support the JavaScript array destructuring syntax.</p><!-- Hard code Fail because web browser no support error stops JavaScript execution. -->

<script>
var arrayLiteralOne = [1, 2];
var [variableOne, variableTwo] = arrayLiteralOne; // Array literal variable as initializer.
var arrayLiteralTwo = [3, 4, null, undefined];
var [variableThree, variableFour = "variableFour default value not used", variableFive = "variableFive default value not used", variableSix = "variableSix default value used", variableSeven = "variableSeven default value used", variableEight] = arrayLiteralTwo; // Assign default value. Default value is used when initializer value is undefined or initializer value does not exist.
var [variableNine, variableTen] = [9, 10]; // Array literal as initializer.
[variableEleven, variableTwelve] = [11, 12]; // No var keyword. Do not place destructuring assignment statement inside ().
arrayLiteralThree = [9, 13, 5, 7, 14, 15, 16];
var [ , variableThirteen, , , variableFourteen] = arrayLiteralThree; // Ignore values. Empty placeholders not required to ignore any trailing initializer values.
var variableX = 1,
 variableY = 2;
[variableX, variableY] = [variableY, variableX]; // Swap values.
var arrayLiteralFour = [1, 2, 3, 4];
var [...clonedArray] = arrayLiteralFour; // Clone array to clonedArray array variable.
var [variableZ, ...restArray] = arrayLiteralFour; // Assign remaining array elements to restArray array variable.
if ((variableOne === 1) && (variableTwo === 2) && (variableThree === 3) && (variableFour === 4) && (variableFive === null) && (variableSix === "variableSix default value used") && (variableSeven === "variableSeven default value used") && (variableEight === undefined) && (variableNine === 9) && (variableTen === 10) && (variableEleven === 11) && (variableTwelve === 12) && (variableThirteen === 13) && (variableFourteen === 14) && (variableX === 2) && (variableY === 1) && clonedArray instanceof Array && Array.isArray(clonedArray) && (clonedArray.length === 4) && (clonedArray[0] === 1) && restArray instanceof Array && Array.isArray(restArray) && (restArray.length === 3) && restArray[0] === 2){
 var element = document.getElementById("testId");
 element.innerHTML = "<b>Pass</b> (at least partial/possibly full support): The web browser recognizes the JavaScript array destructuring syntax. The web browser at least partially/possibly fully supports the JavaScript array destructuring syntax. Positive determination of full web browser support is beyond the scope of this test.";
}
</script>

2.2. Web Browser Support Test Result

Fail (no support): The web browser does not recognize the JavaScript array destructuring syntax. The web browser does not support the JavaScript array destructuring syntax.


3. Resources And Additional Information