답변:
var o = {
r: 'some value',
t: 'some other value'
};
기능적으로
var o = new Object();
o.r = 'some value';
o.t = 'some other value';
또한 콜론을 사용하여 명령문에 레이블을 지정할 수 있습니다. 예를 들어
var i = 100, j = 100;
outerloop:
while(i>0) {
while(j>0) {
j++
if(j>50) {
break outerloop;
}
}
i++
}
너희들은 콜론이 삼항 연산자에서도 사용된다는 것을 잊고있다 (jquery 가이 목적으로 그것을 사용하는지는 모르겠지만).
삼항 연산자는 if / then 문의 표현식 양식 (표현식이 값을 리턴 함)입니다. 다음과 같이 사용됩니다.
var result = (condition) ? (value1) : (value2) ;
삼항 연산자를 사용하여 if / then과 같은 부작용을 만들 수도 있지만, 이는 매우 나쁜 습관입니다.
':'은 기본적으로 키 값 쌍의 구분 기호입니다. 귀하의 예에서는 Javascript Object Literal 표기법입니다.
자바 스크립트에서 객체는 콜론으로 속성의 식별자와 그 값을 구분하여 정의되므로 다음을 가질 수 있습니다.
return {
Property1 : 125,
Property2 : "something",
Method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
그런 다음 다음과 같이 사용하십시오.
var o = {
property1 : 125,
property2 : "something",
method1 : function() { /* do nothing */ },
array: [5, 3, 6, 7]
};
alert(o.property1); // Will display "125"
이것의 서브셋은 JSON (Javascript Object Notation)으로도 알려져 있는데, 서버 측 언어로 작고 빠르게 구문 분석하고 Javascript는 JSON 문자열을 객체로 직렬화 해제하기 때문에 AJAX 호출에 유용합니다.
// The parenthesis '(' & ')' around the object are important here
var o = eval('(' + "{key: \"value\"}" + ')');
특수 문자 또는 공백이 포함되어 있으면 키를 따옴표 안에 넣을 수도 있지만 작업하기가 더 어려워지기 때문에 권장하지 않습니다.
있다는 사실을 숙지 자바 스크립트 객체 리터럴 표기법 자바 스크립트 언어는 메시지 전달을위한 JSON 표준 다르다. 2의 주요 차이점은 함수와 생성자가 JSON 표준의 일부가 아니지만 JS 객체 리터럴에서 허용된다는 것입니다.
객체 리터럴 구문의 일부입니다. 기본 형식은 다음과 같습니다.
var obj = { field_name: "field value", other_field: 42 };
그런 다음 다음을 사용하여이 값에 액세스 할 수 있습니다.
obj.field_name; // -> "field value"
obj["field_name"]; // -> "field value"
함수를 값으로 가질 수도 있으며 기본적으로 객체의 메소드를 제공합니다.
obj['func'] = function(a) { return 5 + a;};
obj.func(4); // -> 9
변수로 객체를 나열하는 데 사용할 수 있습니다. 또한 if 문장의 약어로 약간 사용됩니다.
var something = {face: 'hello',man: 'hey',go: 'sup'};
그리고 이것을 이렇게 불러
alert(something.man);
또한 if 문장 :
function something() {
(some) ? doathing() : dostuff(); // if some = true doathing();, else dostuff();
}
일반적으로 JavaScript에서 콜론 ':'이 사용되는 시나리오입니다.
1- 객체 선언 및 초기화
var Car = {model:"2015", color:"blue"}; //car object with model and color properties
2- 라벨 설정 (복잡한 제어 구조 및 스파게티 코드가 생성되므로 권장하지 않음)
List:
while(counter < 50)
{
userInput += userInput;
counter++;
if(userInput > 10000)
{
break List;
}
}
3 스위치 설명
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- 삼항 연산자
document.getElementById("demo").innerHTML = age>18? "True" : "False";
||. 예 : var a = false, b = a || 'Default value';동등하다var a = false, b = a : 'Default value';
JSON 또는 JavaScript 객체 표기법입니다. 객체 또는 해시 맵을 설명하는 빠른 방법입니다. 콜론 앞의 것은 속성 이름이고 콜론 뒤의 것은 그 값입니다. 따라서이 예제에는 변수 r에 값이있는 속성 "r"이 있습니다. t도 마찬가지입니다.
내가 얼마 전에 한 바보 같은 실수는 일부 사람들에게 도움이 될 수 있습니다.
이와 같은 이벤트에서 ":"을 사용하면 값이 변경되지 않습니다.
var ondrag = (function(event, ui) {
...
nub0x: event.target.offsetLeft + event.target.clientWidth/2;
nub0y = event.target.offsetTop + event.target.clientHeight/2;
...
});
따라서 "nub0x"는 처음 발생하는 이벤트로 초기화되며 값이 변경되지 않습니다. 그러나 다음 이벤트에서는 "nub0y"가 변경됩니다.
event.target.offsetLeft + event.target.clientWidth/2;ondrag 메소드가 호출 될 때마다 명령문 이 실행되지만 값을 절대로 할당하지 마십시오.nub0x
:마치 것처럼 취급되고 ||있습니다. 따라서, 거짓이 event.target.offsetLeft + event.target.clientWidth/2;될 때마다 트리거됩니다 nub0x.
JavaScript에서 콜론의 또 다른 사용법은 변수의 이름을 바꾸는 것입니다.
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";
코드에서 이름을 바꾸려는 어색하고 긴 변수 이름을 가진 값을 반환하는 타사 라이브러리를 사용하는 경우 유용합니다.