Код на CoffeeScript (прилагается сгенерированный Javascript).
31 запись с тегом "javascript"
Посмотреть все тегиJS: Сохраняем файл из консоли браузера
(function(console) {
console.save = function(data, filename){
if(!data) {
console.error('Console.save: No data')
return;
}
if(!filename) filename = 'console.html'
if(typeof data === "object"){
data = JSON.stringify(data, undefined, 4)
}
var blob = new Blob([data], {type: 'text/json'}),
e = document.createEvent('MouseEvents'),
a = document.createElement('a')
a.download = filename
a.href = window.URL.createObjectURL(blob)
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':')
e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
a.dispatchEvent(e)
}
})(console)
Использование:
console.save(data, filename)
TS: Передача аргументов в конструктор
// Старый подход...
class Person {
private first_name: string;
private last_name: string;
constructor(fname:string, lname:string) {
this.first_name = fname;
this.last_name = lname;
}
}
// Новый подход, позволяющий сократить код
class Person {
constructor( private first_name: string,
private last_name: string){}
}
HTML: Тег select с мультивыбором
// В атрибут value можно передать массив, что позволит выбрать несколько опций
// в теге select:
<select multiple={true} value={['Б', 'В']}
// Boolean attribute 'multiple' indicates that multiple options can be selected
// in the list. If it is not specified, then only one option can be selected at
// a time. When `multiple` is specified, most browsers will show a scrolling
// list box instead of a single line dropdown.
JS: .htaccess для react-router
# If you are using Apache as your web server, you can insert this into your .htaccess file:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
</IfModule>
# I am using react: "^16.12.0" and react-router: "^5.1.2" This method is the Catch-all and is probably the easiest way to get you started.
React: Установить цвет svg-иконки
import LockIcon from "../assets/lock.svg"
// and then render it as:
<LockIcon color={theme.colors.text.primary} />
// and then in lock.svg I just add fill="currentColor" in the svg tag.
Чтобы установить цвет иконки, указанный в пропсе color
, в SVG-файле lock.svg
, к тегу <svg>
добавляется атрибут fill="currentColor"
. Значение currentColor
означает, что цвет будет взят из текущего контекста, в данном случае он будет взят из переданного цвета color
для компонента LockIcon
. Таким образом, в итоге, иконка будет отображена с цветом, указанным в пропсе color
, благодаря использованию атрибута fill="currentColor"
в SVG-файле lock.svg
.
TS: Индексные типы
Индексные типы позволяют определить тип данных для ключей объекта, которые могут быть строками, числами, символами или определенным шаблоном строк.
JS: Присваивание с условием (&&=)
Оператор &&=
используется для присваивания значения переменной только в том случае, если текущее значение переменной является «истинным» (не false
, 0
, NaN
, null
, undefined
или пустой строкой).
TS: Кортежи
// Basic tuples
let myTuple: [ string, number, boolean? ];
myTuple = [ 'test', 42 ];
JS: Оператор объединения с null (??=)
Оператор ??=
в JavaScript называется оператором объединения с null
(nullish coalescing operator). Он используется для присваивания значения переменной только в том случае, если ее текущее значение равно null
или undefined
.
В общем виде, оператор ??=
выполняет следующее действие: если переменная была undefined
или null
, то присваивает ей указанное значение. В противном случае, если переменная уже имеет определенное значение, ничего не изменяется.