Sử dụng mảng và sự kiện trong Javascript

A. MẢNG TRONG JAVASCRIPT

Mảng trong Javascript cho phép bạn lưu nhiều giá trị trong một biến duy nhất, các giá trị được đánh chỉ số để truy xuất.  

Cú pháp khai báo 1 mảng như sau:

var arr = new Array( "táo", "cam", "nho");
var giohang = new Array(); 

hoặc tạo mảng bằng cách gán các giá trị như sau:

var day = [ "táo", "cam", "nho" ];

Sử dụng số thứ tự để truy cập và gán giá trị trong mảng như sau:

arr[0]  => giá trị đầu tiên 
arr[1] => giá trị thứ hai (cam)
rr[2] => giá trị thứ ba  (nho)

Lợi ích của mảng

Nhờ có mảng mà bạn không phải khai báo quá nhiều biến khi cần lưu nhiều giá trị. Còn nữa, trong lập trình, nhiều khi không biết số lượng các giá trị phải lưu, cho nên không biết phải tạo bao nhiêu biến cho đủ dùng.

var sinhvien1 = "Tèo";
var sinhvien2 =  "Tý";
var sinhvien3 = "Lượm";
var sinhvien4 = "Út Vẹo";
~
var sinhvien = ["Tèo", "Tý", "Lượm", "Út Vẹo"] ;

Xuất nhanh giá trị của một mảng

Để xuất nhanh các giá trị của mảng, bạn dùng method toString() của mảng

<script>
var sinhvien = ["Tèo", "Tý", "Lượm", "Út Vẹo"] ;
document.write("<p>" + sinhvien.toString()  +"</p>" ); 
</script>
<script>
var giohang = new Array();
giohang[0]="Đậu hủ";
giohang[1]="Nước tương";
giohang[2]= "Rau muống";
document.write("<div>" + giohang.toString() +"</div>");
<script> 

Lặp qua mảng

Dùng vòng lặp để lặp qua mảng từ đầu đến cuối, truy xuất từng phần tử để hiện (trong tag nào tùy ý)

<script>
var fruits, text, fLen, i;vn = ["Hiếu khách", "Trọng ân", "Ham học", "Yêu nước"];
sl = vn.length; //lấy số phần tử của mảng
text = "<ol>";
for (i = 0; i < sl; i++) { //lặp từ đầu đến cuối mảng  
    text += "<li>" + vn[i] + "</li>";
}
text += "</ol>";
document.write(text);
</script>

Các method của mảng

Dưới đây là danh sách các hàm xử lý trên mảng trong javascript mà bạn có thể dùng

https://www.w3schools.com/jsref/jsref_obj_array.asp

Method Description
concat() Joins two or more arrays, and returns a copy of the joined arrays
entries() Returns a key/value pair Array Iteration Object
every() Checks if every element in an array pass a test
filter() Creates a new array with every element in an array that pass a test
find() Returns the value of the first element in an array that pass a test
findIndex() Returns the index of the first element in an array that pass a test
forEach() Calls a function for each array element
from() Creates an array from an object
includes() Check if an array contains the specified element
indexOf() Search the array for an element and returns its position
isArray() Checks whether an object is an array
join() Joins all elements of an array into a string
lastIndexOf() Search the array for an element, starting at the end, and returns its position
map() Creates a new array with the result of calling a function for each array element
pop() Removes the last element of an array, and returns that element
push() Adds new elements to the end of an array, and returns the new length
reduce() Reduce the values of an array to a single value (going left-to-right)
reduceRight() Reduce the values of an array to a single value (going right-to-left)
reverse() Reverses the order of the elements in an array
shift() Removes the first element of an array, and returns that element
slice() Selects a part of an array, and returns the new array
some() Checks if any of the elements in an array pass a test
sort() Sorts the elements of an array
splice() Adds/Removes elements from an array
toString() Converts an array to a string, and returns the result
unshift() Adds new elements to the beginning of an array, and returns the new length

B. SỰ KIỆN TRONG JAVASCRIPT

Tương tác của JavaScript với HTML được xử lý thông qua các sự kiện. Sự kiện xảy ra khi người sử dụng thao tác hoặc trình duyệt điều khiển trang/ thay đổi trạng thái.

Ví dụ: khi trình duyệt tải xong 1 trang, đó là một sự kiện. Khi người dùng nhấp 1 nút, đó là 1 sự kiện. Người dùng gõ 1 phím, đóng trình duyệt, thay đổi kích thước trình duyệt… đều là các sự kiện

Sự kiện onclick

Là sự kiện thường xuyên được dùng, nó xảy ra khi người dùng nhấp vào nút trái chuột.

<html>
    <head> <title> </title> <meta charset="utf-8">
        <script>
            function InAn(){    
              window.print();
            }
          </script>
    </head>
    <body>
        <h1>Chào bạn! Chúc an lành</h1><hr>
        <button onclick="InAn()">In trang này</button>
    </body>
</html>

Sự kiện onsubmit

onsubmit là sự kiện xảy ra khi gửi thông tin trong form lên server.

Ví dụ:

<meta charset="utf-8">
<script>
function kiemtra(){
    if (flogin.u.value=='') return false;
    if (flogin.p.value=='') return false;
    return true;
}
</script>
<form onsubmit="return kiemtra()" name="flogin" method="post" action="xulylogin.php">
Tên đăng nhập:<br/> <input name="u" id="u" type="text" /> <br/>
Mật khẩu:<br/> <input name="p" id="p" type="password"/> <br/>
<input type="submit" name="sub" id="sub" value="Đăng nhập" />
</form>

Sự kiện onmouseover và onmouseout

onmouseover xảy ra khi bạn đưa chuột qua phần tử và onmouseout xảy ra khi bạn đưa chuột ra khỏi phần tử.

Ví dụ:

<html><head><title></title> <meta charset="utf-8">
    <script>
        function to(hinh){
            hinh.className='to';
        }
        function nho(hinh){
            hinh.className='nho';
        }
    </script>
</head>
<body>
    <h1>Hình đẹp</h1>
    <img onmouseover="to(this)" onmouseout="nho(this)" src="a.jpg" class="nho">
    <h2>Thế giới động vật dễ thương</h2>
</body></html>
<style>
.nho {height:150px}    
.to {height: 500px; }
</style>

Danh sách các sự kiện html 5

Window Event Attributes

Events triggered for the window object (applies to the <body> tag):

Attribute Description
onafterprint Script to be run after the document is printed
onbeforeprint Script to be run before the document is printed
onbeforeunload Script to be run when the document is about to be unloaded
onerror Script to be run when an error occurs
onhashchange Script to be run when there has been changes to the anchor part of the a URL
onload Fires after the page is finished loading
onmessage Script to be run when the message is triggered
onoffline Script to be run when the browser starts to work offline
ononline Script to be run when the browser starts to work online
onpagehide Script to be run when a user navigates away from a page
onpageshow Script to be run when a user navigates to a page
onpopstate Script to be run when the window’s history changes
onresize Fires when the browser window is resized
onstorage Script to be run when a Web Storage area is updated
onunload Fires once a page has unloaded (or the browser window has been closed)

Form Events

Events triggered by actions inside a HTML form:

Attribute Description
onblur Fires the moment that the element loses focus
onchange Fires the moment when the value of the element is changed
oncontextmenu Script to be run when a context menu is triggered
onfocus Fires the moment when the element gets focus
oninput Script to be run when an element gets user input
oninvalid Script to be run when an element is invalid
onreset Fires when the Reset button in a form is clicked
onsearch Fires when the user writes something in a search field (for <input=”search”>)
onselect Fires after some text has been selected in an element
onsubmit Fires when a form is submitted

Keyboard Events

Attribute Description
onkeydown Fires when a user is pressing a key
onkeypress Fires when a user presses a key
onkeyup Fires when a user releases a key

Mouse Events

Attribute Description
onclick Fires on a mouse click on the element
ondblclick Fires on a mouse double-click on the element
onmousedown Fires when a mouse button is pressed down on an element
onmousemove Fires when the mouse pointer is moving while it is over an element
onmouseout Fires when the mouse pointer moves out of an element
onmouseover Fires when the mouse pointer moves over an element
onmouseup Fires when a mouse button is released over an element
onmousewheel Deprecated. Use the onwheel attribute instead
onwheel Fires when the mouse wheel rolls up or down over an element

Drag Events

Attribute Description
ondrag Script to be run when an element is dragged
ondragend Script to be run at the end of a drag operation
ondragenter Script to be run when an element has been dragged to a valid drop target
ondragleave Script to be run when an element leaves a valid drop target
ondragover Script to be run when an element is being dragged over a valid drop target
ondragstart Script to be run at the start of a drag operation
ondrop Script to be run when dragged element is being dropped
onscroll Script to be run when an element’s scrollbar is being scrolled

Clipboard Events

Attribute Description
oncopy Fires when the user copies the content of an element
oncut Fires when the user cuts the content of an element
onpaste Fires when the user pastes some content in an element

Media Events

Events triggered by medias like videos, images and audio (applies to all HTML elements, but is most common in media elements, like <audio>, <embed>, <img>, <object>, and <video>).

Attribute Description
onabort Script to be run on abort
oncanplay Script to be run when a file is ready to start playing (when it has buffered enough to begin)
oncanplaythrough Script to be run when a file can be played all the way to the end without pausing for buffering
oncuechange Script to be run when the cue changes in a <track> element
ondurationchange Script to be run when the length of the media changes
onemptied Script to be run when something bad happens and the file is suddenly unavailable (like unexpectedly disconnects)
onended Script to be run when the media has reach the end (a useful event for messages like “thanks for listening”)
onerror Script to be run when an error occurs when the file is being loaded
onloadeddata Script to be run when media data is loaded
onloadedmetadata Script to be run when meta data (like dimensions and duration) are loaded
onloadstart Script to be run just as the file begins to load before anything is actually loaded
onpause Script to be run when the media is paused either by the user or programmatically
onplay Script to be run when the media is ready to start playing
onplaying Script to be run when the media actually has started playing
onprogress Script to be run when the browser is in the process of getting the media data
onratechange Script to be run each time the playback rate changes (like when a user switches to a slow motion or fast forward mode)
onseeked Script to be run when the seeking attribute is set to false indicating that seeking has ended
onseeking Script to be run when the seeking attribute is set to true indicating that seeking is active
onstalled Script to be run when the browser is unable to fetch the media data for whatever reason
onsuspend Script to be run when fetching the media data is stopped before it is completely loaded for whatever reason
ontimeupdate Script to be run when the playing position has changed (like when the user fast forwards to a different point in the media)
onvolumechange Script to be run each time the volume is changed which (includes setting the volume to “mute”)
onwaiting Script to be run when the media has paused but is expected to resume (like when the media pauses to buffer more data)

Misc Events

Attribute Description
ontoggle Fires when the user opens or closes the <details> element