CoffeeScript для тех, кто может не знать, это язык, который компилируется в JavaScript. Сегодня я расскажу о десяти вещах, которые помогут вам при работе с CoffeeScript.
Совет 1: Значения.
Значки в CoffeeScript позволяют иметь функции, которые принимают переменное число аргументов. Вот пример:
mySplat = (args...) -> console.log "#{args.join()}" mySplat(1,2,3,4,5)
Выход:
1,2,3,4,5 |
Совет 2: Работа с
логическими значениями Для логических значений вы можете использовать on и yes, и они будут работать так же, как true , тогда как off и no обрабатываются как false . Вот пример того, что вы можете сделать:
lightSwitch = false if lightSwitch is off console.log 'Turn on the lights!' else console.log 'Turn off the lights!'
Выход:
Включить свет! |
Совет 3: экзистенциальный оператор
экзистенциальный оператор проверяет существование переменной. Вот пример:
myValue1 = 'Hello World' if myValue1? then console.log myValue1 # This next variable doesn't exist if myValue2? then console.log myValue2
Выход:
Привет мир |
Это также означает, что вы можете делать такие вещи:
class MyClass myFunction1: (val) -> console.log "You passed #{val} to myFunction1" myClass = new MyClass() myClass?.myFunction1(123) # This next function doesn't exist myClass.myFunction2?(123)
Поскольку myFunction2 не существует в MyClass, вы увидите только следующее (ошибок не возникает и т. Д.):
Вы передали 123 в myFunction1 |
Совет 4: Использование ‘in’ для проверки, содержится ли значение в массиве.
Используя ключевое слово in, вы можете быстро проверить, находится ли значение внутри массива. Вот пример:
foods = ['apple', 'orange', 'potatoe', 'strawberries'] if 'potatoe' in foods then console.log 'Found potatoe' if 'carrot' in foods then console.log 'Found carrot'
Выход:
Нашел картофель |
Совет 5: итерация объекта.
Я создам простой объект и покажу, как легко пройти по нему, получая ключи и значения.
dragon = level: 1 alignment: 'neutral' age: 'Youngling' attack: 'Fire' damage: '1d4' for key, val of dragon console.log "#{key}: #{val}"
Выход:
1-й уровень выравнивание: нейтральное возраст: молодой атака: огонь урон: 1d4 |
Совет 6: Классы
Класс очень прост. У меня есть существующая статья, на которую я буду ссылаться , но вот простой пример создания класса и использования конструкторов и наследования:
class Spaceship constructor: (@speed = 1, @spaceShipType = 'spaceship') -> console.log "New #{@spaceShipType} created with a speed of #{@speed}" move: () -> console.log "The #{@spaceShipType} is moving now at a speed of #{@speed}" class FlyingSaucer extends Spaceship constructor: -> super 5, 'Flying Saucer' useDeathRay: -> console.log "The flying saucer is using a death ray!" spcshp = new Spaceship() spcshp.move() flySaucr = new FlyingSaucer() flySaucr.move() flySaucr.useDeathRay()
Совет 7: Простой ярлык для «это»
Существует простой ярлык для этого , и это @ символ.
class MyClass constructor: (@greeting) -> console.log "You set the greeting as: #{@greeting}" greet: -> console.log "You said: #{@greeting}" myClass = new MyClass('Bonjour') myClass.greet()
Вы можете видеть, что @greeting доступен для функций класса.
Выход:
Вы устанавливаете приветствие как: Bonjour Вы сказали: Bonjour |
Совет 8: Значения по умолчанию
Используя вышеупомянутый класс, я могу фактически установить приветствие по умолчанию в конструкторе (или любой другой функции). Вот модифицированный пример, взятый сверху:
class MyClass constructor: (@greeting = 'Hola') -> console.log "You set the greeting as: #{@greeting}" greet: -> console.log "You said: #{@greeting}" myClass = new MyClass() myClass.greet()
Выход:
Вы устанавливаете приветствие как: Привет Вы сказали: Привет |
Совет 9: Блочные строки
Очень прост в использовании, и вам не нужно избегать кавычек или апострофов, как это сделано для вас.
markup = """ <form action="/" method="post"> <input type="submit" /> </form> """ console.log markup
Выход:
<form action = «/» method = «post»> <input type = «submit» /> </ Форма> |
Совет 10: Интерполяция строк.
Я уже использовал это в нескольких моих примерах. Все, что находится в двойных кавычках, будет проанализировано, поэтому вы можете встроить переменную следующим образом:
myValue = 'Hello World' console.log "You said: #{myValue}"
Вы также можете делать такие вещи:
val1 = 5; val2 = 7; console.log "Your answer for 5 * 7 is: #{val1 * val2}"
Выход:
Ваш ответ для 5 * 7: 35 |
Вы могли бы сделать это также:
console.log «Ваш ответ для 5 * 7: # {5 * 7}»