찾다
웹 프론트엔드JS 튜토리얼js 객체와 arrays_javascript 기술에 대한 숨겨진 이야기

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

/*
배열 및 객체 [JavaScript 최종 가이드, 5판]
*/

/*
객체: 순서가 지정되지 않은 속성 집합입니다. 속성 각각에는 고유한 이름과 값이 있습니다*/

/* 객체를 생성하는 간단한 방법, 객체 직접 수량*/
var obj =
var obj = {name: 'maxthon '};
var obj = {name: {}, text: []};

/* 새로운 연산자를 사용할 수 있습니다*/
var a = new Array(); var d = new Date();
var r = new RegExp('javascript', 'i');
var o = new Object(); 참고: new 연산자 뒤에는 생성자가 있으므로
typeof Array; // 'function'
typeof Object; // 'function'
Object는 Function의 인스턴스입니다. 객체 예시의 특수 객체입니다.

/* 객체 속성*/
// 속성 값에 액세스하는 데 사용합니다. 동시에 사용되며 속성은 Name 내에서 사용됩니다(변수를 사용할 수 있으며 이는 특히 유용합니다).
t.text = 'hello'; {};
t.o.name = 'rd';
t.n = [];

var t = {
"text": "hello"
콘솔 .log(t.text); // 'hello' ;
// 보충: var 키워드는 일반적으로 변수를 선언하는 데 사용되지만 객체 속성을 선언할 때는 var를 사용하여


/* 객체 열거*/

var F = function () {};
F.prototype.name = 'RD'
var obj = new F; var key in obj) {
console.log(key) ; // name;
}

// 객체 자체만 열거하고 프로토타입 체인을 검색하지 마세요.
(obj의 var 키) {
if (obj.hasOwnProperty(key )) {
console.log(key); //
}
}
/* 참고: for in은 할 수 없습니다. 미리 정의된 속성을 열거합니다. */


/* 속성 존재 확인*/

window.a = 'rd'
console.log(a in window); // true;

var F = function () {};
F.prototype.name = 'RD'
var obj = new F; ' in obj); // true;


var toString = Object.prototype.toString;

// 객체 obj에 getName 메서드가 포함되어 있으면 이를 실행합니다. if (obj.getName && toString.call(obj.getName ) === '[객체 함수]') ) {
obj.getName()
}

// 보충:
console.log(null == undefine); / / true;
console.log(null !== undefine); // true; 🎜>delete obj.name;
// 보충: delete 연산자를 사용하면 var를 사용하여 선언된 변수를 삭제할 수 없습니다.


/* 연관 배열로서의 객체*/

// 객체 속성 가져오기:
obj.name ;
obj['name']; // 여기서 name은 문자열입니다.

// []를 사용하여 표현하면 속성 이름은 다음과 같습니다.
// 작업 중 작업 추가
// 참고: 이 속성은 변수로 전달될 때 특히 유용합니다.
// 연관 배열
/* 매핑: JavaScript 객체 핸들 문자열(속성 이름)이 값에 매핑됩니다. */
for (var key in obj) {
console.log(key); , 여기에 값으로 존재합니다.



/*
공통 객체 속성 및 메서드

JavaScript의 모든 객체는 Object 클래스에서 상속됩니다. 🎜>
1, 생성자 속성.
*/
var F = function () {}
var f = new F; (f.constructor == F); / / true

// 생성자의 프로토타입에는 자신을 가리키는 생성자가 있습니다.
F.prototype.constructor == F; >// 보충:
var F = function ( ) {};
var G = function () {}
G.prototype = new F

var g = new G; ;
console.log(g.constructor == F); // true;
console.log(g.constructor == G) // false를 사용할 수 있습니다. ;


/*
2, toString() 메소드
*/
{'name': 'maxthon'}.toString() // '[object Object] '

/* 배열은 toString 메소드를 사용하고, 요소를 문자열로 결합하면 다른 객체는 [object Object]로 변환됩니다.
함수는 원래 toString 메소드를 사용하며, 함수 소스 코드는 획득됨*/
['a', 'b', 1, false, [' e','f'], {}].toString()
// "a,b,1, false,e,f,[객체 객체]"

function t() {
console.log('test');
}
t.toString();
// 소스 코드

/*
3, toLocalString();
객체의 현지화된 문자열을 반환합니다.
4, valueOf()>는 기본 유형.valueOf/toString.
5, hasOwnProperty();
6, propertyIsEnumberable();
열거 가능 여부;
7, isPrototyeOf( b);
a가 b의 프로토타입이면 true를 반환합니다.
* /
var o = {} // new Object; true;
Object.isPrototyeOf(o); // false; >
/* [함수 인스턴스가 존재할 때 클로저가 존재합니다. 가비지가 재활용되지 않으면 할당 참조가 존재합니다. ] */



/*
배열: 순서가 지정된 컬렉션

요소라고도 하는 각 값은 아래 첨자에 해당합니다.
아래 첨자는 0부터 시작합니다.
배열의 값은 배열, 개체, null 등이 될 수 있습니다. 정의되지 않음

// 생성.
var arr = []
var arr = new Array(); 🎜>var arr = [1,2,3, null, 정의되지 않음, [], {}, t];

/* new 연산자를 사용하여 배열을 생성하는 세 가지 경우: */
var arr = new Array() // [], 직접 수량과 동일

var arr = new Array(5); // 길이는 5입니다.
console.log(arr) // []; >
var arr = new Array('5'); // 값은 ['5']입니다.
var arr = new Array('test'); // 값은 ['test']입니다. ;

/* 관련 예*/
var s = [1, 2, 3] = 'a'
console.log(s); 🎜>[ 1, 2, 3, 정의되지 않음, 정의되지 않음, 'a']



/* 배열 읽기 및 쓰기*/

value = array[0] ;
a[1] = 3.14;
a[i] = 3; // 배열 -> 객체-> 속성
array.test = 'rd'

// 배열 첨자는 0보다 크거나 같고 2보다 작습니다. 32 빼기 1의 거듭제곱입니다.
/ / 다른 값의 경우 JavaScript는 더 이상 아래 첨자가 아닌 개체 속성의 이름으로 사용되는 문자열로 변환됩니다. var array = [];
array[9] = 10; // 배열의 길이는 10이 됩니다.
// 참고: JavaScript 인터프리터는 배열 인덱스가 9인 요소에만 메모리를 할당하며 다른 인덱스는 할당하지 않습니다.

var array = [];
array.length = 10; // 배열의 길이를 추가합니다.
array[array.length] = 4; /* 배열 요소 삭제*/
// 삭제 연산자 배열 요소가 정의되지 않은 값으로 설정되었지만 요소 자체는 여전히 존재합니다.
// 실제로 삭제하려면 다음을 사용할 수 있습니다. Array.shift(); [첫번째 삭제] Array.pop(); [마지막 삭제] Array .splice(); [배열에서 연속된 범위 삭제] 또는 Array.length 길이 수정; 예제*/
var a = [1, 2, 3];
delete a[1]
console.log(a) // [1, 정의되지 않음, 3]; 🎜>/* 보충 자료: JavaScript 최종 가이드, 5판, 59페이지
by var 선언된 변수는 영구적입니다. 즉, 삭제 연산자를 사용하여 이러한 변수를 삭제하면 오류가 발생합니다.
그러나 : 개발자 도구에서는 책 쓰기에서 언급한 대로 웹 페이지에서 삭제할 수 있습니다.
*/


/* 배열 길이*/
[]. length;


/* 배열 탐색*/
var array = [1, 2, 3, 4, 5]
for (var i = 0, l = array. length; i console.log(array[i])
}

array.forEach(function (item, index, arr) {
console .log(item);
});

/* 배열: 앞에서 언급한 대로 올바른 길이*/

/* 다차원 배열*/
[[ 1], [2]]

/* 배열 방법*/
// Join
var array = [1, 2, 3, 4, 5]
var str = array .join(); // 1,2,3,4,5
var str = array.join('-') // 1-2-3-4-5
// 참고: 메서드는 String.split() 메서드와 반대입니다.

// reverse() ;
var array = [1, 2, 3, 4, 5]; ; // [5, 4, 3, 2, 1]
// 참고: 원본 배열을 수정했습니다.

// sort()
var array = [1, 3, 2, 4, 5, 3];
array.sort();// [1, 2, 3, 3, 4, 5];
/* 참고: 배열에 정의되지 않은 요소가 있습니다. 마지막에*/

/* 정렬을 사용자 정의할 수도 있습니다. sort(func)
func는 두 번째 매개변수 앞에 두 개의 매개변수를 받습니다. 그러면 비교 함수가 반환됩니다. 0보다 작은 숫자. 반대로 0보다 큰 숫자를 반환합니다. 같으면 0을 반환합니다.
* /
array.sort(function (a, b) {
return b - a;
});

// 예: 홀수에서 짝수로, 작은 것에서 큰 것으로 정렬
[1, 2, 3, 4, 5, 6, 7, 2, 4 , 5, 1].sort(함수 (a, b) {
if (a % 2 && b % 2) {
return a - b;
}

if (a % 2) {
return -1
}

if (b % 2) {
return 1
}

return a - b; 🎜>
});


// 배열을 결합하지만 깊이는 결합하지 않습니다.
var a = [1, 2, 3]; concat(4, 5); // [1, 2, 3, 4, 5]
a.concat([4, 5]) // [1, 2, 3, 4, 5]
a.concat([4, 5], [8, 9]); // [1, 2, 3, 4, 5, 8, 9]
a.concat([4, 5], [6, [10, 19]]); // [1, 2, 3, 4, 5, 6, [10, 19] ]


// 소스 배열은 그렇지 않습니다. 변경
var a = [1, 2, 3, 4, 5]
a.slice(0, 3) // [1, 2, 3]
a.slice(3) ; // [4, 5];
a.slice(1, -1) // [2, 3, 4]
a.slice(1, -1 5)
a.slice (1, 4);
a.slice(-3, -2); // [3]
a.slice( -3 5, -2 5); 3)
/* 참고:
에는 두 번째 매개변수로 지정된 요소가 포함되지 않습니다.
음수 값은 음수 값 배열 길이
*/

로 변환됩니다. // splice(pos[, len[, a, b]]) 메소드. 지정된 위치를 삭제한 후 길이 요소를 추가합니다.
// 삭제된 요소로 구성된 배열을 반환합니다. 배열이 변경되었습니다.
var a = [1, 2, 3, 4, 5, 6, 7, 8]
a.splice(4) // [ 5, 6, 7, 8]; 이때 a: [1, 2, 3, 4]
a.splice(1, 2); // [2, 3] 이때 a: [1, 4 ]; splice(1, 1); // [4]; 이때 a:

var a = [1, 2, 3, 4, 5]; 2, 0, 'a', 'b'); // [1, 2, 'a', 'b', 3, 4, 5]
a.splice(2, 2 , [1, 2] , 3); // ['a', 'b']; 이때 a: [1, 2, [1, 2], 3, 3, 4, 5]
/* 참고:
두 번째 매개변수 뒤의 매개변수는 처리 배열에 직접 삽입됩니다.
첫 번째 매개변수는 음수일 수 있습니다.


// push() 메서드와 pop() 메서드는
// push() 중 하나를 변환할 수 있습니다. more는 배열의 끝에 새 요소를 추가한 다음 배열의 새 길이를 반환합니다.
// pop()은 배열의 마지막 요소를 삭제하고 배열의 길이를 줄인 다음 해당 값을 반환합니다.
// 참고: 두 개의 각 메서드는 배열의 수정된 복사본을 생성하는 대신 원본 배열을 수정합니다.

var stack = []
stack.push(1, 2); // 스택: [1, 2 ]; return 2;
stack.pop(); // 스택: [1]; 삭제된 요소 값
stack.push(3); [1, 3]; return 2;
stack.pop(); // 스택: [1]; 삭제된 요소 값
stack.push([4, 5]); [1, [4, 5]]returm 2;
stack.pop(); // 스택: [1]; 삭제된 요소 값

// 메소드 및 Shift() 메소드. 위와 동일하며 배열의 선두부터 시작합니다.


// toString() 메소드 및 toLocalString()
[1, 2, 4].toString (); // 1,2,3 ;
['a', 'b', 'c'].toString() // 'a,b,c'// 매개변수가 없는 조인 메소드.


/* 새로운 jsapi 메소드: map, Every, some, filter, forEach, indexOf, lastIndexOf, isArray */


/* Array- like object*/

인수
document.getElementsByTagName()

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
使用PHP的json_encode()函数将数组或对象转换为JSON字符串使用PHP的json_encode()函数将数组或对象转换为JSON字符串Nov 03, 2023 pm 03:30 PM

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,已经成为Web应用程序之间数据交换的常用格式。PHP的json_encode()函数可以将数组或对象转换为JSON字符串。本文将介绍如何使用PHP的json_encode()函数,包括语法、参数、返回值以及具体的示例。语法json_encode()函数的语法如下:st

源码探秘:Python 中对象是如何被调用的?源码探秘:Python 中对象是如何被调用的?May 11, 2023 am 11:46 AM

楔子我们知道对象被创建,主要有两种方式,一种是通过Python/CAPI,另一种是通过调用类型对象。对于内置类型的实例对象而言,这两种方式都是支持的,比如列表,我们即可以通过[]创建,也可以通过list(),前者是Python/CAPI,后者是调用类型对象。但对于自定义类的实例对象而言,我们只能通过调用类型对象的方式来创建。而一个对象如果可以被调用,那么这个对象就是callable,否则就不是callable。而决定一个对象是不是callable,就取决于其对应的类型对象中是否定义了某个方法。如

使用Python的__contains__()函数定义对象的包含操作使用Python的__contains__()函数定义对象的包含操作Aug 22, 2023 pm 04:23 PM

使用Python的__contains__()函数定义对象的包含操作Python是一种简洁而强大的编程语言,提供了许多强大的功能来处理各种类型的数据。其中之一是通过定义__contains__()函数来实现对象的包含操作。本文将介绍如何使用__contains__()函数来定义对象的包含操作,并且给出一些示例代码。__contains__()函数是Pytho

使用Python的__le__()函数定义两个对象的小于等于比较使用Python的__le__()函数定义两个对象的小于等于比较Aug 21, 2023 pm 09:29 PM

标题:使用Python的__le__()函数定义两个对象的小于等于比较在Python中,我们可以通过使用特殊方法来定义对象之间的比较操作。其中之一就是__le__()函数,它用于定义小于等于比较。__le__()函数是Python中的一个魔法方法,并且是一种用于实现“小于等于”操作的特殊函数。当我们使用小于等于运算符(<=)比较两个对象时,Python

详解Javascript对象的5种循环遍历方法详解Javascript对象的5种循环遍历方法Aug 04, 2022 pm 05:28 PM

Javascript对象如何循环遍历?下面本篇文章给大家详细介绍5种JS对象遍历方法,并浅显对比一下这5种方法,希望对大家有所帮助!

Python中如何使用getattr()函数获取对象的属性值Python中如何使用getattr()函数获取对象的属性值Aug 22, 2023 pm 03:00 PM

Python中如何使用getattr()函数获取对象的属性值在Python编程中,我们经常会遇到需要获取对象属性值的情况。Python提供了一个内置函数getattr()来帮助我们实现这个目标。getattr()函数允许我们通过传递对象和属性名称作为参数来获取该对象的属性值。本文将详细介绍getattr()函数的用法,并提供实际的代码示例,以便更好地理解。g

使用Python的isinstance()函数判断对象是否属于某个类使用Python的isinstance()函数判断对象是否属于某个类Aug 22, 2023 am 11:52 AM

使用Python的isinstance()函数判断对象是否属于某个类在Python中,我们经常需要判断一个对象是否属于某个特定的类。为了方便地进行类别判断,Python提供了一个内置函数isinstance()。本文将介绍isinstance()函数的用法,并提供代码示例。isinstance()函数可以判断一个对象是否属于指定的类或类的派生类。它的语法如下

PHP代码封装技巧:如何使用类和对象封装可重复使用的代码块PHP代码封装技巧:如何使用类和对象封装可重复使用的代码块Jul 29, 2023 pm 11:19 PM

PHP代码封装技巧:如何使用类和对象封装可重复使用的代码块摘要:在开发中,经常遇到需要重复使用的代码块。为了提高代码的可维护性和可重用性,我们可以使用类和对象的封装技巧来对这些代码块进行封装。本文将介绍如何使用类和对象封装可重复使用的代码块,并提供几个具体的代码示例。使用类和对象的封装优势使用类和对象的封装有以下几个优势:1.1提高代码的可维护性通过将重复

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.