>웹 프론트엔드 >JS 튜토리얼 >javascript Array.prototype.slice_javascript 스킬 사용 예

javascript Array.prototype.slice_javascript 스킬 사용 예

WBOY
WBOY원래의
2016-05-16 17:15:20852검색

종종 Array.prototype.slice(arguments, 0);를 볼 수 있습니다. 이 작성 방법은 함수 매개변수 목록을 실제 배열로 변환할 수 있는 function() {} 내에서 사용할 수 있습니다. 예를 참조하세요.

코드 복사 코드는 다음과 같습니다.

var Slice = Array .prototype.slice;
var toString = Object.prototype.toString;
(function() {
var args = 인수;
console.log(args, toString.call(args)); // [ 1, 2, 3] "[객체 인수]"
var argsArr = Slice(args, 0);
console.log(argsArr, toString.call(argsArr)) // [1, 2, 3 ] "[object Array]"
}(1,2,3))

함수 매개변수 목록 인수가 호출된 후 1초 만에 Array로 변경되는 것을 확인할 수 있습니다. 일부분.
마찬가지로 선택한 DOM 요소를 배열로 변환할 수도 있습니다.
코드 복사 코드는 다음과 같습니다.

slice.call(document.querySelectorAll("div"));

단서를 따라가며 생각해 봅시다. 슬라이드 메소드가 객체를 객체로 변환할 수 있을까요? 정렬? 예를 참조하세요.
코드 복사 코드는 다음과 같습니다.

console.log (slice.call( 'string')); // ["s", "t", "r", "i", "n", "g"]
console.log(slice.call(new String('string' ))); // ["s", "t", "r", "i", "n", "g"]

매번 문자열은 배열로 직접 변환됩니다.
단, 숫자와 불리언 값은 빈 배열로 변환됩니다:
코드 복사 코드는 다음과 같습니다 :

console.log(slice.call(33));
console.log(slice.call(true))

일반 객체도 길이 속성을 추가하지 않는 한 빈 배열로 변환됩니다.
코드 복사 코드는 다음과 같습니다.

console.log(slice.call({name: 'obj'})) // []
console.log(slice.call({0: 'zero', 1: 'one '})); // []
console.log(slice.call({0: 'zero', 1: 'one', name: 'obj', length: 2})) // [" zero", "one "]

또한 배열을 복제하는 데에도 사용할 수 있습니다.
코드 복사 코드는 다음과 같습니다.

var srcArr = [1,2,3];
var newArr = srcArr.slice(0);
console.log( srcArr, newArr); // [1,2,3] [1,2,3]
console.log(srcArr == newArr) // false
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.