[자 바스 크 립 트 0 부터 시작] 표현 식 과 연산 자 (2)
in 연산 자 는 왼쪽 동작 수가 문자열 이거 나 문자열 로 바 뀔 수 있 기 를 바 랍 니 다. 오른쪽 동작 수가 대상 이 되 기 를 바 랍 니 다.
오른쪽 대상 이 조작 수치 라 는 속성 명 을 가지 고 있다 면 표현 식 은 true 로 돌아 갑 니 다. 예 를 들 어:
var point= {x:1 , y:1 }; //
"x" in point //=>true: "x"
"z" in point //=>false: "z"
"toString" in point //=>true : toString()
var data= [7,8,9]; //
"0" in data //=>true: "0"( )
1 in data //=>true:
3 in data //=>false: 3
eval()
왜 eval 에 "(" + data + ")" 를 추가 합 니까?
이 유 는 eval 자체 의 문제 때문이다.
json 은 '{}' 방식 으로 시작 하고 끝 납 니 다. JS 에 서 는 하나의 구문 블록 으로 처리 되 기 때문에 표현 식 으로 강제 적 으로 변환 해 야 합 니 다.
괄호 를 붙 이 는 목적 은 eval 함수 가 자바 스 크 립 트 코드 를 처리 할 때 괄호 안의 표현 식 (expression) 을 대상 으로 강제로 바 꾸 도록 하 는 것 입 니 다.
문장 (statement) 으로 실행 하 는 것 이 아니다.
예 를 들 어 대상 글자 의 양 {}, 외부 괄호 를 넣 지 않 으 면 eval 은 큰 괄호 를 자바 스 크 립 트 코드 블록 의 시작 과 끝 표시 로 인식 합 니 다. {} 은 빈 문 구 를 실행 한 것 으로 여 겨 집 니 다.그래서 다음 두 가지 집행 결 과 는 다르다.
alert(eval("{}"); // return undefined
alert(eval("({})"); // return object[Object]
이런 표기 법 은 JS 에 서 는 곳곳에서 볼 수 있다.
예: (function () {} (); 폐쇄 작업 할 때 등.
조건 연산 자 (?:)
조건 연산 자 는 자 바스 크 립 트 에서 유일한 삼원 연산 자 (세 개의 조작 수) 로 때로는 '삼원 연산 자' 라 고 직접 부른다.
보통 이 연산 자 는 '?:' 라 고 쓰 여 있 습 니 다. 물론 코드 에 서 는 이렇게 간략하게 쓰 지 않 습 니 다. 이 연산 자 는 세 개의 조작 수 를 가지 고 있 기 때 문 입 니 다.
첫 번 째 조작 수 는 '?' 이전에 두 번 째 조작 수 는 '?' 와 ':' 사이 에 있 고 세 번 째 조작 수 는 ':' 다음 에 있다.
greeting= "hello "+ (username ? username : "there");
// if , :
greeting ="hello ";
if (username)
greeting +=username;
else
greeting +="there";
type: of 연산 자
type: of 는 1 원 연산 자 입 니 다. 지연 작업 수 앞 에 놓 여 있 습 니 다. 작업 자 는 임의의 유형 이 라 고 할 수 있 습 니 다. 반환 값 은 작업 수 형식 을 나타 내 는 문자열 입 니 다.
임의의 값 은 type: of 연산 자 이후 의 반환 값 입 니 다.
x typeof x
undefuned "undefined"
null "object"
true 또는 false "boolean"
임의의 숫자 또는 NaN "number"
임의의 문자열 "string"
임 의 함수 "function"
임 의 내장 대상 (비 함수) "object"
type: of 연산 자 는 괄호 를 달 수 있 습 니 다. type: of 는 연산 자 키워드 가 아 닌 함수 명 처럼 보일 수 있 습 니 다.
typeof(x)
delete 연산 자
delete 는 대상 속성 이나 배열 요 소 를 삭제 하 는 데 사용 되 는 원 연산 자 입 니 다.
그것 은 삭제 작업 을 하 는 것 이지 가치 있 는 것 을 되 돌려 주 는 것 이 아니다.예 를 들 면:
var o = {x: 1, y : 2}; //
delete o.x; //
"x" in o //=〉false :
var a = {1,2,3}; //
delete a[2]; //
2 in a //=〉false : 2
a.length //=〉3 : , a={1,2}
var 를 통 해 설명 한 변 수 를 삭제 할 수 없 으 므 로 주의해 야 할 것 도 있 습 니 다.
예 를 들 면:
var o= {x:1 , y:2}; // ,
delete o.x; // , true
typeof o.x; // , “undefined”
delete o.x; // , true
delete o; // var , false,
delete 1; // true
this.x = 1; // , var
delete x; // , true , , “delete this.x ”
x ; // , x
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.