Javascript 학습 노트 - Operator_javascript 기술에 대한 자세한 설명

WBOY
풀어 주다: 2016-05-16 18:02:32
원래의
1085명이 탐색했습니다.
1. 판단
objectName의 구문
prop
objectName이 가리키는 객체에 prop 속성이나 키 값이 포함되어 있으면 in 연산자는 true를 반환합니다.
코드 복사 코드는 다음과 같습니다.

var arr = ['one',' two', ' three','four'];
arr.five = '5';
0 in arr;//true
'one' in arr;
arr;//true에서 'five'가 판단될 수 있습니다. 'five'는 arr 객체의 속성입니다
arr;//true에서 'length'

프로토타입 체인
in 연산자 주어진 prop 속성

Object.prototype.sayHello = 'hello,world';
var foo = new Object()
'sayHello' in foo;//true; >'toString' in foo;//true;
'hasOwnProperty' in foo;//true;

객체 및 리터럴
객체를 처리할 때 in 연산자가 제대로 작동하지 않습니다. 및 특정 유형의 리터럴(문자열, 숫자)

코드 복사와 동일 코드는 다음과 같습니다.
var sayHelloObj = new String('hello,world');
var sayHello = 'hello,world'
var numObj = new Number(1)
var num = 1; >
sayHelloObj의 'toString' //true
sayHello의 'toString'; //입력 오류

'toString' in numObj;//true
'toString' in num; //유형 오류


그 이유는 MDN에서 String 개체 및 리터럴 변환에 대한 소개를 찾았기 때문입니다. 이 소개는 이 이유를 설명하는 것 같습니다.


JavaScript가 자동으로 변환하기 때문입니다. 문자열 기본 요소와 문자열 개체 사이에서 문자열 기본 요소에 대한 String 개체의 메서드를 호출할 수 있습니다. JavaScript는 자동으로 문자열 기본 형식을 임시 String 개체로 변환하고 해당 메서드를 호출한 다음 임시 String 개체를 삭제합니다. 문자열 리터럴에서 생성된 문자열 기본 요소에 String.length 속성을 사용할 수 있습니다.
이렇게 이해해 보세요. in은 메서드가 아니라 연산자이기 때문에 문자열 리터럴은 자동으로 String 개체로 변환될 수 없습니다. in 연산자의 쿼리 객체는 객체가 아니라 문자열(베테랑 Douglas에 따르면 객체와 유사한 유형일 뿐임)이므로 유형 오류가 보고됩니다.


2. 순회

는 매우 일반적으로 사용되는 for...in 루프 문입니다. 이 문의 in은 다른 문법 사양을 따라야 합니다.
for(객체의 변수)

in을 연산자로 단독으로 사용하는 것과 달리 for...in 루프 문은 프로토타입 체인의 사용자 정의 속성을 포함한 사용자 정의 속성만 순회합니다. toString과 같은 내장 속성이 탐색됩니다.

객체


function Bird (){
this.wings = 2;
this.feet = 4;
this.flyable =
}
var Chicken = new Bird(); flyable = false ;
for(var p in Chicken){
alert('chicken.' p '=' Chicken[p])
}


문자열 개체, 테스트된 Firefox, Chrome, Opera 및 Safari 브라우저는 모두 댓글에 결과를 제공하지만 IE 브라우저만 '자세히' 및 '세계'만 제공합니다.


코드 복사 코드는 다음과 같습니다. var str = new String('hello')
str.more = 'world'
for(var p; in str){
alert(p);//'more',0,1,2,3,4
alert(str[p]);//'world','h','e ' ,'l','l','o'
}


리터럴
배열 리터럴의 키 값과 속성 순회



코드 복사 코드는 다음과 같습니다. var arr = ['one','two',' three',' 4'];
arr.five = '5';
for(var p in arr){
alert(arr[p]);//'1','2','3' ,'four',' five'
}


문자열 리터럴을 탐색합니다. 문자열 리터럴 앞에 in 연산자만 사용하면 유형 오류가 보고되지만 다음 코드는 정상적으로 실행될 수 있습니다. . 이때 IE 브라우저는 무음입니다


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿