var cont = document.getElementById('rs') var ln = `\n` var line = `\n${'#'.repeat(64)}\n` var maxArgs = function(first, second){ cont.textContent += line cont.textContent += ln + `first === arguments[0]: ` + (first === arguments[0]) cont.textContent += ln + `second === arguments[1]: ` + (second === arguments[1]) first = "c"; second = "d"; cont.textContent += ln + `first === arguments[0]: ` + (first === arguments[0]) cont.textContent += ln + `second === arguments[1]: ` + (second === arguments[1]) } var mixArgs = function(first, second){ "use strict" cont.textContent += line cont.textContent += ln + `first === arguments[0]: ` + (first === arguments[0]) cont.textContent += ln + `second === arguments[1]: ` + (second === arguments[1]) first = "c"; second = "d"; cont.textContent += ln + `first === arguments[0]: ` + (first === arguments[0]) cont.textContent += ln + `second === arguments[1]: ` + (second === arguments[1]) } var makeReq = function(url, timeout, callback){ timeout = timeout || 2000; callback = callback || function(){}; cont.textContent += line cont.textContent += `#makeReq()` cont.textContent += ln + `url: ${url}` cont.textContent += ln + `timeout: ${timeout}` cont.textContent += ln + `callback: ${callback}` } var makeRequest = function(url, timeout = 2000, callback = function(){}){ cont.textContent += line cont.textContent += `#makeRequest()` cont.textContent += ln + `url: ${url}` cont.textContent += ln + `timeout: ${timeout}` cont.textContent += ln + `callback: ${callback}` } var getTimeout = function(val = 0){ cont.textContent += line cont.textContent += `#getTimeout()` return val + 5 } var echoPrimitive = function(url, timeout = getTimeout()){ cont.textContent += line cont.textContent += `#echoPrimitive()` cont.textContent += ln + `url: ${url}` cont.textContent += ln + `timeout: ${timeout}` } maxArgs( "a", "b") mixArgs( "a", "b") makeReq("/foo") makeReq("/foo", 500) makeReq("/foo", 500, function(body){ cont.textContent += `makeReq("${body}")` }) makeRequest("/foo") makeRequest("/foo", 500) makeRequest("/foo", 500, function(body){ cont.textContent += `makeRequest("${body}")` }) echoPrimitive("/foo") var add = function(first, second = first){ cont.textContent += line cont.textContent += `#add()` cont.textContent += ln + `first: ${first}` cont.textContent += ln + `second: ${second}` } var addTDZ = function(first = second, second){ // temporal dead zone cont.textContent += line cont.textContent += `#addTDZ()` cont.textContent += ln + `first: ${first}` cont.textContent += ln + `second: ${second}` } add(3) add(3, 5) addTDZ(3) addTDZ(3, 5) // Error
<pre id="rs"></pre>