Javascript基礎(chǔ)3
1.數(shù)組
- 數(shù)組是一組數(shù)據(jù)類型
- 數(shù)組可以存儲(chǔ)很多項(xiàng),有順序,很多項(xiàng)形成一個(gè)集合,這個(gè)集合就是數(shù)組Array;
- 數(shù)組的字面量就是[];
var Array = [];
- 如何獲取數(shù)組中的數(shù)據(jù)
索引/下標(biāo) ,數(shù)組中的第一項(xiàng)的索引是從0開始;
var names = ['kk','wxf','ps','ps1'];
console.log(names[0]); //'kk'
console.log(names[1]); //'wxf'
console.log(names[2]); //'ps'
console.log(names[3]); //'ps1'
console.log(names[4]); //underfind
//動(dòng)態(tài)插入/修改元素
names[0]='xxxx';
names[4] ='keke';
console.log(names[0]);
console.log(names[4]);
// 獲取數(shù)組中的每一項(xiàng) (遍歷數(shù)組)
var names = ['kk','wxf','ps','ps1'];
for (var i = 0; i <= names.length; i++){
console.log(names[i]);
}
// 倒著獲取數(shù)組中的每一項(xiàng)
var names = ['kk','wxf','ps','ps1'];
for (var i =names.length-1;i >=0 ;i--){
console.log(names[i]);
}
//給空數(shù)組添加值
var scrols = [];
console.log(scrols);
for(var i = 0;i<10;i++){
scrols[i] = i;
}
console.log(scrols);
//清空數(shù)組
var names = ['kk','wxf','ps','ps1'];
names.length = 0;
console.log(names);
- 求數(shù)組的和和平均值
var numbers = [35, 12, 35, 90, 11, 12];
var sum = 0; //定義和為0
var avg;
for(var i = 0; i < numbers.length; i++){
sum += numbers[i] //相加 sum = sum + numbers[i];
}
avg = sum / numbers.length;
console.log('數(shù)組中所有數(shù)的和'+sum);
console.log('數(shù)組中所有數(shù)的平均值'+avg);
- 求數(shù)組中的最大值和最小值
//方法1
var numbers = [35, 12, 35, 90, 11, 12];
var max = numbers[0];
var min = numbers[0];
var maxIndex = 0;
var minIndex = 0;
for (var i = 0;i < numbers.length; i++){
if(max < numbers[i]){
//把最大值賦給比較大的那個(gè)數(shù)
max = numbers[i];
maxIndex = i; //獲取索引
}
if(min > numbers[i]){
min = numbers[i];
minIndex = i;
}
}
console.log('最大值'+max);
console.log('最大值的索引'+maxIndex);
console.log('最小值'+min);
console.log('最小值的索引'+minIndex);
//方法2
/* Math是js中的數(shù)學(xué)方法集合,applay上下文調(diào)用后面的課程會(huì)詳講;
Math.max(42,52)取2個(gè)值中的最大值 52
Math.min(42,33)取2個(gè)值中的最小值 33
Math.max.apply(null,arr) 取數(shù)組中的最大值
Math.min.apply(null,arr) 取數(shù)組中的最小值*/
var max1 = Math.max.apply(null,[12,234,45,678,1234,43]);
var min1 = Math.min.apply(null,[12,234,45,678,1234,43]);
console.log(max1);
console.log(min1)
- 分隔數(shù)組(字符串)
1.for循環(huán)
var names = ['王五','劉洋','天爸','楊洋','養(yǎng)養(yǎng)眼'];
// 定義一個(gè)變量等于數(shù)組的第一項(xiàng)
var sum = names[0];
//定義分隔符
var separator = '|';
//循環(huán)遍歷拼接字符串和分隔符
for(var i = 1;i < names.length;i++){
sum += separator + names[i];
}
console.log(sum);
2.join() :用分隔符额各,組合數(shù)組丘损,生成字符串
var names = ['王五','劉洋','天爸','楊洋','養(yǎng)養(yǎng)眼'];
console.log(names.join('|'));
- 篩選數(shù)組: 將數(shù)組中多余的部分去掉住闯,重新組合
var nums = [12,0,13,34,0,67,0];
var Array = []
for(var i = 0; i< nums.length; i++){
if(nums[i]!==0){
// array[array.legth] = 1;
// array[0] = 1;
//將數(shù)字從新插入數(shù)組,Array.length相當(dāng)于索引
Array[Array.length] = nums[i];
}
}
console.log(Array)
- 翻轉(zhuǎn)數(shù)組:將數(shù)組的位置倒過來
var nums = [12,13,34,0,67];
var Array = [];
for (var i = nums.length-1;i >= 0;i--){
Array[Array.length] = nums[i]; //從后往前交換索引
}
console.log(Array);
- 冒泡排序
//冒泡排序踏烙,從小到大的排序
var numbers = [35, 12, 36, 90, 11, 18];
//控制趟數(shù)踢涌,每一次找到最大的那個(gè)數(shù)
for(var i = 0; i < numbers.length-1;i++){
//內(nèi)層循環(huán)兼蜈,控制比較的次數(shù)把最大的往后移攘残,最小的往前移;
for(var j = 0; j< numbers.length-1-i;j++){
if(numbers[j] > numbers[j+1]){
var temp = numbers[j];
//交換
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
}
console.log(numbers)
2.函數(shù):
把一段相對(duì)獨(dú)立的具有特定功能的代碼塊封裝起來,形成一個(gè)獨(dú)立實(shí)體为狸,就是函數(shù)歼郭,起個(gè)名字(函數(shù)名),在后續(xù)開發(fā)中可以反復(fù)調(diào)用.
- 封裝
- 一次封裝多次調(diào)用;
- 手動(dòng)調(diào)用;
1.函數(shù)的參數(shù)
- 函數(shù)的聲明:可以在函數(shù)定義前調(diào)用
function 函數(shù)名sayHi(){
函數(shù)體
}
//調(diào)用函數(shù)
// 用函數(shù)名調(diào)用辐棒,可以多次調(diào)用
sayHi();
- 函數(shù)表達(dá)式:不可以在函數(shù)前調(diào)用
var sayHi(); = function(){
函數(shù)體
}
//調(diào)用函數(shù)
// 函數(shù)名
sayHi();
- 函數(shù)的形參和實(shí)參
形式參數(shù):在聲明一個(gè)函數(shù)的時(shí)候病曾,為了函數(shù)的功能更加靈活,有些值是固定不了的漾根,對(duì)于這些固定不了的值泰涂。我們可以給函數(shù)設(shè)置參數(shù)。這個(gè)參數(shù)沒有具體的值辐怕,僅僅起到一個(gè)占位置的作用逼蒙,我們通常稱之為形式參數(shù),也叫形參寄疏。
實(shí)際參數(shù):如果函數(shù)在聲明時(shí)是牢,設(shè)置了形參僵井,那么在函數(shù)調(diào)用的時(shí)候就需要傳入對(duì)應(yīng)的參數(shù),我們把傳入的參數(shù)叫做實(shí)際參數(shù)驳棱,也叫實(shí)參批什。
//求1-n之間所有數(shù)的和
var sum = 0;
//n 形式參數(shù)
function getSum(n){
for(var i = 0;i <= n;i++){
sum += i
}
console.log(sum);
}
getSum(3);
//求n-m之間所有數(shù)額和
var sum1 = 0;
// n1 m 形式參數(shù)
function getSum1(n1,m){
for(var j = n1;j <= m;j++){
sum1 += j;
}
console.log(sum1);
}
getSum1(1,2);
3.函數(shù)的返回值
return 可以拿到函數(shù)的結(jié)果,返回函數(shù)的值
return跳出函數(shù)后面的代碼不會(huì)執(zhí)行
如果函數(shù)沒有return則返回undefined;
若你不需要返回值蹈胡,你直接調(diào)用函數(shù)即可渊季,不需要用變量來接受它的返回值
console.log(fn()); //第一步調(diào)用函數(shù); 第二步打印出來
//函數(shù)返回值的語法
//聲明一個(gè)帶返回值的函數(shù)
function 函數(shù)名(形參1, 形參2, 形參...){
//函數(shù)體
return 返回值;
}
//可以通過變量來接收這個(gè)返回值
var 變量 = 函數(shù)名(實(shí)參1, 實(shí)參2, 實(shí)參3);