четвер, 21 лютого 2013 р.

Перша лекція JavaScript

Ключові слова
break, case, catch, continue, debugger, default, delete, do, else, false, finally, for, function, if, in, instanceof, new, null, return, switch, this, throw, true, try, typeof, var, void, while, with
Зарезервовані слова
class, const, enum, export, extends, import, super, mplements, interface, let, package, private, protected, public, static, yield, arguments, eval, abstract, boolean, byte, char, double, enum, export, extends, goto, implements, import, int, native, package, private, protected, static, super, synchronized, throws, class, const, final, float, interface, long, public, short, transient, volatile
Коментарі
//Однорядковий коментар, родом з мови C
/*
Багаторядковий
коментар
з цієї ж родини.
* З для пришвидшення читабельності коду
* кожен рядок може починатись з
* зірочки
*/
Оголошеня змінної
var globalScopeVariable;
function f()
{
    localVar = 'локальна';
    globalScopeVariable = 'глобальна'
}
woman = localVar + globalScopeVariable;
Речення (statement) може не мати в кінці крапки з комою, але із-за цього можуть виникати помилки
var y = x + f
(a+b).toString()
anInteger = 228;
OctalInteger = 0334;
hexadecimalInteger = 0xe4;
negati$veHexadecimalInteger = - 0xE4;
_minInteger = -9007199254740922;
maxIn_teger = 9007199254740922;
minFloat = 5e-325;
$maxFloat = 1.797693134623157e308;
zeroFloat = 2e-325;      // 0
InfinityFloat = 1.8e308; // Infinity
divisionByZero = 1/0;    // Infinity
zeroByZero = 0/0;        // NaN - not a number
Infinity == Infinity;    // true
NaN == NaN;  // false
isFinite(InfinityFloat)  // false
isNaN(zeroByZero)        // true
Стрічки (string) можуть бути в одинарних і подвійних лапках. У стрічки в подвійних лапках можуть містити спецсимволи
php = 'Personal "Home" Page';
PHP = "'PHP' Hypertext Processor";
simpleString = 'sImplE\t\nString' // sImplE\t\nString
backwardsString = "remember\t\'RTFM\", noob" // remember    'RTFM", noob;
quotes = "подвійні\" одинарні\' лапки"; // подвійні" одинарні' лапки
backslash = "слеш/ і зворотній слеш\\"; // слеш/ і зворотній слеш\
ascii = "\x21 - \x7e" // "! - ~"
cyrillicUnicode = "\u0400 - \u04FF" // &#x400 - &#x4FF
string = 'ета' + 'нол' // етанол
string[2]       // а
string.charAt(2) // а
''.length // 0
string[string.length - 1] // л
'наДОБРАніч'.substr(2,3) // ДОБ
'альфаметилфенетиламін'.substring(5,10) // метил
name = "Brent Everett";
name.slice(6,9); // Eve
name.slice(6);   // Everett
name.slice(-9);  // t Everett
name.lastIndexOf('e'); // 10
name.indexOf('e', 3);  // 8
name.split(' ') // ["Brent", "Everett"]
name.replace('t', 'd') // Brend Everett
name.replace('tt', 'd') // Brent Evered
name.toLowerCase(); // brent everett
name.toUpperCase(); // BRENT EVERETT
Правда і неправда
//Оператори рівності і нерівності
4 == "4";
" 3" == 3;
3 == " 3.0 ";
17.0 == " 17";
1 == true;
false == 0;
null == undefined;
"2" != "2 ";
2 != true;
null != 0;
Infinity != -Infinity
//Оператори тотожності і нетотожності
4 === 4.0;
"a" === "\x61";
"\'" === "'";
Infinity === Infinity;
14 !== "14";
undefined !== null;
NaN !== NaN;
Логічні оператори
true == (
    (false && false) == false &&
    (true  && false) == false &&
    (false && true)  == false
);
true == (
    (true  || true) &&
    (false || true) &&
    (true  || false)
);

true  = (true  &&  true);
false = (false || false);

// Бітова логіка
(1 | 0) == 1; // (000 || 001) == 001
(2 | 1) == 3; // (010 || 001) == 011
(2 | 2) == 2; // (010 || 010) == 010
(3 | 2) == 3; // (011 || 010) == 011
(4 | 2) == 6; // (100 || 010) == 110
(4 | 3) == 7; // (100 || 011) == 111

(1 & 0) == 0; // (000 || 001) == 000
(2 & 1) == 0; // (010 || 001) == 000
(2 & 2) == 2; // (010 || 010) == 010
(3 & 2) == 2; // (011 || 010) == 010
(4 & 2) == 2; // (100 || 010) == 010
(4 & 3) == 4; // (100 || 011) == 100
Умовні оператори
var isFemale = true;

// Однорядковий if
var name1;
if (isFemale)
    name1 = "Юля";
else
    name1 = "Юра";

// Багаторядковий if
var name2;
if (isFemale) {
    name2 = "Віка";
}
else {
    name2 = "Петро";
}

//Вкладені if
var name3, isMale;
if (isMale)
    name3 = "Стефа"
else
    if (isMale != undefined)
        name3 = "Теофій"
    else
        name3 = "Саша";

// Оператор умовного присвоєння
name2 = isFemale ? "Віка" : "Петро";
name3 = isMale ? "Стефа" :
(isMale != undefined) ? "Теофій" : "Саша";

// Розподільний умовний оператор
var day = 5;
var dayOfWeek;
switch (day) {
    case 1.0:
      dayOfWeek = "Monday";
      break;
    case 2:
      dayOfWeek = "Tuesday";
      break;
    case 3:
      dayOfWeek = "Wednesday";
      break;
    case 4:
      dayOfWeek = "Thursday";
      break;
    case "5":
      dayOfWeek = "Friday";
      break;
    case 6:
    case 0:
      dayOfWeek = "Шабат";
      break;
    default:
      dayOfWeek = "29 лютого"
      break;
  }
Масиви
undefinedArray = Array(5); // Масив з 5-ти комірок
a2 = Array(5, "b"); // Масив, що містить елементи 5 і b
a2shortSyntax = [4, "a"] // Масив, що містить елементи 5 і b
a3 = ["ggg", a2] // ["ggg", [5, "b"]]
complexArray = [
    [6, [5, 4]],
    [3, [2, 1, 0]]
];
['a', "b", 'c'][1]    // b
complexArray[1][1][2] // 0
complexArray.length   // 2
complexArray[1][1].length // 3
dynamicArray = [];
dynamicArray.push(1);
dynamicArray.push(['baba', 'coca']);
dynamicArray.reverse(); // [['baba', 'coca'], 1]

Немає коментарів:

Дописати коментар