Values (giá trị)
Có 2 loại gía trị trong JS:- Fixed value (các gía trị đã fix) còn được gọi là Literal
- number: khai báo chỉ được phép sử dụng số và dấu chấm thập phân
- tất cả một gía trị kiêu number đều là số thực 64 bit
- NaN: typeof NAN tra về kiểu number
- NaN có ý nghĩa là số không hợp lệ
- Infinity và -Infinity có nghĩa là gía trị nằm ngoài gioi hạn của kiểu number
- string: khai báo sử dụng nháy kép " hoặc nháy đơn '
- thuộc tính length để biết độ dài của string
- sử dụng escapse character \ => để chèn những ký tự đặc biệt vào string: var s = 'It\'s alright';
- boolean: chỉ có 2 giá trị true false
- sử dụng hàm Boolean(x) để xác định true false
- các toán tử so sánh == === > <
- undefined: có giá trị là undefined
- object:
- kiểu dữ liệu mảng cũng là 1 object ["a",1,2,true,false,undefined,1e-4]
- kiểu null cũng là 1 object: typeof null sẽ trả về object
- function: typeof function myFunc(){} sẽ trả về function
- Variable value (các gía trị có thể thay đổi) còn được gọi là Variable
- khai báo sử dụng từ khóa var và định danh (id): var x =6;
- gía trị mặc định khi không gán gía trị cho x là undefined
- khai báo định danh cho biến: NÊN sử dụng Lower Camel Case (firstName, lastName,interCity)
- JS sử dụng kiểu dữ liệu động (biến x ở trên có thể gán bất kỳ giá trị của bất kỳ KDL nào mà không gây lỗi)
- biến có 2 loại phạm vi: local và global
- biến được khai báo trong 1 function là local (var x=9;)
- biến khai báo mà không sd từ khóa var là biến global (x=9;) bất kể nó đươc khai báo ở trong một hàm
Operator (toán tử)
- 7 loai: + - * / % ++ --
- toán tử gán =
- so sánh:
- == equal to
- === equal value and equal type
- != not equal
- !== not equal value or not equal type
- variablename = (condition) ? value1:value2
- logic:
- && and
- || or
- ! not
- type
- typeof X: trả về kiểu của variable
- instanceof trả về true nếu kiểu của đối tượng là đúng
- thứ tự ưu tiên các toán tử:
- nhân chia trước, cộng trừ sau (phép nhân và phép chia cùng thứ tự ưu tiên, phép cộng và phép trừ cùng thứ tự ưu tiên)
- trong 1 biểu thức nếu các toán t ử có cùng thứ tự ưu tiên => thực hiện biểu thức từ trái sang phải. (Vd: 6/2*3 trả về 3*3, không trả về 6/6)
- toán tử ( và ) là có thứ tự ưu tiên cao nhất
Expressions (biểu thức)
- cộng chuỗi : "str1"+"str2" thực ra là nối chuỗi
- trừ chuỗi: "str1"-"1" trả về NaN (typeof NAN trả về number )
- cộng số: 5+6 trả về 11
- cộng chuỗi và số sẽ trả về chuỗi
- "5"+ 2 + 3 sẽ trả về "523"
- 2 + 3 + "5" sẽ trả về "55"
Keywords (từ khóa)
Để định nghĩa hành động sẽ được JS thực hiệnLet this long package float,
Goto private class if short.
While protected with debugger case,
Continue volatile interface.
Instanceof super synchronized throw,
Extends final export throws.
Try import double enum?
- False, boolean, abstract function,
Implements typeof transient break!
Void static, default do,
Switch int native new.
Else, delete null public var
In return for const, true, char
…Finally catch byte.
Comments
- sử dụng double slashes // code
- sử dụng /* code */
Identifiers (định danh)
sử dụng để đặt tên cho- biến variable
- từ khóa keyword
- hàm function
- nhãn label
- ký tự đầu tiên: chữ, dấu $, dấu _
- các ký tự sau: chữ, dấu $, dấu _ , số
JavaScript is Case Sensitive
Vì thế mà JS sẽ không xem VAR hay Var là một từ khóa như varStatement (câu lệnh)
sử dụng dấu ; để ngăn cách các câu lệnhsử dụng {} để mô tả 1 code block
Function
Cú pháp:function name(parameter1, parameter2, parameter3) {
code to be executed
return something; (có thể không có return cũng được)
}
Gọi hàm:
name(argument1,argument2,argument3);
Gọi ra nội dung hàm:
name;
Object
Gán biến person cho một objectvar person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
person.firstName;
person["firstName"];
person.fullName(); sẽ trả về "John Doe"
person.fullName; sẽ trả về định nghĩa hàm
function() {
return this.firstName + " " + this.lastName;
}
so sánh 2 đối tượng (x==y) và (x===y) luôn trả về false (do x và y luôn khác gía trị, mặc dù cùng kiểu là object)
Event
<element event='some JavaScript'>Các loại event phổ biến:
Event | Description |
---|---|
onchange | An HTML element has been changed |
onclick | The user clicks an HTML element |
onmouseover | The user moves the mouse over an HTML element |
onmouseout | The user moves the mouse away from an HTML element |
onkeydown | The user pushes a keyboard key |
onload | The browser has finished loading the page |
Array
khai báovar cars=['volvo','toyota','chervolet'];
truy nhập
cars[0] cars[1] hoặc cars
typeof cars trả về kiểu object
cars.length trả về độ dài của mảng
phân biệt array và object
array sử dụng numbered indexes
object sử dụng named indexes
để giup phân biệt array và object trong code, có 3 cách
1. sự dụng hàm Arrays.isArray(cars);
2. tạo hàm mới
function isArray(x){return x.constructor.toString().indexOf("Array") > -1;}
3. sư dụng cars instanceof Array;
Một số array function:
pop() push() => biến array thành stack, thêm bơt phần tử vào cuối array
shift() unshift() => thêm bớt phần tử vào đầu array
slice(start,remove_nunber,insert_elements); => để thêm và xóa phần tử vào giua array
arr1.concat(arr2,arr3); nối2 mảng
Sắp xếp mảng
sort() se sắp xếp theo thứ tự alphabet
sort(function(a,b){return a-b;}) sẽ sd một hàm compare để sắp xếp
reverse() đảo ngược lại thứ tự các thành phần trong array
Conditions
if(dk1){}elseif(dk2){}
else{//th còn lại}
switch(val):
case 1: break;
case 2: break;
default:...
switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}
Loops
forfor (statement 1; statement 2; statement 3) {
code block to be executed
}
s1: câu lệnh được thực hiện trước khi thực hiện vòng lặp
s2: câu lệnh điều kiện để thực hiện lăp
s3: câu lệnh được thực hiện sau mỗi vòng lặp
for (i = 0; i < 5; i++) {
text += "The number is " + i + "<br>";
}
for in
var person = {fname:"John", lname:"Doe", age:25};
var text = "";
var x;
for (x in person) {
text += person[x]; // trả về John Doe 25
}
kiểm tra điều kiện condition trước khi bắt đầu vòng lặp
while (condition) {
code block to be executed
}
thực hiện vòng lặp 1 lần, rồi kiểm tra điều kiện condition trước khi thực hiện mỗi vòng lặp mới
do {
code block to be executed
}
while (condition);
break; // nhảy ra khỏi vòng lặp
continue; // nhảy đến lần lặp tiếp theo
Type conversion
5 kiểu dữ liệu có chứa giá tri
number
string
boolean
function
object
3 kiểu dữ liệu trả về object với toán tử typeof
Object
Array
Date
2 kiểu dữ liệu không chứa giá trị
null
undefined
toán tử typeof
typeof "John"
// Returns "string"
typeof 3.14
// Returns "number"
typeof NaN
// Returns "number"
typeof false
// Returns "boolean"
typeof [1,2,3,4] // Returns
"object"
typeof {name:'John', age:34}
// Returns "object"typeof new Date()
// Returns "object"typeof function () {} // Returns
"function"
typeof myCar
// Returns "undefined" *
typeof null
// Returns "object"
typeof undefined
// Returns "undefined"
vì thế không thể sử dụng toán tử typeof để kiểm tra 1 đối tượng là Object hay Array. mà phải sử dụng thuộc tính constructor
"John".constructor
// Returns function String() {[native code]}
(3.14).constructor
// Returns function Number() {[native code]}
false.constructor // Returns
function Boolean() {[native code]}
[1,2,3,4].constructor
// Returns function Array() {[native code]}
{name:'John',age:34}.constructor
// Returns function Object() {[native code]}
new Date().constructor
// Returns function Date() {[native code]}
function () {}.constructor // Returns
function Function(){[native code]}
kiểm tra 1 đối tượng có phải là Array không
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
hoặc
function isArray(myArray) {
return myArray.constructor
=== Array;
}
Error
try {
Block of code to try
throw something;// có thể thêm throw vào trong code
}
catch(err) {
Block of code to handle errors
}
finally {
Block of code to be executed regardless of the try / catch result
}
JS có một error object được build sẵn, có 2 thuộc tính sau
name: loại lỗi
message: nội dung lỗi
có các loại lỗi chuẩn sau
Error Name Description
EvalError An error has occurred in the eval() function
RangeError A number "out of range" has occurred
ReferenceError An illegal reference has occurred
SyntaxError A syntax error has occurred
TypeError A type error has occurred
URIError An error in encodeURI() has occurred
No comments:
Post a Comment