배열 소개
개념 : 여러 개의 데이터를 일정한 순서로 모아 놓은 것인데, 전체적으로 '배열'이라고 부릅니다. 배열은 순서가 지정된 데이터 모음입니다.
정의 형식:
<span>var</span> arr1 = <span>new</span> Array(<span>1</span>, <span>5</span>, <span>8</span>, <span>7</span>, <span>2</span>, <span>10</span>); <span>//</span><span>定义了一个数组,其中具有6个数据</span> <span>var</span> arr2 = <span>new</span> Array(); <span>//</span><span>只是单纯地定义了一个数组(名),但没有给值(数据),即现在是空的</span> <span>var</span> arr3 = [<span>1</span>, <span>5</span>, <span>8</span>, <span>7</span>, <span>2</span>, <span>10</span>]; <span>//</span><span>同arr1,只是一种简写的定义法。</span> <span>var</span> arr4 = [ ]; <span>//</span><span>同arr2,也是一个空数组。</span>
배열의 사용법: 소위 사용법은 실제로 배열의 각 항목을 사용하는 것을 의미합니다.
값:
<span>var</span> v1 = arr1[<span>0</span>]; <span>//</span><span>取得数组arr1中的第一项,0叫做下标</span> <span>var</span> v2 = arr3[<span>3</span>] + <span>10</span>; <span>//</span><span>取得数组arr3中的第4项,4叫做下标</span> ——所谓下标,其实就是数组的每一个数据的“顺序号”——从0开始编号,是连续的整数。
과제:
arr1[0] = 10;
arr2[<span>0</span>] = <span>22</span><span>; arr2[</span><span>1</span>] = <span>33.3</span><span>; arr2[</span><span>2</span>] = “<span>444</span><span>”; arr2[</span><span>3</span>] =<span> “abc”; arr2[</span><span>4</span>] = <span>true</span>;
//이때 배열 arr2는 다음과 동일합니다: [ 22, 33.3, “444”, “abc”, true ]
배열의 "시각적 이미지"(arr3을 예로 사용):
下标值: <span>0</span> <span>1</span> <span>2</span> <span>3</span> <span>4</span> <span>5</span><span> 数据值: </span><span>1</span> <span>5</span> <span>8</span> <span>7</span> <span>2</span> <span>10</span>
배열의 길이, 즉 배열에 포함된 데이터 수를 구하는 구문은 다음과 같습니다.
var v1 = 배열 이름.길이;
특별 참고 사항: 배열의 최대 첨자는 배열 길이에서 1을 뺀 값입니다.
배열 탐색의 일반적인 패턴:
var len = 배열 이름.길이;
for(var i = 0; i
{
//배열의 각 항목을 처리하는 방법은 다음과 같습니다. 배열 이름[i]
}
배열 탐색의 또 다른 형태 - for in 루프 문입니다.
for( 배열 이름 arr1의 var v1 )
{
//다음은 배열 arr1에 대한 순회 루프인 루프 본문입니다. 여기서 v1의 값은 배열의 각 항목을 나타내는 아래 첨자 값입니다.
//v1은 각 첨자를 나타내는 "임시 변수"일 뿐이며, 0에서 배열의 최대 첨자로 변경됩니다.
}
"2차원" 배열:
<span>var</span> v1 = [<span>2</span>, <span>5</span>, <span>1</span>, <span>5</span><span>]; </span><span>var</span> v2 = [<span>5</span>, <span>1</span>, <span>6</span>, <span>8</span><span>]; </span><span>var</span> v3 = [<span>8</span>, <span>0</span>, <span>9</span>, <span>7</span><span>]; </span><span>var</span> v4 =<span> [v1, v2, v3]; </span><span>var</span> v5 =<span> [ [</span><span>2</span>, <span>5</span>, <span>1</span>, <span>5</span><span>], [</span><span>5</span>, <span>1</span>, <span>6</span>, <span>8</span><span>], [</span><span>8</span>, <span>0</span>, <span>9</span>, <span>7</span><span>] ]; </span>
——v4와 v5는 실제로 차이가 없습니다. 둘 다 "2차원 배열"이라고 할 수 있습니다.
"2차원" 배열 요소에 대한 연산:
값:
var s1 = v5[0][1]; //5 //배열 v5에서 첫 번째 항목의 두 번째 항목을 가져오는 것과 같습니다(여전히 배열입니다).
var s2 = v5[2][3] + 100; //107
과제:
v5[0][1] = 200;
v5[2][3] = 300;
배열 객체의 일반적인 방법:
메서드란 무엇입니까? 메소드는 실제로 함수입니다! ——함수가 "객체"에 "속하는" 경우 해당 함수를 객체의 메서드라고 합니다.
<span>function maibao(){ document.write(“啦啦啦,我是卖报的小行家,卖报啦卖报啦。”); } </span><span>var</span> myDreamGirl =<span> { name: “小花”, age:</span><span>18</span><span>, edu:”大学”, sex:”女”, nengli1: function (){ document.write(“洗衣!”); } , nengli2: function (){ document.write(“做饭!”); } , nengli3: maibao }; </span><span>var</span> v1 = [<span>2</span>, <span>5</span>, <span>1</span>, <span>5</span><span>]; </span><span>var</span> v2 = [<span>5</span>, <span>1</span>, <span>6</span>, <span>8</span>];
엄밀히 말하면 배열도 객체입니다. 심지어 문자열도 객체입니다.
객체로서 v1에는 속성과 메서드가 있습니다.
속성:
array.length: 배열 객체의 길이를 나타냅니다
방법:
array.concat(다른 배열): 두 개의 배열을 연결하여 새로운 "더 긴" 배열을 형성합니다.
var s1 = v1.concat( v2
); //이때 s1은 다음과 같은 배열입니다: [2, 5, 1, 5, 5, 1, 6, 8];
array.join("string"): 지정된 문자가 포함된 배열의 모든 항목을 "긴" 문자열로 "연결"합니다.
바 s2 = v1.join("//"); //결과 s2는 문자열 "2//5//1//5"입니다.
某数组.pop(); //将该数组的最后一项“移除”(删除),并返回该项数据,即该数组少了一项
var s3 = v1.pop(); //结果v1只剩这个:[2,5,1]; s3的值是5
某数组.push(新数据项d1); //将新的数据d1添加到该数组的最后位置,即数组多了一项。
var s4 = v1.push( 55 ); //v1此时为:[2,5,1, 55], s4的值为新数组的长度,即4
某数组.shift(); //将该数组的第一项“移除”(删除),并返回该项数据,即该数组少了一项
var s5 = v1.shift(); //结果v1只剩这个:[5, 1,55]; s5的值是2
某数组.unshift(新数据项d1); //将新的数据d1添加到该数组的最前位置,即数组多了一项。
var v6 = v1.unshift( 66 ); //v1此时为:[66, 5, 1, 55], s6的值为新数组的长度,即4
javascript语言是一门基于对象的语言。
字符串对象:
<span>var</span> str1 = <span>new</span> String(“abcdefgabc”); <span>//</span><span>这是一个“字符串对象”</span> <span>var</span> str2 = “abcdefgabc”; <span>//</span><span>这个字符串跟前面str1几乎没有区别</span> <span>字符串对象的属性: .length——获得一个字符串的长度(也就是字符个数) 字符串对象的方法: </span><span>1</span>. str1.charAt( n ); ——获得字符串str1中位置为n的那个字符(字符的位置也是从0开始算起)<span>var</span> s1 = str1.charAt( <span>3</span> ); <span>//</span><span>s1的结果是:”d”</span> <span>2</span><span>. str1.toUpperCase(); ——获取str1全部转换为大写的结果 </span><span>var</span> s2 = str1.toUpperCase(); <span>//</span><span>s2的结果是:”ABCDEFGABC”</span> <span>3</span><span>. str1.toLowerCase(); ——获取str1全部转换为小写的结果 </span><span>var</span> s3 = str1.toLowerCase(); <span>//</span><span>s3的结果是:”abcdefgabc”</span> <span>4</span><span>. str1.replace(“字符1”, “字符2”); ——将str1中的“字符1”替换为“字符2” </span><span>var</span> s4 = str1.replace(“cd”, “<span>999</span>”); <span>//</span><span>s4的结果是:”ab999efgabc”</span> <span>5</span>. str1.indexOf(“字符1”); ——获得“字符1”在str1中第一次出现的位置,如果没有出现,结果是-<span>1</span> <span>var</span> s5 = str1.indexOf(“ab”); <span>//</span><span>s5的结果是0</span> <span>6</span>. str1.lastIndexOf(““字符1”); ——获得“字符1”在str1中最后一次出现的位置,如果没有出现,结果是-<span>1</span> <span>var</span> s6 = str1.lastIndexOf(“ab”); <span>//</span><span>s6的结果是7</span> <span>7</span><span>. str1.substr(n, m ) ——取得str1中从位置n开始的m个字符,m可以省略,则表示从位置n一直取到字符串的最后——注意,这种“取”并不影响str1这个原始字符 </span><span>var</span> s7 = str1.substr(<span>2</span>, <span>4</span>); <span>//</span><span>s7为:”cdef”</span> <span>8</span><span>. str1.substring( n, m )——取得str1中从位置n到位置m的前一个字符。 </span><span>var</span> s8 = str1.substring(<span>2</span>, <span>4</span>); <span>//</span><span>s8为:”cd”</span> <span>9</span><span>. str1.split(“字符1”) ——将str1以指定的“字符1”为分界,分割成一个数组,结果是一个数组 </span><span>var</span> s9 = str1.split(“b”); <span>//</span><span>s9的结果是一个数组:[“a”, “cdefga”, “c”]</span>
Math对象
Math对象是一个系统内部定义的对象,我们无需去“新建一个Math对象”——跟string对象和array对象不同。即Math对象是直接使用的。
我们学习Math对象,无非是学习一些常见的数学处理函数——这里当就叫做方法了:
属性:
Math.PI——代表圆周率这个“常数”
方法:
<span>1</span><span>. Math.max(数值1,数值2,…..) ——求得若干个数值中的最大值。 </span><span>2</span><span>. Math.min(数值1,数值2,…..) ——求得若干个数值中的最小值。 </span><span>3</span><span>. Math.abs( 数值1) ——求得数值1的绝对值 </span><span>4</span><span>. Math.pow( x,y) ——求得数值x的y次方,也就是“幂运算” </span><span>5</span><span>. Math.sqrt( x ) ——求得x的开方 </span><span>6</span><span>. Math.round( x ) ——求得x的四舍五入的结果值; </span><span>7</span><span>. Math.floor( x ) ——求得x的向下取整的结果,即找到不大于x的一个最大的整数。 a) Math.floor( </span><span>3.1</span> ) ? <span>3</span><span> b) Math.floor( </span><span>3.8</span> ) ? <span>3</span><span> c) Math.floor( </span><span>3</span> ) ? <span>3</span><span> d) Math.floor( </span>-<span>3.1</span> ) ? -<span>4</span><span> e) Math.floor( </span>-<span>3.8</span> ) ? -<span>4</span> <span>8</span><span>. Math.ceil( x ) ——求得x的向上取整的结果,即找到不小于x的一个最小的整数 a) Math.floor( </span><span>3.1</span> ) ? <span>4</span><span> b) Math.floor( </span><span>3.8</span> ) ? <span>4</span><span> c) Math.floor( </span><span>3</span> ) ? <span>3</span><span> d) Math.floor( </span>-<span>3.1</span> ) ? -<span>3</span><span> e) Math.floor( </span>-<span>3.8</span> ) ? -<span>3</span> <span>9</span>. Math.random() ——获得一个0~<span>1范围中的随机“小数”,含0,但不含1 </span><span>//</span><span>获得两个整数(n1,n2)之间的随机整数的通用做法:</span> <span>var</span> v1 =<span> Math.random() v1 </span>= v1 * (n2-n1+<span>1</span><span>); v1 </span>= Math.floor( v1 ) + n1; <span>//</span><span>此时v1就是结果 </span><span>//</span><span>将上述3步写出一步就是(通用公式):</span> <span>var</span> v1 = Math.floor( Math.random() * (n2-n1+<span>1</span>) ) + n1
以上就介绍了php基础学习笔记(4),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。