Giáo trình JavaScript
Tóm tắt Giáo trình JavaScript: ...một khối trong đoạn script document.write() cách thức JavaScript Xuất ra một xâu trên cửa sổ hiện thời một cách tuần tự theo file HTML có đoạn script đó document.writeln() Cách thức JavaScript Tơng tự cách thức document.write() nhng viết xong tự xuống dòng. alert() Cách thức của ...huyển, giá trị lại đợc chuyển thành kiểu của toán hạng bên trái. Sau đây là các toán tử dịch chuyển: << Toán tử dịch trái. Dịch chuyển toán hạng trái sang trái một số lợng bit bằng toán hạng phải. Các bit bị chuyển sang trái bị mất và 0 thay vào phía bên phải. Ví dụ: 4<<2 trở thàn... một giá trị trả về. Bởi vì JavaScript là ngôn ngữ có tính định kiểu thấp nên không cần định nghĩa kiểu tham số và giá trị trả về của hàm. Hàm có thể là thuộc tính của một đối tợng, trong trờng hợp này nó đợc xem nh là ph- ơng thức của đối tợng đó. Lệnh function đợc sử dụng để tạo ra hàm trong...
hể có các kết quả khác nhau phụ thuộc vào vị trí xuất hiện trớc hay sau của ++ hay -- với tên biến (là x trong trờng hợp này). Nếu ++ đứng trớc x, x sẽ đợc tăng hoặc giảm trớc khi giá trị x đ- ợc gán cho y. Nếu ++ hay -- đứng sau x, giá trị của x đợc gán cho y trớc khi nó đợc tăng hay giảm. JavaScript 15 một trong hai expr1 và expr2 đúng. ! expr Là toán tử logic NOT phủ định giá trị của expr. 2.1.6. Bitwise Với các toán tử thao tác trên bit, đầu tiên giá trị đợc chuyển dới dạng số nguyên 32 bit, sau đó lần lợt thực hiện các phép toán trên từng bit. & Toán tử bitwise AND, trả lại giá trị 1 nếu cả hai bit cùng là 1. | Toán tử bitwise OR, trả lại giá trị 1 nếu một trong hai bit là 1. ^ Toán tử bitwise XOR, trả lại giá trị 1 nếu hai bit có giá trị khác nhau Ngoài ra còn có một số toán tử dịch chuyển bitwise. Giá trị đợc chuyển thành số nguyên 32 bit trớc khi dịch chuyển. Sau khi dịch chuyển, giá trị lại đợc chuyển thành kiểu của toán hạng bên trái. Sau đây là các toán tử dịch chuyển: << Toán tử dịch trái. Dịch chuyển toán hạng trái sang trái một số lợng bit bằng toán hạng phải. Các bit bị chuyển sang trái bị mất và 0 thay vào phía bên phải. Ví dụ: 4<<2 trở thành 16 (số nhị phân 100 trở thành số nhị phân 10000) >> Toán tử dịch phải. Dịch chuyển toán hạng trái sang phải một số lợng bit bằng toán hạng phải. Các bit bị chuyển sang phải bị mất và dấu của toán hạng bên trái đợc giữ nguyên. Ví dụ: 16>>2 trở thành 4 (số nhị phân 10000 trở thành số nhị phân 100) >>> Toán tử dịch phải có chèn 0. Dịch chuyển toán hạng trái sang phải một số lợng bit bằng toán hạng phải. Bit dấu đợc dịch chuyển từ trái (giống >>). Những bit đợc dịch sang phải bị xoá đi. Ví dụ: -8>>>2 trở thành 1073741822 (bởi các bit dấu đã trở thành một phần của số). Tất nhiên với số dơng kết quả của toán tử >> và >>> là giống nhau. Có một số toán tử dịch chuyển bitwise rút gọn: Kiểu bitwise thông thờng Kiểu bitwise rút gọn x = x << y x << = y x = x >> y x - >> y x = x >>> y x >>> = y x = x & y x & = y x = x ^ y x ^ = y x = x | y x | = y Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 16 Bài tập 2.1.7. Câu hỏi Hãy đánh giá các biểu thức sau: 1. a. 7 + 5 b. "7" + "5" c. 7 == 7 d. 7 >= 5 e. 7 <= 7 2. f. (7 < 5) ? 7 : 5 g. (7 >= 5) && (5 > 5) h. (7 >= 5) || (5 > 5) 2.1.8. Trả lời Các biểu thức đợc đánh giá nh sau: 1. a. 12 b. "75" c. true d. true e. true 2. f. 5 g. false h. true Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 17 3. Các lệnh Có thể chia các lệnh của JavaScript thành ba nhóm sau: • Lệnh điều kiện. • Lệnh lặp. • Lệnh tháo tác trên đối tợng. Câu lệnh điều kiện Câu lệnh điều kiện cho phép chơng trình ra quyết định và thực hiện công việc nào đấy dựa trên kết quả của quyết định. Trong JavaScript, câu lệnh điều kiện là if...else if ... else Câu lệnh này cho phép bạn kiểm tra điều kiện và thực hiện một nhóm lệnh nào đấy dựa trên kết quả của điều kiện vừa kiểm tra. Nhóm lệnh sau else không bắt buộc phải có, nó cho phép chỉ ra nhóm lệnh phải thực hiện nếu điều kiện là sai. Cú pháp if ( ) { //Các câu lệnh với điều kiện đúng } else { //Các câu lệnh với điều kiện sai } Ví dụ: if (x==10){ document.write(“x bằng 10, đặt lại x bằng 0.”); x = 0; } else document.write(“x không bằng 10.”); Câu lệnh lặp Câu lệnh lặp thể hiện việc lặp đi lặp lại một đoạn mã cho đến khi biểu thức điều kiện đợc đánh giá là đúng. JavaScipt cung cấp hai kiểu câu lệnh lặp: Khoa Toan tin, Đại học Quốc gia Hà Nội Chú ý Ký tự { và } đợc sử dụng để tách các khối mã. JavaScript 18 • for loop • while loop 3.1.1. Vòng lặp for Vòng lặp for thiết lập một biểu thức khởi đầu - initExpr, sau đó lặp một đoạn mã cho đến khi biểu thức đợc đánh giá là đúng. Sau khi kết thúc mỗi vòng lặp, biểu thức incrExpr đợc đánh giá lại. Cú pháp: for (initExpr; ; incrExpr){ //Các lệnh đợc thực hiện trong khi lặp } Ví dụ: For loop Example for (x=1; x<=10 ; x++) { y=x*25; document.write("x ="+ x +";y= "+ y + ""); } Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 19 Ví dụ này lu vào file for_loop.Html. Vòng lặp này sẽ thực hiện khối mã lệnh cho đến khi x>10. 3.1.2. while Vòng lặp while lặp khối lệnh chừng nào còn đợc đánh giá là đúng Cú pháp: while () { //Các câu lệnh thực hiện trong khi lặp } Ví dụ: x=1; while (x<=10){ y=x*25; document.write("x="+x +"; y = "+ y + ""); x++; } Kết quả của ví dụ này giống nh ví dụ trớc. 3.1.3. Break Câu lệnh break dùng để kết thúc việc thực hiện của vòng lặp for hay while. Chơng trình đợc tiếp tục thực hiện tại câu lệnh ngay sau chỗ kết thúc của vòng lặp. Cú pháp break; Khoa Toan tin, Đại học Quốc gia Hà Nội Hình 5.1: Kết quả của lệnh for...loop JavaScript 20 Đoạn mã sau lặp cho đến khi x lớn hơn hoặc bằng 100. Tuy nhiên nếu giá trị x đa vào vòng lặp nhỏ hơn 50, vòng lặp sẽ kết thúc Ví dụ: while (x<100) { if (x<50) break; x++; } 3.1.4. continue Lệnh continue giống lệnh break nhng khác ở chỗ việc lặp đợc kết thúc và bắt đầu từ đầu vòng lặp. Đối với vòng lặp while, lệnh continue điều khiển quay lại ; với for, lệnh continue điều khiển quay lại incrExpr. Cú pháp continue; Ví dụ: Đoạn mã sau tăng x từ 0 lên 5, nhảy lên 8 và tiếp tục tăng lên 10 x=0; while (x<=10) { document.write(“Giá trị của x là:”+ x+””); if (x=5) { x=8; continue; } x++; } Các câu lệnh thao tác trên đối tợng JavaScript là một ngôn ngữ dựa trên đối tợng, do đó nó có một số câu lệnh làm việc với các đối tợng. 3.1.5. for...in Câu lệnh này đợc sử dụng để lặp tất cả các thuộc tính (properties) của một đối tợng. Tên biến có thể là một giá trị bất kỳ, chỉ cần thiết khi bạn sử dụng các thuộc tính trong vòng lặp. Ví dụ sau sẽ minh hoạ điều này Cú pháp for ( in ) { Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 21 //Các câu lệnh } Ví dụ Ví dụ sau sẽ lấy ra tất cả các thuộc tính của đối tợng Window và in ra tên của mỗi thuộc tính. Kết quả đợc minh hoạ trên hình 5.2. For in Example document.write("The properties of the Window object are: "); for (var x in window) document.write(" "+ x + ", "); Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 22 3.1.6. new Biến new đợc thực hiện để tạo ra một thể hiện mới của một đối tợng Cú pháp objectvar = new object_type ( param1 [,param2]... [,paramN]) Ví dụ sau tạo đối tợng person có các thuộc tính firstname, lastname, age, sex. Chú ý rằng từ khoá this đợc sử dụng để chỉ đối tợng trong hàm person. Sau đó ba thể hiện của đối tợng person đợc tạo ra bằng lệnh new New Example function person(first_name, last_name, age, sex){ this.first_name=first_name; this.last_name=last_name; this.age=age; this.sex=sex; } person1= new person("Thuy", "Dau Bich", "23", "Female"); person2= new person("Chung", "Nguyen Bao", "24", "Male"); person3= new person("Binh", "Nguyen Nhat", "24", "Male"); Khoa Toan tin, Đại học Quốc gia Hà Nội Hình 5.2: Kết quả của lệnh for...in JavaScript 23 person4= new person("Hoàn", "Đỗ Văn", "24", "Male"); document.write ("1. "+person1.last_name+" " + person1.first_name + "" ); document.write("2. "+person2.last_name +" "+ person2.first_name + ""); document.write("3. "+ person3.last_name +" "+ person3.first_name + ""); document.write("4. "+ person4.last_name +" "+ person4.first_name+""); 3.1.7. this Từ khoá this đợc sử dụng để chỉ đối tợng hiện thời. Đối tợng đợc gọi thờng là đối tợng hiện thời trong phơng thức hoặc trong hàm. Cú pháp this [.property] Có thể xem ví dụ của lệnh new. Khoa Toan tin, Đại học Quốc gia Hà Nội Hình 5.3: Kết quả của ví dụ lệnh New JavaScript 24 3.1.8. with Lệnh này đợc sử dụng để thiết lập đối tợng ngầm định cho một nhóm các lệnh, bạn có thể sử dụng các thuộc tính mà không đề cập đến đối tợng. Cú pháp with (object) { // statement } Ví dụ: Ví dụ sau chỉ ra cách sử dụng lệnh with để thiết lập đối tợng ngầm định là document và có thể sử dụng phơng thức write mà không cần đề cập đến đối tợng document With Example with (document){ write(“This is an exemple of the things that can be done ”); write(“With the with statment. ”); write(“This can really save some typing”); } Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 25 Các hàm (Functions) JavaScript cũg cho phép sử dụng các hàm. Mặc dù không nhất thiết phải có, song các hàm có thể có một hay nhiều tham số truyền vào và một giá trị trả về. Bởi vì JavaScript là ngôn ngữ có tính định kiểu thấp nên không cần định nghĩa kiểu tham số và giá trị trả về của hàm. Hàm có thể là thuộc tính của một đối tợng, trong trờng hợp này nó đợc xem nh là ph- ơng thức của đối tợng đó. Lệnh function đợc sử dụng để tạo ra hàm trong JavaScript. Cú pháp function fnName([param1],[param2],...,[paramN]) { //function statement } Ví dụ: Ví dụ sau minh hoạ cách thức tạo ra và sử dụng hàm nh là thành viên của một đối tợng. Hàm printStats đợc tạo ra là phơng thức của đối tợng person Function Example function person(first_name, last_name, age, sex) { this.first_name=first_name; Khoa Toan tin, Đại học Quốc gia Hà Nội Hình 5.4: Kết quả của ví dụ lệnh with JavaScript 26 this.last_name=last_name; this.age=age; this.sex=sex; this.printStats=printStats; } function printStats() { with (document) { write (" Name :" + this.last_name + " " + this.first_name + "" ); write("Age :"+this.age+""); write("Sex :"+this.sex+""); } } person1= new person("Thuy", "Dau Bich", "23", "Female"); person2= new person("Chung", "Nguyen Bao", "24", "Male"); person3= new person("Binh", "Nguyen Nhat", "24", "Male"); person4= new person("Hoan", "Do Van", "23", "Male"); person1.printStats(); person2.printStats(); person3.printStats(); person4.printStats(); Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 27 Các hàm có sẵn JavaScript có một số hàm có sẵn, gắn trực tiếp vào chính ngôn ngữ và không nằm trong một đối tợng nào: • eval • parseInt • parseFloat 3.1.9. eval Hàm này đợc sử dụng để đánh giá các biểu thức hay lệnh. Biểu thức, lệnh hay các đối tợng của thuộc tính đều có thể đợc đánh giá. Đặc biệt hết sức hữu ích khi đánh giá các biểu thức do ngời dùng đa vào (ngợc lại có thể đánh giá trực tiếp). Cú pháp: returnval=eval (bất kỳ biểu thức hay lệnh hợp lệ trong Java) Ví dụ: Khoa Toan tin, Đại học Quốc gia Hà Nội 1.1.1.1.1. Hình 8: Ví dụ về hàm Hình 5.5: Kết quả việc sử dụng hàm JavaScript 28 Eval Example var string=”10+ Math.sqrt(64)”; document.write(string+ “=”+ eval(string)); 3.1.10. parseInt Hàm này chuyển một chuỗi số thành số nguyên với cơ số là tham số thứ hai (tham số này không bắt buộc). Hàm này thờng đợc sử dụng để chuyển các số nguyên sang cơ số 10 và đảm bảo rằng các dữ liệu đọc nhập dới dạng ký tự đợc chuyển thành số trớc khi tính toán. Trong trờng hợp dữ liệu vào không hợp lệ, hàm parseInt sẽ đọc và chuyển dạng chuỗi đến vị trí nó tìm thấy ký tự không phải là số. Ngoài ra hàm này còn cắt dấu phẩy động. Cú pháp parseInt (string, [, radix]) Ví dụ: perseInt Exemple Khoa Toan tin, Đại học Quốc gia Hà Nội Hình 5.6 Ví dụ hàm Eval JavaScript 29 document.write("Converting 0xC hex to base-10: " + parseInt(0xC,10) + ""); document.write("Converting 1100 binary to base-10: " + parseInt(1100,2) + ""); Hình 5.7: Ví dụ parInt 3.1.11. parseFloat Hàm này giống hàm parseInt nhng nó chuyển chuỗi thành số biểu diễn dới dạng dấu phẩy động. Cú pháp parseFloat (string) Ví dụ: Ví dụ sau minh hoạ cách thức xử lý của parseFloat với các kiểu chuỗi khác nhau. Hình 5.8 minh họa kết quả perseFload Exemple Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 30 document.write("This script will show how diffrent strings are "); document.write("Converted using parseFloat"); document.write("137= " + parseFloat("137") + ""); document.write("137abc= " + parseFloat("137abc") + ""); document.write("abc137= " + parseFloat("abc137") + ""); document.write("1abc37= " + parseFloat("1abc37") + ""); Mảng (Array) Mặc dù JavaScript không hỗ trợ cấu trúc dữ liệu mảng nhng Netscape tạo ra phơng thức cho phép bạn tự tạo ra các hàm khởi tạo mảng nh sau: function InitArray(NumElements){ this.length = numElements; for (var x=1; x<=numElements; x++){ this[x]=0 } return this; } Nó tạo ra một mảng với kích thớc xác định trớc và điền các giá trị 0. Chú ý rằng thành phần đầu tiên trong mảng là độ dài mảng và không đợc sử dụng. Để tạo ra một mảng, khai báo nh sau: Khoa Toan tin, Đại học Quốc gia Hà Nội Hình 5.8 : Kết quả của ví dụ parseFloat JavaScript 31 myArray = new InitArray (10) Nó tạo ra các thành phần từ myArray[1] đến myArray[10] với giá trị là 0. Giá trị các thành phần trong mảng có thể đợc thay đổi nh sau: myArray[1] = "Nghệ An" myArray[2] = "Lào" Sau đây là ví dụ đầy đủ: Array Exemple function InitArray(numElements) { this.length = numElements; for (var x=1; x<=numElements; x++){ this[x]=0 } return this; } myArray = new InitArray(10); myArray[1] = "Nghệ An"; myArray[2] = "Hà Nội"; document.write(myArray[1] + ""); document.write(myArray[2] + ""); Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 32 Hình 5.9: Ví dụ mảng Sự kiện JavaScript là ngôn ngữ định hớng sự kiện, nghĩa là sẽ phản ứng trớc các sự kiện xác định trớc nh kích chuột hay tải một văn bản. Một sự kiện có thể gây ra việc thực hiện một đoạn mã lệnh (gọi là các chơng triình xử lý sự kiện) giúp cho chơng trình có thể phản ứng một cách thích hợp. Chơng trình xử lý sự kiện (Event handler): Một đoạn mã hay một hàm đ- ợc thực hiện để phản ứng trớc một sự kiện gọi là chơng trình xử lý sự kiện. Chơng trình xử lý sự kiện đợc xác định là một thuộc tính của một thẻ HTML: Ví dụ sau gọi hàm CheckAge() mỗi khi giá trị của trờng văn bản thay đổi: Đoạn mã của chơng trình xử lý sự kiện không là một hàm; nó là các lệnh của JavaScript cách nhau bằng dấu chấm phẩy. Tuy nhiên cho mục đích viết thành các module nên viết dới dạng các hàm. Một số chơng trình xử lý sự kiện trong JavaScript: onBlur Xảy ra khi input focus bị xoá từ thành phần form onClick Xảy ra khi ngời dùng kích vào các thành phần hay liên kết của form. onChange Xảy ra khi giá trị của thành phần đợc chọn thay đổi onFocus Xảy ra khi thành phần của form đợc focus(làm nổi lên). onLoad Xảy ra trang Web đợc tải. onMouseOver Xảy ra khi di chuyển chuột qua kết nối hay anchor. onSelect Xảy ra khi ngời sử dụng lựa chọn một trờng nhập dữ liệu trên form. onSubmit Xảy ra khi ngời dùng đa ra một form. onUnLoad Xảy ra khi ngời dùng đóng một trang Sau đây là bảng các chơng trình xử lý sự kiện có sẵn của một số đối tợng. Các đối tợng này sẽ đợc trình bày kỹ hơn trong phần sau. Đối tợng Chơng trình xử lý sự kiện có sẵn Selection list onBlur, onChange, onFocus Text onBlur, onChange, onFocus, onSelect Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 33 Textarea onBlur, onChange, onFocus, onSelect Button onClick Checkbox onClick Radio button onClick Hypertext link onClick, onMouseOver, onMouseOut Clickable Imagemap area onMouseOver, onMouseOut Reset button onClick Submit button onClick Document onLoad, onUnload, onError Window onLoad, onUnload, onBlur, onFocus Framesets onBlur, onFocus Form onSubmit, onReset Image onLoad, onError, onAbort Ví dụ sau là một đoạn mã script đơn giản của chơng trình xử lý sự kiện thẩm định giá trị đa vào trong trờng text. Tuổi của ngời sử dụng đợc nhập vào trong trờng này và chơng trình xử lý sự kiện sẽ thẩm định tính hợp lệ của dữ liệu đa vào. Nếu không hợp lệ sẽ xuất hiện một thông báo yêu cầu nhập lại. Chơng trình xử lý sự kiện đợc gọi mỗi khi trờng AGE bị thay đổi và focus chuyển sang trờng khác. Hình 5.10 minh hoạ kết quả của ví dụ này An Event Handler Exemple function CheckAge(form) { if ( (form.AGE.value120) ) { alert("Tuổi nhập vào không hợp lệ! Mời bạn nhập lại"); form.AGE.value=0; } } Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 34 Nhập vào tên của bạn: Tên Đệm Họ Age <INPUT TYPE=TEXT NAME="AGE" MAXLENGTH=3 SIZE=2 onChange="CheckAge(PHIEU_DIEU_TRA)"> Bạn thích mùa nào nhất: Mùa xuân Mùa hạ Mùa thu Mùa đông Hãy chọn những hoạt động ngoài trời mà bạn yêu thích: Đi bộ Trợt tuyết<INPUT TYPE=CHECKBOX NAME="HOAT_DONG" VALUE="Truot tuyet"> Thể thao dới nớc<INPUT TYPE=CHECKBOX NAME="HOAT_DONG" VALUE="Duoi nuoc"> Đạp xe Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 35 Hình 5.10: Minh hoạ cho ví dụ Event Handler Bài tập 3.1.12. Câu hỏi 1. Viết một đoạn lệnh JavaScript sử dụng cách thức confirm() và câu lệnh if...then để thực hiện: Hỏi ngời sử dụng có muốn nhận đợc một lời chào không Nếu có thì hiện ảnh wellcome.jpg và một lời chào. Nếu không thì viết ra một lời thông báo 2. Viết một đoạn lệnh JavaScript để thực hiện: • Hỏi ngời sử dụng: "10+10 bằng bao nhiêu?" • Nếu đúng thì hỏi tiếp: Có muốn trả lời câu thứ hai không?" • Nếu muốn thì hỏi: "10*10 bằng bao nhiêu?" • Đánh giá kết quả bằng biểu thức logic sau đó viết ra màn hình: Đúng: "CORRECT"; Sai: "INCORRECT" Gợi ý: Sử dụng biến toàn cục lu kết quả đúng để so sánh với kết qủa đa vào. 3. Câu lệnh nào trong các câu sau đây sử dụng sai thẻ sự kiện a. b. Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 36 c. d. e. f. 4. Điều gì xảy ra khi thực hiện script sau: Exercise 5.4 <!-- HIDE FROM OTHER BROWSERS var name = ""; function welcome() { name = prompt("Welcome to my page! What's Your Name?","name"); } function farewell() { alert("Goodbye " + name + ". Thanks for visiting my page."); } // STOP HIDING FROM OTHER BROWSERS --> This is my page! 5. Sử dụng vòng lặp while để mô phỏng các vòng lặp for sau: a. for (j = 4; j > 0; j --) { document.writeln(j + ""); } b. for (k = 1; k <= 99; k = k*2) { k = k/1.5; } c. for (num = 0; num <= 10; num ++) { if (num == 8) break; } Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 37 3.1.13. Trả lời 1. Sử dụng cách thức confirm() và cấu trúc if...then: Execise 5.1 var conf=confirm("Click OK to see a wellcome message!") if (conf){ document.write(""); document.write("Wellcome you come to CSE's class"); } else document.write("What a pity! You have just click Cancel button"); 2. Thực hiện hỏi ngời sử dụng: Exercise 3.3 <!-- HIDE FROM OTHER BROWSERS // DEFINE VARIABLES FOR REST OF SCRIPT var question="What is 10+10?"; var answer=20; var correct='CORRECT'; var incorrect='INCORRECT'; // ASK THE QUESTION var response = prompt(question,"0"); // chECK THE ANSWER THE FIRST TIME if (response != answer) { // THE ANSWER WAS WRONG: OFFER A SECOND chAncE if (confirm("Wrong! Press OK for a second chance.")) response = prompt(question,"0"); Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 38 } else { // THE ANSWER WAS RIGHT: OFFER A SECOND QUESTION if (confirm("Correct! Press OK for a second question.")) { question = "What is 10*10?"; answer = 100; response = prompt (question,"0"); } } // chECK THE ANSWER var output = (response == answer) ? correct : incorrect; // STOP HIDING FROM OTHER BROWSERS --> <!-- HIDE FROM OTHER BROWSERS // OUTPUT RESULT document.write(output); // STOP HIDING FROM OTHER BROWSERS --> 3. Các câu sai: a, c, e. Các câu đúng: b, d, f 4. Khi chơng trình đợc chạy (load), hàm wellcome sẽ thực hiện hỏi tên ngời sử dụng, lu tên đó vào biến toàn cục name. Khi ngời sử dụng sang một địa chỉ URL khác, hàm farewell() sẽ thực hiện gửi một lời cảm ơn tới ngời sử dụng. 5. Sử dụng vòng lặp while nh sau: a. j = 5; while (--j > 0) { document.writeln(j + ""); } b. k = 1; while (k <= 99) { k = k * 2 / 1.5; } c. num = 0; Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 39 while (num <= 10) { if (num++ == 8) break; } Khoa Toan tin, Đại học Quốc gia Hà Nội
File đính kèm:
- giao_trinh_javascript_phan_1.pdf