ES6
вводит переменные Let
, которые возникают с block level scoping
. До ES5
у нас не было block level scoping
, поэтому переменные, объявленные внутри блока, всегда hoisted
отображаются на уровне уровня функции.
В основном Scope
ссылается на то, где в вашей программе ваши переменные видны, что определяет, где вам разрешено использовать объявленные вами переменные. В ES5
имеем global scope,function scope and try/catch scope
, с ES6
мы также получаем оценку уровня блока, используя Let.
var
, она известна всей функцией с момента ее определения. let
, это только известный в блоке, который он определен. function doSomething(arr){
//i is known here but undefined
//j is not known here
console.log(i);
console.log(j);
for(var i=0; i<arr.length; i++){
//i is known here
}
//i is known here
//j is not known here
console.log(i);
console.log(j);
for(let j=0; j<arr.length; j++){
//j is known here
}
//i is known here
//j is not known here
console.log(i);
console.log(j);
}
doSomething(["Thalaivar", "Vinoth", "Kabali", "Dinesh"]);
Если вы запустите код, вы увидите, что переменная j
известна только в loop
, а не до и после. Тем не менее наша переменная i
известна в entire function
с момента ее определения вперед.
Существует еще одно большое преимущество использования let, поскольку оно создает новую лексическую среду, а также связывает свежую ценность, а не сохраняя старую ссылку.
for(var i=1; i<6; i++){
setTimeout(function(){
console.log(i);
},1000)
}
for(let i=1; i<6; i++){
setTimeout(function(){
console.log(i);
},1000)
}
Первый цикл for
всегда печатает значение last , при этом let
он создает новую область и связывает новые значения с нами 1, 2, 3, 4, 5
.
Подойдя к constants
, он работает в основном как let
, единственное отличие в том, что их значение не может быть изменено. В константах допускается мутация, но переназначение не разрешено.
const foo = {};
foo.bar = 42;
console.log(foo.bar); //works
const name = []
name.push("Vinoth");
console.log(name); //works
const age = 100;
age = 20; //Throws Uncaught TypeError: Assignment to constant variable.
console.log(age);
Если константа относится к object
, она всегда будет ссылаться на object
, но сама object
может быть изменена ( если он изменен). Если вам нравится иметь неизменяемый object
, вы можете использовать Object.freeze([])
См. этот ответ
При использовании приложения Docker для Mac, похоже, что контейнеры хранятся в виртуальной машине, расположенной по адресу:
~ / Библиотека / Контейнеры / com.docker.docker / Данные / com.docker.driver.amd64-linux / Docker.qcow2
blockquote>
Я бы сказал, что файл:
/var/run/docker.sock
на самом деле у:
/Volumes/{DISKNAME}/var/run/docker.sock
Если вы запустите это, он должен это доказать, если ваш виртуальный бокс 5.2.8 или более поздняя версия, а ресурс для /Volumes
настроен на автоматическую установку и постоянный И вы создали стандартную докер-машину в то время, когда на этой версии Virtualbox:
#!/bin/bash
docker run -d --restart unless-stopped -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock portainer/portainer \
--no-auth
Затем, выберите Portainer по адресу: 192.168.99.100:9000 или localhost: 9000
Этот путь происходит от хоста Docker (а не от MacOS) до тех пор, пока «Docker for Mac Application» не существует, где находится виртуальная виртуальная машина VirtualBox «по умолчанию» и внутри этой виртуальной машины указанный путь существует (наверняка), теперь в «Docker for Mac» Приложение «раз есть изображение Docker.qcow2, которое представляет собой qemu base vm. Чтобы прыгать внутри этого пути VM @ mik-jagger в порядке (но есть еще несколько)
Как упоминалось в приведенных выше ответах, вы найдете его в: screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
Как только вы запустите tty, вы можете перейти к /var/lib/docker
exit
и logout
не будут работать.
– thomaskonrad
30 March 2018 в 21:23
screen -ls
. Если вы уже отсоединились, запустите screen -X quit
. Если у вас несколько сеансов экрана, вам нужно -S
указать имя сеанса. Если вы не отсоединились, нажмите ctrl + a,:, q, u, i, t, ENTER. Эти два просто запускают команду завершения экрана в сеансе.
– dosentmatter
4 April 2018 в 09:09