\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{vizman} \pdfinfo{ /Title (kurs-js-javascript-i-wszystko-jasne.pdf) /Creator (Cheatography) /Author (vizman) /Subject (Kurs JS - JavaScript. I wszystko jasne Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{779AA3} \definecolor{LightBackground}{HTML}{F6F8F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Kurs JS - JavaScript. I wszystko jasne Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{vizman} via \textcolor{DarkBackground}{\uline{cheatography.com/49699/cs/13788/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}vizman \\ \uline{cheatography.com/vizman} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 18th December, 2017.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Wartości, zmienne i kontrola sterowania}} \tn % Row 0 \SetRowColor{LightBackground} \textbackslash{}n & Znak nowego wiersza \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} typeof & tworzy wartość łańcuchową reprezentującą typ podanej mu wartości. \tn % Row Count 5 (+ 4) % Row 2 \SetRowColor{LightBackground} 3 \textgreater{} 2 & jeden ze sposobów na uzyskanie wartości true \tn % Row Count 7 (+ 2) % Row 3 \SetRowColor{white} "Z" \textless{} "a" & Wielkie litery są zawsze „mniejsze" od małych. Porównywanie znaków odbywa się na podstawie standardu Unicode \tn % Row Count 12 (+ 5) % Row 4 \SetRowColor{LightBackground} 5e2 & 500 \tn % Row Count 13 (+ 1) % Row 5 \SetRowColor{white} \{\{literal\}\}Math.max(2, 4) & przyjmuje dowolną liczbę wartości liczbowych i zwraca największą z nich \tn % Row Count 17 (+ 4) % Row 6 \SetRowColor{LightBackground} prompt(text, defaultText) & Pierwszy argument zawiera pytanie, a drugi tekst, który zostanie wstępnie wyświetlony w polu tekstowym na odpowiedź. Gdy użytkownik wpisze jakiś tekst w oknie, funkcja zwróci go jako łańcuch. \tn % Row Count 26 (+ 9) % Row 7 \SetRowColor{white} null == undefined & true \tn % Row Count 28 (+ 2) % Row 8 \SetRowColor{LightBackground} false == 0 & true \tn % Row Count 29 (+ 1) % Row 9 \SetRowColor{white} "" == 0 & true \tn % Row Count 30 (+ 1) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Wartości, zmienne i kontrola sterowania (cont)}} \tn % Row 10 \SetRowColor{LightBackground} "5" == 5 & true \tn % Row Count 1 (+ 1) % Row 11 \SetRowColor{white} null === undefined & false \tn % Row Count 3 (+ 2) % Row 12 \SetRowColor{LightBackground} "5" === 5 & false \tn % Row Count 4 (+ 1) % Row 13 \SetRowColor{white} NaN == NaN & false \tn % Row Count 5 (+ 1) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{//komentarz calego wiersza} \tn % Row Count 6 (+ 1) % Row 15 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{/* stanowi początek komentarza, który kończy się ciągiem */} \tn % Row Count 8 (+ 2) % Row 16 \SetRowColor{LightBackground} isNaN(value) & Sprawdza czy wartość nie jest liczbą \tn % Row Count 10 (+ 2) % Row 17 \SetRowColor{white} Number(object)\{\{nobreak\}\} & konwertuje różne wartości na liczby \tn % Row Count 12 (+ 2) % Row 18 \SetRowColor{LightBackground} x || y & Jest to łatwy sposób na zdefiniowanie wartości „awaryjnej". najpierw sprawdza wartość znajdującą się po jego lewej stronie. Jeśli w wyniku konwersji tej wartości na typ logiczny otrzyma true, zwraca tę wartość znajdującą się po jego lewej stronie. W przeciwnym przypadku zwraca wartość znajdującą się po prawej. \tn % Row Count 26 (+ 14) % Row 19 \SetRowColor{white} x \&\& y & Gdy po jego lewej stronie znajduje się wartość dająca false po konwersji na typ logiczny, zwraca tę wartość. W przeciwnym przypadku zwraca wartość znajdującą się po prawej. \tn % Row Count 34 (+ 8) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Wartości, zmienne i kontrola sterowania (cont)}} \tn % Row 20 \SetRowColor{LightBackground} x == 0 ? a : b & Jeśli warunek x==0 daje wartość {\bf{true}} wykonywane jest {\bf{a}}. W przeciwnym wypadku {\bf{b}} \tn % Row Count 4 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Funkcje - deklaracja}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{function add(a, b) \{ \newline return a + b; \newline \} \newline \newline console.log(add(2, 2)); \newline \newline {\bf{lub}} \newline \newline var add = function(a, b) \{ \newline return a + b; \newline \}; \newline \newline console.log(add(2, 2)); \newline \newline {\bf{arguments.length}} - zwraca liczbę argumentów funkcji. \newline {\bf{arguments{[}i{]}}} - odnosi się do {\bf{i}} argumentu.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Ta funkcja przyjmuje zmienną {\bf{add}}. Jej argumenty nazywają się {\bf{a}} i {\bf{b}}. Instrukcja {\bf{return a + b;}} stanowi treść właściwą tej funkcji. Gdy zostaje wykonana instrukcja {\bf{return}}, sterowanie jest przekazywane na zewnątrz funkcji do miejsca, w którym ta funkcja została wywołana i wartość zwrotna zostaje przekazana do kodu, który to wywołanie wykonał. Jeśli za instrukcją return nie ma żadnego wyrażenia, funkcja zwraca wartość {\bf{undefined}}.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Funkcje - deklaracja zmiennych}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{o tym, które zmienne są widoczne w funkcji decyduje położenie tej funkcji w tekście programu. W funkcji widoczne są wszystkie zmienne, które zostały zdefiniowane „nad" jej definicją, czyli zarówno zdefiniowane w funkcjach ją zawierających jak i w głównym środowisku programu. Ta zasada określania dostępności zmiennych nazywa się leksykalnym określaniem {\bf{zakresu}}.% Row Count 8 (+ 8) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Struktury danych: obiekty i tablice}} \tn % Row 0 \SetRowColor{LightBackground} \{\{literal\}\}text.length & Każdy łańcuch ma własność o nazwie length, która odnosi się do liczby oznaczającej, z ilu znaków ten łańcuch się składa. \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} text{[}"length"{]}\{\{literal\}\} & Pierwszy z przedstawionych rodzajów zapisu jest skrótem pierwszego i można go stosować tylko wtedy, gdy nazwa własności mogłaby być poprawną nazwą zmiennej ― nie zawiera spacji ani znaków specjalnych oraz nie zaczyna się od cyfry. \tn % Row Count 17 (+ 11) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Obiekty - deklaracja i pętle}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{var car = \{type:"Fiat", model:"500", color:"white"\}; \newline \newline var person = \{ \newline firstName:"John", \newline lastName:"Doe", \newline age:50, \newline eyeColor:"blue" \newline \}; \newline \newline // pętla wyświetlająca wszystkie własności obiektu person \newline \newline for (var x in person) console.log(x);} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Obiekty - operacje}} \tn % Row 0 \SetRowColor{LightBackground} delete person.age;\{\{literal\}\} & Słowo kluczowe delete usuwa własności. Próba odczytu nieistniejącej własności powoduje zwrócenie wartości undefined. \tn % Row Count 7 (+ 7) % Row 1 \SetRowColor{white} \{\{literal\}\}person.nowaWlasnosc = "nowaWartosc" & Jeżeli operator = zostanie użyty do ustawienia własności, która jeszcze nie istnieje, to taka własność zostanie utworzona i dodana do obiektu. \tn % Row Count 15 (+ 8) % Row 2 \SetRowColor{LightBackground} "age" {\bf{in}} person & Do sprawdzenia czy obiekt ma określoną własność służy operator {\bf{in}}. Zwraca on wartość logiczną. \tn % Row Count 21 (+ 6) % Row 3 \SetRowColor{white} var object2 = object1 & Jeśli zmienimy wartość object1, zmienia się również wartość object2, w przeciwieństwie do np. liczb czy stringów. \tn % Row Count 28 (+ 7) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Tablice}} \tn % Row 0 \SetRowColor{LightBackground} let arr = new Array(x); & tworzy nową tablicę o długości {\bf{x}}, wypełnioną wartościami {\bf{undefined}}. \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} tablica{[}i{]} = x\{\{literal\}\} & Dodanie do tablicy w miejsce o indeksie {\bf{i}} wartości {\bf{x}}. \tn % Row Count 9 (+ 4) % Row 2 \SetRowColor{LightBackground} tablica.push(x)\{\{literal\}\} & Dodanie wartosci {\bf{x}} na koniec tablicy. Przypisanie do zmiennej {\bf{tablica}} powoduje błąd. \tn % Row Count 14 (+ 5) % Row 3 \SetRowColor{white} tablica.pop() & Usuwa i zwraca ostatnią wartość tablicy. Tablica będzie pozbawiona ostatniego elementu. Komenda będzie miała wartość usuniętego elementu jeśli przypisze się ją do zmiennej. \tn % Row Count 24 (+ 10) % Row 4 \SetRowColor{LightBackground} tablica.join(" ") & Tworzy pojedynczy długi łańcuch z tablicy łańcuchów. Parametr jej wywołania jest wstawiany między wartościami tablicy. \tn % Row Count 31 (+ 7) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Tablice (cont)}} \tn % Row 5 \SetRowColor{LightBackground} tablica.length = n; & Zmienia ilość elementów w tablicy na {\bf{n}}. \tn % Row Count 3 (+ 3) % Row 6 \SetRowColor{white} tablica.sort() & Sortuje tablicę. \tn % Row Count 4 (+ 1) % Row 7 \SetRowColor{LightBackground} tablica.reverse() & Odwraca kolejność elementów w tablicy. \tn % Row Count 7 (+ 3) % Row 8 \SetRowColor{white} \seqsplit{tablica.sort(function(a}, b)\{return a-b\}); & Sortowanie rosnąco liczb. \tn % Row Count 10 (+ 3) % Row 9 \SetRowColor{LightBackground} \seqsplit{tablica.map(function} (x)\{return modyfikacja\_x\})\{\{literal\}\} & Metoda tworzy nową tablicę zawierającą wyniki wywoływania podanej funkcji dla każdego elementu wywołującej tablicy. Nie modyfikuje tablicy, na której jest wywołany. \tn % Row Count 19 (+ 9) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Stringi - operacje na stringach}} \tn % Row 0 \SetRowColor{LightBackground} "String".toUpperCase()\{\{literal\}\} & Własność ta zwraca kopię łańcucha, w której wszystkie litery są wielkie. \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \seqsplit{"String".toLowerCase()} & Własność ta zwraca kopię łańcucha, w której wszystkie litery są małe. \tn % Row Count 8 (+ 4) % Row 2 \SetRowColor{LightBackground} "String".split(" ") & Metoda ta tnie łańcuch na fragmenty, które zapisuje w elementach tablicy, a jako znaku podziału używa łańcucha przekazanego jej jako argument. {\bf{By zapamiętać utworzoną tablicę należy przypisać ją do zmiennej}}. \tn % Row Count 20 (+ 12) % Row 3 \SetRowColor{white} "String".charAt(i) & Zwraca znak z pozycji o indexie {\bf{i}}. Dla nieistniejącego znaku zwraca {\bf{""}}. \tn % Row Count 24 (+ 4) % Row 4 \SetRowColor{LightBackground} "String".slice(i,z) & Metoda ta kopiuje fragment łańcucha zaczynając od miejsca określonego liczbowo w pierwszym argumencie i kończąc przed znakiem znajdującym się na pozycji wyznaczonej przez drugi argument (tez znak nie jest wliczany). Dla nieistniejącego znaku ignoruje tę część, która nie istnieje. Metoda {\bf{slice}}, gdy przekaże się jej tylko jeden argument zwraca część łańcucha od określonej w tym argumencie pozycji do końca. \tn % Row Count 46 (+ 22) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Stringi - operacje na stringach (cont)}} \tn % Row 5 \SetRowColor{LightBackground} "String".indexOf( searchvalue, start)\{\{literal\}\} & Zwraca index pozycji pierwszego pojawienia się szukanego ciągu znaków. Jeśli nie znajdzie, zwraca {\bf{-1}}. \tn % Row Count 6 (+ 6) % Row 6 \SetRowColor{white} "String".trim() & Usuwa spacje z obu stron. Trzeba przypisac do zmiennej. \tn % Row Count 9 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Obiekty - data}} \tn % Row 0 \SetRowColor{LightBackground} var now = new Date()\{\{literal\}\} & Zostanie utworzony obiekt zawierający bieżącą datę i godzinę \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{var when = new Date(year, month, day, hours, minutes, seconds, milliseconds)} \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} now.getFullYear()\{\{literal\}\} & Zwraca rok. \tn % Row Count 7 (+ 2) % Row 3 \SetRowColor{white} now.getMonth() & Zwraca miesiąc (0-11). \tn % Row Count 9 (+ 2) % Row 4 \SetRowColor{LightBackground} new.getDay() & Zwraca dzień tygodnia (0-6). \tn % Row Count 11 (+ 2) % Row 5 \SetRowColor{white} new.getDate() & Zwraca dzień miesiąca (1-31). \tn % Row Count 13 (+ 2) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{new.getHours()} \tn % Row Count 14 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{new.getMinutes()} \tn % Row Count 15 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{new.getSeconds()} \tn % Row Count 16 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{new.getMilliseconds()} \tn % Row Count 17 (+ 1) % Row 10 \SetRowColor{LightBackground} new.getTime() & Zwraca liczbę milisekund, jaka upłynęła od 1 stycznia 1970. \tn % Row Count 20 (+ 3) % Row 11 \SetRowColor{white} \seqsplit{new.getTimezoneOffset()} & Zwraca różnicę w minutach między GMT (Londyn). \tn % Row Count 23 (+ 3) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{data1.getTime() == data2.getTime() porównanie takich samych dat} \tn % Row Count 25 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Argumenty te kolejno oznaczają rok, miesiąc, dzień, godzinę, minutę, sekundę oraz milisekundę. {\bf{Cztery}} ostatnie argumenty są opcjonalne i jeśli nie zostaną zdefiniowane, nadawana jest im wartość 0. \newline {\bf{Miesiące}} w tych obiektach są numerowane od 0 do 11, co może powodować pomyłki. Co ciekawe, numeracja {\bf{dni}} zaczyna się od 1.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.39356 cm} x{3.58344 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Math}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{Math.round(n)} & Zaokragla liczbę {\bf{n}}. \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \seqsplit{Math.floor(n)} & Zaokrągla liczbę {\bf{n}} w dół. \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \seqsplit{Math.ceil(n)} & Zaokrągla liczbę {\bf{n}} w górę. \tn % Row Count 6 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}