29 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Semicolons | |||
|  | localeTitle: Точка с запятой | |||
|  | --- | |||
|  | Точки с запятой не требуются в Javascript. Это связано с тем, что Javascript имеет функцию «Automatic Semicolon Insertion» или ASI для краткости. ASI помещает точки с запятой в ваш Javascript для вас. Он всегда активен по умолчанию, и он является частью языка и не может быть отключен. | |||
|  | 
 | |||
|  | ASI имеет набор правил, которые он использует, чтобы определить, где он должен вставить точки с запятой. Если уже имеется точка с запятой, это ничего не изменит. См. [Этот ответ StackOverflow](http://stackoverflow.com/a/2846298/3467946) для получения дополнительной информации о том, как работает ASI. | |||
|  | 
 | |||
|  | Существует только один случай, когда ASI завершается с ошибкой: когда строка начинается с открывающей скобки `(` Чтобы избежать этой ошибки, когда линия начинается с открывающей скобки, вы можете положить точку с запятой в начале строки с открытой скобой : | |||
|  | 
 | |||
|  | ```js | |||
|  | ;(function() {  | |||
|  |   console.log('Hi!')  | |||
|  |  })  | |||
|  | ``` | |||
|  | 
 | |||
|  | Обратите внимание, что это необходимо только в том случае, если вы не используете точки с запятой. | |||
|  | 
 | |||
|  | Согласованный стиль кодирования делает код более читаемым. Решите, будете ли вы или не будете использовать точки с запятой, и делайте это везде. | |||
|  | 
 | |||
|  | ## Ошибки, которые могут возникнуть
 | |||
|  | 
 | |||
|  | Когда Javascript был впервые создан, он призван помочь начинающим программистам. Никто не хочет искать дэн-двоеточие в своем коде, когда они начинают программировать. Таким образом, выбор полуколонок был реализован, как указано выше, они технически существуют. | |||
|  | 
 | |||
|  | Например: `javasctipt function foo(x) { return function(y) { return x + y; } } let z = foo(10); z(10)// TypeError z is not a function // Because of Automatic Semicolon Insertion, our inner function does not exist.` Javasctipt будет реализовывать полуколоны, где они ожидаются. | |||
|  | 
 | |||
|  | ### Другие источники
 | |||
|  | 
 | |||
|  | [Открытое письмо лидерам JavaScript в отношении точек с запятой](http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding) |