Câu trả lời:
var o = {
r: 'some value',
t: 'some other value'
};
có chức năng tương đương với
var o = new Object();
o.r = 'some value';
o.t = 'some other value';
Ngoài ra, một dấu hai chấm có thể được sử dụng để dán nhãn cho một tuyên bố. ví dụ
var i = 100, j = 100;
outerloop:
while(i>0) {
while(j>0) {
j++
if(j>50) {
break outerloop;
}
}
i++
}
Các bạn đang quên rằng dấu hai chấm cũng được sử dụng trong toán tử ternary (mặc dù tôi không biết nếu jquery sử dụng nó cho mục đích này).
toán tử ternary là một biểu thức (biểu thức trả về một giá trị) của câu lệnh if / then. nó được sử dụng như thế này:
var result = (condition) ? (value1) : (value2) ;
Một toán tử ternary cũng có thể được sử dụng để tạo ra các tác dụng phụ giống như nếu / sau đó, nhưng đây là thực tế cực kỳ tồi tệ.
Về cơ bản, ':' là một dấu phân cách cho các cặp giá trị khóa. Trong ví dụ của bạn, nó là một ký hiệu đối tượng Javascript.
Trong javascript, Đối tượng được xác định bằng dấu hai chấm phân định định danh cho thuộc tính và giá trị của nó để bạn có thể có các mục sau:
return {
Property1 : 125,
Property2 : "something",
Method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
và sau đó sử dụng nó như:
var o = {
property1 : 125,
property2 : "something",
method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
alert(o.property1); // Will display "125"
Một tập hợp con của điều này còn được gọi là JSON (Ký hiệu đối tượng Javascript) rất hữu ích trong các cuộc gọi AJAX vì nó nhỏ gọn và nhanh chóng phân tích các ngôn ngữ phía máy chủ và Javascript có thể dễ dàng tuần tự hóa chuỗi JSON thành một đối tượng.
// The parenthesis '(' & ')' around the object are important here
var o = eval('(' + "{key: \"value\"}" + ')');
Bạn cũng có thể đặt chìa khóa bên trong dấu ngoặc kép nếu nó chứa một số loại ký tự hoặc khoảng trắng đặc biệt, nhưng tôi không khuyến nghị điều đó bởi vì nó chỉ khiến mọi thứ khó xử lý hơn.
Hãy ghi nhớ rằng đối tượng JavaScript Literal Notation bằng ngôn ngữ JavaScript là khác biệt so với các tiêu chuẩn JSON cho thông điệp đi qua. Sự khác biệt chính giữa 2 là các hàm và hàm tạo không phải là một phần của tiêu chuẩn JSON , nhưng được phép trong các ký tự đối tượng JS.
Nó là một phần của cú pháp đối tượng. Định dạng cơ bản là:
var obj = { field_name: "field value", other_field: 42 };
Sau đó, bạn có thể truy cập các giá trị này với:
obj.field_name; // -> "field value"
obj["field_name"]; // -> "field value"
Bạn thậm chí có thể có các hàm làm giá trị, về cơ bản cung cấp cho bạn các phương thức của đối tượng:
obj['func'] = function(a) { return 5 + a;};
obj.func(4); // -> 9
Nó có thể được sử dụng để liệt kê các đối tượng trong một biến. Ngoài ra, nó được sử dụng một chút trong cách viết tắt của câu if:
var something = {face: 'hello',man: 'hey',go: 'sup'};
Và gọi nó như thế này
alert(something.man);
Ngoài ra câu if:
function something() {
(some) ? doathing() : dostuff(); // if some = true doathing();, else dostuff();
}
Chúng ta đừng quên câu lệnh chuyển đổi, trong đó dấu hai chấm được sử dụng sau mỗi "trường hợp".
Đây thường là các tình huống trong đó dấu hai chấm ':' được sử dụng trong JavaScript
1- Khai báo và khởi tạo một đối tượng
var Car = {model:"2015", color:"blue"}; //car object with model and color properties
2- Đặt nhãn (Không được đề xuất vì nó dẫn đến cấu trúc điều khiển phức tạp và mã Spaghetti)
List:
while(counter < 50)
{
userInput += userInput;
counter++;
if(userInput > 10000)
{
break List;
}
}
3- Trong tuyên bố chuyển đổi
switch (new Date().getDay()) {
case 6:
text = "Today is Saturday";
break;
case 0:
text = "Today is Sunday";
break;
default:
text = "Looking forward to the Weekend";
}
4- Trong Ternary Toán tử
document.getElementById("demo").innerHTML = age>18? "True" : "False";
||. Ví dụ: var a = false, b = a || 'Default value';tương đương vớivar a = false, b = a : 'Default value';
Đó là JSON, hoặc ký hiệu đối tượng JavaScript. Đó là một cách nhanh chóng để mô tả một đối tượng hoặc bản đồ băm. Thứ trước dấu hai chấm là tên thuộc tính và thứ nằm sau dấu hai chấm là giá trị của nó. Vì vậy, trong ví dụ này, có một thuộc tính "r", có giá trị là bất cứ thứ gì trong biến r. Tương tự cho t.
Một sai lầm ngu ngốc tôi đã làm cách đây một thời gian có thể giúp một số người.
Hãy nhớ rằng nếu bạn đang sử dụng ":" trong một sự kiện như thế này, giá trị sẽ không thay đổi
var ondrag = (function(event, ui) {
...
nub0x: event.target.offsetLeft + event.target.clientWidth/2;
nub0y = event.target.offsetTop + event.target.clientHeight/2;
...
});
Vì vậy, "nub0x" sẽ khởi tạo với sự kiện đầu tiên xảy ra và sẽ không bao giờ thay đổi giá trị của nó. Nhưng "nub0y" sẽ thay đổi trong các sự kiện tiếp theo.
event.target.offsetLeft + event.target.clientWidth/2;sẽ chạy mỗi khi phương thức ondrag của bạn được gọi, nhưng không bao giờ gán giá trị chonub0x
:nó đang được đối xử như thể nó là một ||. Do đó, event.target.offsetLeft + event.target.clientWidth/2;sẽ chỉ kích hoạt mỗi lần cung cấp nub0xtương đương với sai.
Một cách sử dụng dấu hai chấm khác trong JavaScript là đổi tên một biến, đó là:
const person = {
nickNameThatIUseOnStackOverflow: "schlingel",
age: 30,
firstName: "John"
};
const { nickNameThatIUseOnStackOverflow: nick } = person; // I take nickNameThatIUseOnStackOverflow but want to refer it as "nick" from now on.
nick = "schling";
Điều này hữu ích nếu bạn sử dụng thư viện bên thứ ba trả về các giá trị có tên biến khó xử / dài mà bạn muốn đổi tên trong mã của mình.