, 5 Go, , . Go . , , , Go.
, Go. , , , , .

, Go JavaScript, Go. , . , JavaScript, , .
JavaScript . - , . . JavaScript , . . JS .
var sb = new ArrayBuffer(4)
var intArr = new Int32Array(sb)
intArr[0] = 1 << 16
// 65536
intArr[0]
// 65536
— , : . , .
, JavaScript , . 
Int32Array Int16Array, , , :
var sb = new ArrayBuffer(4)
var intArr = new Int32Array(sb)
intArr[0] = 1 << 16
// 65536
intArr[0]
// 65536
//      
var shortArray = new Int16Array(sb)
shortArray[0]
// 0
shortArray[1]
// 1
: « , ? — , ?». : «, . ».
. , , , , :
var shortArr = new Int16Array(1)
var c = shortArr[0] = 1 << 15 // :   
c == shortArr[0]
// false
shortArr[0]
// -32768
c
// 32768
, JavaScript, , , .
(
%) . , :
3.14 % 5
// 3.14
13.14 % 5
// 3.1400000000000006
, , , « ». , . JavaScript :
[-2, -7, 0.0000001, 0.0000000006, 6, 10].sort()
// [-2, -7, 10, 1e-7, 6, 6e-10]
       :
(1,2,3,4,5,6) === (2,4,6)
true
, , , . . , , , . JavaScript , :
var a = "41"
a += 1
// 411, , , .
var b = "41"
b -=- 1
// 42,           
, ( ). , , 0, — 1. , , , .
, JavaScript — , , . , JavaScript Twitter.
, 
??, 
:
~~!![[]]||__``&&$$++<<((""??''))**00==ಠಠ--//\\
// 1
banana? 
:
('b'+'a'++'a'+'a').toLowerCase()
// Uncaught SyntaxError: Invalid left-hand side expression in postfix operation
('b' + 'a' + + 'a' + 'a').toLowerCase()
// "banana"
«»? JavaScript 
:
//   -   
input ?? obj?.key ? 'yes' : 'no'
— . 
. JavaScript , 
:
var re = /a/g
re.test('ab')
// true
re.test('ab')
// false
re.test('ab')
// true
JS . :
{property: "value"} && {property: "value"}
// {property: "value"}
Date() && Date()
// "Wed Apr 1 2020 00:01:00 GMT+0100 (Central European Standard Time)"
Date() && {property: "value"}
// {property: "value"}
{property: "value"} && Date()
// Uncaught SyntaxError: Unexpected token '&&'
, :
typeof([1][0])
// number
for(let i in [1]){console.log(typeof(i))}
// string
, . , , :
const x={
  i: 1,
  toString: function(){
    return this.i++;
  }
}
if(x==1 && x==2 && x==3){
  document.write("This will be printed!")
}
, JavaScript-, , DOM:
document.all
// HTMLAllCollection(359) [html.inited, head, …]
document.all == true
// false
document.all == false
// false
. , . - — .
. JS-:
(function({substr}){return substr.call})("")
// function call()
var x = (function({substr}){return substr.call})("")
// undefined
x.name
// "call"
x + ""
// "function call() {
//     [native code]
// }"
typeof x
// "function"
x("this is a string")
// TypeError: Function.prototype.call called on incompatible undefined
:
(function(){return this}.call(1)) == (function(){return this}.call(1))
// false
:
, , -, , JavaScript.
, , , : .
JavaScript , , , — , , , . , , , JavaScript .
JavaScript Go — 
, 3:
for (i = 1; i <= 2; ++i) {
  setTimeout(function(){
    console.log(i);
  }, 0);
}
, , , :
console.log(0)
setTimeout(_ => console.log(1), 0)
requestAnimationFrame(_ => console.log(2))
Promise.resolve().then(_ => console.log(3))
console.log(4)
// 0
// 4
// 3
// 2
// 1
, , , «-», «-» , .
, , JavaScript. ?
, . 
codediodeio.
//         :
const start = Date.now();
function log(v){console.log(`${v} \n Elapsed: ${Date.now() - start}ms`);}
//    ,   
function doWork(){
  for(let i = 0; i < 1000000000; i++); //      
  return 'work done';
}
log('before work');
doWork();
log('after work');
// before work
//  Elapsed: 0ms
// after work
//  Elapsed: 624ms
, .
:
function doWork(){
  return new Promise((resolve, reject) => {
    for(let i = 0; i < 1000000000; i++);
    resolve('work done');
  })
}
log('before work');
doWork().then(log);
log('after work');
// before work
//  Elapsed: 0ms
// after work
//  Elapsed: 637ms
// work done
//  Elapsed: 637ms
. - , , , «-», , . , «-»:
function doWork(){
  //  `resolve`        
  return Promise.resolve().then(v =>  {
    for(let i = 0; i < 1000000000; i++);
    return 'work done';
  })
}
log('before work');
doWork().then(log);
requestAnimationFrame(()=>{log('time to next frame')});
log('after work');
// before work
//  Elapsed: 0ms
// after work
//  Elapsed: 1ms
// work done
//  Elapsed: 631ms
// time to next frame
//  Elapsed: 630ms
, , . . . , , - , , , .
— - , - : , JavaScript, . , async/await , . , . , , , 
fetch. , , .
? 
- — . — , JavaScript .
- : , , , — , , 
postMessage. . , , 
MDN. ? , , — , . , 
, . — 
?
JavaScript , , , . ? . 
postMessage MessageChannel ( 
chan), . , « », , . .
- , - , , , - - , 
SharedArrayBuffer. , , 
. 
Mutex, 
select, 
WaitGroup. — (
 ). ? API , 
!
, , ‽ ( — , JavaScript).
JavaScript — , , : , , . , JS , - , , « ». , JavaScript, . ?
! JavaScript , ?
