#Верстка
http://htmlbook.ru/samlayout/tipovye-makety/fiksirovannyi-dvukhkolonochnyi-maket
Для его создания есть 3 способа:
- Использование позиционирования(position)
// http://javascript.crockford.com/prototypal.html | |
// базовый вариант наследования предложенный Дугласом Крокфордом | |
function object(o) { | |
function F() {} | |
F.prototype = o; | |
return new F(); | |
} | |
// ECMASсript 3 | |
// продвинутый вариант того что предложил Дуглас Крокфорд |
<!-- create combobox from enum--> | |
<prism:PrismView.Resources> | |
<!--для биндинга к Enum--> | |
<ObjectDataProvider MethodName="GetValues" | |
ObjectType="{x:Type sys:Enum}" | |
x:Key="WriterEnumDataProvider"> | |
<ObjectDataProvider.MethodParameters> | |
<x:Type TypeName="local:WriterEnum" /> | |
</ObjectDataProvider.MethodParameters> | |
</ObjectDataProvider> |
#Верстка
http://htmlbook.ru/samlayout/tipovye-makety/fiksirovannyi-dvukhkolonochnyi-maket
Для его создания есть 3 способа:
// проверка на NaN | |
/* | |
NaN является | |
единственным JavaScript-значением, которое считается | |
неравным самому себе, вы всегда можете протестировать | |
переменную на значение NaN путем проверки ее на нера- | |
венство самой себе: | |
*/ | |
function isReallyNaN(x) { | |
return x !== x; |
// http://youtu.be/q7KfOnuINmo | |
// пока есть активный таймер LibUV не может завершить процесс | |
// в видео описанны способы как 'убить' таймеры | |
console.log(process.memoryUsage()); | |
// 1. Влияние на процесс: ref/unref | |
// 2. process.nextTick(f) это setTimeout(f, 0) ДО I/O (событий ввода-вывода) | |
// 3. setImmediate(f) это setTimeout(f, 0) ПОСЛЕ I/O |
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call | |
function Product(name, price) { | |
this.name = name; | |
this.price = price; | |
if (price < 0) | |
throw RangeError('Cannot create product ' + | |
name + ' with a negative price'); | |
return this; | |
} |
{ | |
//[twitter] https://github.com/twitter/plumage.js/blob/master/.jshintrc | |
"boss": true, | |
"node": true, //глобальные переменные node | |
"browser": true, //глобальные переменные современных браузеров | |
"esnext": true, //говорит что код использует фишки следующей спецификации JS(в нашем случае EcmaScript 6) | |
"bitwise": true, //запрещает использовать побитовые операции ^(XOR) и I(OR) | |
"curly": true, //везде фигурные скобки | |
"eqeqeq": true, //везде строгое сравнение - === | |
"immed": true, //обязывает оборачивать моментально вызываемые функции в скобки |
{ | |
"boss": true, | |
"node": true, | |
"browser": true, | |
"esnext": true, | |
"bitwise": true, | |
"curly": true, | |
"eqeqeq": true, | |
"immed": true, | |
"indent": 2, |
#!/bin/bash | |
# Pre-commit Git hook to run JSHint on JavaScript files. | |
# | |
# If you absolutely must commit without testing, | |
# use: git commit --no-verify | |
filenames=($(git diff --cached --name-only HEAD)) | |
which jshint &> /dev/null | |
if [ $? -ne 0 ]; |
<?xml version="1.0"?> | |
<Options xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | |
<Enabled>true</Enabled> | |
<ErrorCategory>Error</ErrorCategory> | |
<TODOEnabled>false</TODOEnabled> | |
<TODOCategory>Task</TODOCategory> | |
<RunOnBuild>true</RunOnBuild> | |
<CancelBuildOnError>true</CancelBuildOnError> | |
<JSLintOptions> | |
<BoolOptions2> |