> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 학습 노트_javascript 기술 구성을 위한 참조 유형

JavaScript 학습 노트_javascript 기술 구성을 위한 참조 유형

WBOY
풀어 주다: 2016-05-16 15:18:49
원래의
1102명이 탐색했습니다.

참조 유형은 JavaScript에서 매우 중요합니다. 참조 유형은 데이터와 기능을 함께 구성하는 데 사용되는 데이터 구조입니다. 개체 유형의 속성과 메서드를 설명합니다. Object는 기본 유형, Array는 배열 유형, Date는 날짜 유형, RegExp는 정규식 유형 등입니다.

자바스크립트 수용

한때 알려지지 않았던 JavaScript는 AJAX의 인기로 그 가치가 두 배로 높아졌습니다. 이제 JavaScript는 더 이상 WEB 개발에 꼭 필요한 보조 도구가 아닙니다. WEB 백엔드 개발 프로그래머라면 최소한 JavaScript를 알아야 합니다. 적어도 일부 관련 직업 요구 사항에서는 "JavaScript에 익숙한 것이 선호됩니다"라는 말을 볼 수 있습니다. HTML+CSS+JavaScript로 AIR를 개발하는 Adobe AIR의 또 다른 개발 모델 덕분에 JavaScript로 데스크톱 소프트웨어를 개발할 수 있게 될 것이라고 말씀드리고 싶습니다.

1.객체 종류

1. 만들기:

var dog = new Object(); 
로그인 후 복사

데이터를 저장하고 전송하는 데 일반적으로 사용됩니다. 예를 들어 저장공간은 다음과 같습니다.

var person = new Object();
person.name = "Nicholas";
person.age = 29; 
로그인 후 복사

두 번째 생성 방법: (생성 시 속성 이름을 문자열 형식으로 지정할 수도 있습니다. 즉, 속성 이름에 따옴표를 추가할 수 있습니다.)

var person = {
name : "Nicholas",
age : 29
}; 
로그인 후 복사

2. 속성 값 가져오기: person["name"] 또는: person.name;

2.배열형

동일한 어레이는 모든 유형의 데이터(혼돈)를 저장할 수 있습니다.

1. 배열은 동적으로 조정될 수 있습니다(데이터를 하나 더 추가하면 길이가 저절로 늘어나며 죽지 않습니다.).

2. 만들기:

var stars=new Array();//方式1
var stars=new Array(20);//方式2
var stars=new Array("周杰伦","林俊杰","孙燕姿");//方式3
var stars=Array(20);//方式4
var stars=["周杰伦","孙燕姿","林俊杰"];//方式6 
로그인 후 복사

3. 동적 조정 예:

var stars=["周杰伦","林俊杰","孙燕姿"];
stars[1]="JJ";//动态改变(把林俊杰变为JJ)
stars[3]="皮裤汪";//动态增长(加了一个长度)
stars.length=1;//动态强制缩减(林俊杰、孙燕姿、皮裤汪强制移除,长度变为1) 
로그인 후 복사

4. 배열 감지: Array.isArray(value);

5. Join()을 사용하여 배열을 구분된 문자열로 변환합니다.

var stars = ["周杰伦", "王尼玛", "张全蛋"];
alert(stars .join(",")); //周杰伦,王尼玛,张全蛋
alert(stars .join("-")); //周杰伦-王尼玛-张全蛋 
로그인 후 복사

6. 스택과 같은 배열을 사용할 수 있습니다(pop() out, push() in).

7. 배열은 대기열처럼 사용될 수 있습니다. (shift()와 push() 결합):

var stars = new Array(); //create an array
var count = colors.push("周杰伦", "王尼玛"); //push two items
alert(count); //2
count = stars .push("张全蛋"); //push another item on
alert(count); //3
var item = colors.shift(); //get the first item
alert(item); //周杰伦
alert(colors.length); //2
/**所谓栈变队列,其实就是把栈颠倒过来再拉取*/ 
로그인 후 복사

8. 정렬.

1.reverse()배열 순서를 반대로 바꿉니다(정렬된 배열 반환)

2.sort()작은 것부터 큰 것 순으로 정렬합니다. 그러나 숫자가 아닌 문자열을 기준으로 정렬됩니다. (정렬된 배열을 반환합니다)

var values = [, , , , ];
values.sort();
alert(values); //,,,,
로그인 후 복사

원하는 방식으로 정렬하려면 sort()에 매개변수로 비교 함수를 추가할 수 있습니다.

function compare(value, value) {
if (value < value) {
return -;
} else if (value > value) {
return ;
} else {
return ;
}
}
var values = [, , , , ];
values.sort(compare);
alert(values); //,,,, 
로그인 후 복사

비교 함수의 단순화된 버전(정렬은 양수, 음수 또는 0 반환 여부만 고려함):

function compare(value1,value2){
return value2 - value1; 
} 
로그인 후 복사

9. 배열 작업: 결합, 슬라이싱, 접합.

1. 연결 : concat 사용, 메모리: concat-->concatenate: 연결, 체인.

예:

var stars = ["周杰伦", "王尼玛", "张全蛋"];
var stars = stars .concat("太子妃", ["花千骨", "梅长苏"]);
alert(stars); //周杰伦,王尼玛,张全蛋 
alert(stars); //周杰伦,王尼玛,张全蛋,太子妃,花千骨,梅长苏 
로그인 후 복사

2.슬라이스. 슬라이스, 메모리 사용: 슬라이스 번역: 슬라이스. 예:

var stars = ["梅长苏", "誉王", "靖王", "霓凰", "飞流"];
var stars= stars.slice();
var stars= stars.slice(,);
alert(stars); //誉王,靖王,霓凰,飞流(从第一个位置开始切)
alert(stars); //誉王,靖王,霓凰(从第个位置切到第个位置,表示半封闭,不包含) 
로그인 후 복사

3.접합. 접착. 강한. 삭제, 삽입, 교체가 가능합니다.

1.항목 수에 관계없이 삭제: 예: splice(0,2), 0번째 및 1번째 항목(반 닫힌 간격)을 삭제합니다(삭제된 항목 반환).

2.지정된 위치에 원하는 수의 항목을 삽입합니다. 예: splice(2,0,"Jay Chou","王尼马"), Jay Chou 및 Wang NIMA를 다음에서 시작하여 삽입합니다. 2위 항목은 2개입니다.

3.지정된 위치에 원하는 만큼의 항목을 삽입하고 동시에 원하는 만큼의 항목을 삭제하세요. 예: splice(2,1,"Jay Chou","Wang Nima"), 두 번째 위치에서 항목 하나를 삭제한 다음 Jay Chou와 Wang Nima라는 두 항목을 삽입하기 시작합니다.

10. 위치 방식: indexOf, lastIndexOf;

11. 반복 방법: 다음으로 구분됩니다: 모두 자격이 있는 경우에만 통과, 하나라도 자격이 있으면 통과, 일부 잔여물 필터링, 일대일 매핑, 반복 쿼리 및 축소.

1. 모두 자격을 갖춘 경우에만 통과:

var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item, index, array){
return (item > 2);
});
alert(everyResult); //false 
로그인 후 복사

위 예에서는 각 항목이 2보다 큰 경우에만 true가 반환됩니다.

2. 하나라도 합격하면 합격:

var numbers = [1,2,3,4,5,4,3,2,1];
var someResult = numbers.some(function(item, index, array){
return (item > 2);
});
alert(someResult); //true 
로그인 후 복사

위의 예에서 1이 2보다 크면 true를 반환합니다.

3. 찌꺼기 부분 필터링 :

var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item, index, array){
return (item > 2);
});
alert(filterResult); //[3,4,5,4,3] 
로그인 후 복사

위의 예에서는 2보다 큰 모든 값이 필터링됩니다.

4. 일대일 매핑:

var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult = numbers.map(function(item, index, array){
return item * 2;
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2] 
로그인 후 복사

위 예에서는 각 항에 2를 곱합니다.

5. 반복: for-each를 사용합니다.

6. 줄이다: 줄이다.

var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
return prev + cur;
});
alert(sum);//15
로그인 후 복사

累加求和返回,5项缩为1项。 

3.RegExp类型

1.var expression=/ pattern / flags;

2.flags分三种:g(global全局模式,应用于所有字符串)、i(case-insensive,忽略字母大小写)、m(multiline,多行模式,一行检验完了接着下一行。)。举例:

/**匹配字符串中所有'at'的实例*/
var pattern1=/at/g;
/**匹配第一个'bat'或'cat',不分大小写*/
var pattern2 =/[bc]at/i;
/**匹配所有以'at'结尾的3个字符组合,不分大小写*/
var pattern3=/.at/gi; 
로그인 후 복사

3.模式中所有的元字符必须转义,元字符:( { [ \ ^ $ | ) ? * + . ] }

4.Function类型

1.每个函数都是Function类型的实例,而且与其他引用类型一样,都有属性和方法。

2.函数的两种定义方法:

方法1:

function sum(a,b){
return a + b; 
} 
로그인 후 복사

方法2:

var sum=function(a,b){
return a + b;
} 
로그인 후 복사

3.函数没有重载。

5.Boolean、Number、String:基本包装类型

var a="Jay Chou is a superstar";
var b=a.substring(0,8); 
로그인 후 복사

上例中,a是基本类型,但是a可以调用substring方法,是因为,后台自动完成a的包装操作,创建String类型的一个实例。Boolean,Number也类似。

6.单体内置对象,不需要实例化,直接使用,如:Math,Global。

1.所有全局作用域中定义的函数、变量,都是Global对象的方法,比如:parseInt,isNaN等。

2.eval()方法也是Global对象的方法,它负责解析javascript。

3.Math对象是保存数学公式和相关信息的。它有很多方法, 如:min求最小值,max求最大值,ceil()向上取整,floor向下取整,round四舍五入,random取随机数。

ps:引用类型理解:变量的交换等于把现有一间店的钥匙(变量引用地址)复制一把给了另外一个老板,此时两个老板同时管理一间店,两个老板的行为都有可能对一间店的运营造成影响。

引用类型例子

function chainStore()
{
var store1=['Nike China'];
var store2=store1;
alert(store2[0]); //Nike China
store1[0]='Nike U.S.A.';
alert(store2[0]); //Nike U.S.A.
}
chainStore();
//在上面的代码中,store2只进行了一次赋值,理论上它的值已定,但后面通过改写store1的值,发现store2的值也发生了改变,这正是引用类型的特征,也是我们要注意的地方
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿