日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

javascript中数组、冒泡排序、函数及函数实参形参、arguments伪数组、异步函数等介绍

發(fā)布時(shí)間:2025/3/15 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript中数组、冒泡排序、函数及函数实参形参、arguments伪数组、异步函数等介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)組:

指一組有順序的數(shù)據(jù),其作用就是用來一次性存儲(chǔ)多個(gè)數(shù)據(jù)。(數(shù)組元素:數(shù)組中的每一個(gè)數(shù)據(jù);數(shù)組長度:數(shù)據(jù)中元素的個(gè)數(shù);數(shù)組索引:用來存儲(chǔ)或訪問數(shù)組中的數(shù)據(jù),也叫下標(biāo),索引從0開始,即第一個(gè)數(shù)組元素的索引為0)創(chuàng)建數(shù)組的方法有兩種:

1、通過構(gòu)造函數(shù)創(chuàng)建數(shù)組:var 數(shù)組名 = new Array();

<script>var array = new Array(4);console.log(array); //[empty × 4],new Array(4)括號(hào)中的數(shù)字若為一個(gè),則表示數(shù)組的長度,此時(shí)無數(shù)據(jù);若為多個(gè),則表示數(shù)組的每一項(xiàng)數(shù)據(jù),特別注意:通過字面量的方式創(chuàng)建的數(shù)組當(dāng)為一個(gè)值時(shí),此時(shí)表示的是一個(gè)數(shù)組元素var array = new Array(1, 2, 3, 4, 5);console.log(array[3]); //4,數(shù)組中通過數(shù)組名[索引]來讀取元素或儲(chǔ)存元素array[5] = 6;//通過索引添加數(shù)組元素console.log(array);//[1, 2, 3, 4, 5, 6]console.log(array.length);//5,數(shù)組名.length用來獲取數(shù)組的長度console.log(array[10]); //undefined,獲取一個(gè)數(shù)組中沒有的數(shù)組元素返回的值為undefined</script>

2、通過字面量的方式創(chuàng)建數(shù)組:var 數(shù)組名 = [];

<script>var array = [3];console.log(array); //[3],通過字面量的方式創(chuàng)建的數(shù)組中[]中的數(shù)字就是表示數(shù)組的元素array = [3, true, null, "str"];array[4] = 5;console.log(array); //[3, true, null, "str", 5],數(shù)組中可以存多個(gè)數(shù)據(jù)類型的數(shù)據(jù)console.log(array.length); //5,數(shù)組名.length用來獲取數(shù)組的長度,即數(shù)組元素的個(gè)數(shù)console.log(array[10]); //undefined,獲取一個(gè)數(shù)組中沒有的數(shù)組元素返回的值為undefinedvar arr = [1, 2, 3, 4, 5];var sum = 0;for (var i = 0; i < arr.length; i++) {sum += arr[i];};console.log('arr的和為:' + sum + '------' + 'arr的平均數(shù)為:' + sum / arr.length);//arr的和為:15------arr的平均數(shù)為:3var array = [2, 3, 5, 1, 4];var max = array[0];for (var i = 0; i < array.length; i++) {if (max < array[i]) {max = array[i];};};console.log('array中的最大值為:' + max); //array中的最大值為:5var arr = [2, 3, 4, 5, 6, 1];for (var i = arr.length - 1; i >= 0; i--) {console.log('倒數(shù)arr:' + arr[i]);//1 6 5 4 3 2};var fruits = ['蘋果', '香蕉', '菠蘿蜜', '芒果', '荔枝'];var str = '';for (var i = 0; i < fruits.length - 1; i++) {str += fruits[i] + '|';};str += fruits[fruits.length - 1];console.log('在fruits中加|得到的結(jié)果:' + str); //在fruits中加|得到的結(jié)果:蘋果|香蕉|菠蘿蜜|芒果|荔枝var arr = [1, 2, 3, 4, 0, 2, 0, 3];var arr2 = [];for (var i = 0; i < arr.length; i++) {if (arr[i] != 0) {arr2[arr2.length] = arr[i];};};arr = arr2;console.log(arr); //[1, 2, 3, 4, 2, 3],去掉arr中的0var arr = [1, 2, 3, 4, 5];var temp = arr[0];for (var i = 0; i < arr.length / 2; i++) {arr[i] = arr[arr.length - 1 - i];arr[arr.length - 1 - i] = temp;var temp = arr[i + 1];};console.log(arr); //[5, 4, 3, 2, 1],翻轉(zhuǎn)數(shù)組</script>

冒泡排序:

指把數(shù)組里面的元素按照從大到小或者從小到大的順序進(jìn)行排列。

<script>var arr = [3, 4, 2, 1, 5];for (var i = 0; i < arr.length - 1; i++) {for (var j = 0; j < arr.length - 1 - i; j++) {if (arr[j] < arr[j + 1]) {var temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;};};};console.log(arr);//[5, 4, 3, 2, 1]</script>

函數(shù)定義:

函數(shù):把重復(fù)的代碼進(jìn)行封裝,在需要的時(shí)候直接調(diào)用。語法:function 函數(shù)名(){函數(shù)體},這里指命名函數(shù),后面還有匿名函數(shù);函數(shù)使用:函數(shù)名();注意: 函數(shù)需要先定義后使用,函數(shù)的命名需要遵循駝峰命名法,命名函數(shù)一旦重名,后面的會(huì)把前面的覆蓋,函數(shù)也是一種數(shù)據(jù)類型

<script>//1.函數(shù)聲明:function myName() {console.log('苦海');};myName(); //苦海//2.函數(shù)表達(dá)式:var fn = function() {console.log('函數(shù)體');};// 3.利用new Function(參數(shù),函數(shù)體);創(chuàng)建函數(shù),參數(shù)可以是多個(gè),函數(shù)體寫在最后面,// 注意:括號(hào)里面各參數(shù)都是字符串形式,不推薦這種寫法var myFn = new Function('x', 'y', 'return x + y');var myFn1 = new Function('x', 'y', 'console.log(x+y)');console.log(myFn(1, 3));myFn1(2, 3);</script>

函數(shù)的參數(shù):

函數(shù)后面小括號(hào)里的變量就是參數(shù),形參:定義函數(shù)的時(shí)候函數(shù)后面小括號(hào)中的變量就是形參,實(shí)參:函數(shù)在調(diào)用的時(shí)候,括號(hào)里傳的值為實(shí)參,當(dāng)實(shí)參沒有傳值時(shí),返回的是undefined,函數(shù)的參數(shù)可以是任何數(shù)據(jù)類型

<script>function sum(x, y) {var sum = x + y;console.log(sum); }sum(10, 20);//30sum(20,30);//50function sum(x, y) {var sum = x + y;console.log(sum);}var num1 = parseInt(prompt('輸入第一個(gè)數(shù)字'));var num2 = parseInt(prompt('輸入第二個(gè)數(shù)字'));sum(num1, num2);</script>

函數(shù)的返回值:

在函數(shù)內(nèi)部有return關(guān)鍵字,并且在關(guān)鍵字后面有內(nèi)容,那么這個(gè)內(nèi)容就被返回,如果一個(gè)函數(shù)中沒有明確的返回值,調(diào)用時(shí)被接收了,那么結(jié)果就是undefined,return后面的代碼是不會(huì)執(zhí)行的。形參和實(shí)參的個(gè)數(shù)可以不同,當(dāng)實(shí)參的個(gè)數(shù)多于形參的個(gè)數(shù)時(shí),正常返回形參個(gè)數(shù)處理后的結(jié)果;當(dāng)實(shí)參的個(gè)數(shù)少于形參的個(gè)數(shù)時(shí),此時(shí)沒有實(shí)參對(duì)應(yīng)的形參的值為undefined,函數(shù)的返回值可以是任何數(shù)據(jù)類型。

<script>function getSum(x, y) {var sum = x + y;return sum;console.log('測(cè)試return后面的代碼是否執(zhí)行');//經(jīng)過測(cè)試后return后面的代碼不執(zhí)行};var result = getSum(1, 4);console.log(result);// 5</script>

函數(shù)里面可以調(diào)用函數(shù):

<script>function getSum(x, y) {return x + y;};function getDiffer(x, y, z, g) {return getSum(x, y) - getSum(z, g);};console.log(getDiffer(1, 2, 3, 4));</script>

arguments偽數(shù)組:

當(dāng)函數(shù)不確定參數(shù)時(shí),可以使用arguments來解決問題,arguments.length是獲取函數(shù)中傳入的參數(shù)的個(gè)數(shù);arguments[數(shù)字]用來獲取某個(gè)參數(shù),當(dāng)數(shù)字為0時(shí)表示第一個(gè)參數(shù)。

<script>function getSum() {var sum = 0;for (var i = 0; i < arguments.length; i++) {sum += arguments[i];};return sum;};var result = getSum(1, 2);console.log(result); //3</script>

匿名函數(shù)(函數(shù)的其他調(diào)用方式及區(qū)別):

指通過字面量的方式創(chuàng)建的函數(shù)(函數(shù)表達(dá)式),其調(diào)用是變量名 + ( );另一種匿名函數(shù)是把匿名函數(shù)的代碼用括號(hào)包裹起來,這樣就不會(huì)報(bào)錯(cuò),然后想調(diào)用,就在括號(hào)后面在加一個(gè)括號(hào)。命名函數(shù)中,如果兩個(gè)函數(shù)出現(xiàn)重名,無論在哪里調(diào)用,后面的函數(shù)會(huì)把前面的函數(shù)覆蓋掉;而在匿名函數(shù)(函數(shù)表達(dá)式)中,變量的名字相同時(shí),后面的不會(huì)覆蓋前面的函數(shù),只會(huì)給變量重新賦值。

<script>var fn = function() {console.log('這是一個(gè)通過字面量的方式創(chuàng)建的匿名函數(shù)');};fn(); //匿名函數(shù)的調(diào)用:變量名();(function() {console.log('這是一個(gè)通過字面量的方式創(chuàng)建的匿名函數(shù)');})(); //匿名函數(shù)的調(diào)用:(匿名函數(shù)的代碼)(),一次性的// 相同函數(shù)名的命名函數(shù)中:function f1() {console.log('命名函數(shù)1');};f1(); //命名函數(shù)2function f1() {console.log('命名函數(shù)2');};f1(); //命名函數(shù)2.兩個(gè)命名函數(shù)都執(zhí)行的是函數(shù)2的代碼// 相同變量名的函數(shù)表達(dá)式中:var f2 = function() {console.log('函數(shù)表達(dá)式1');};f2();//函數(shù)表達(dá)式1var f2 = function() {console.log('函數(shù)表達(dá)式2');};f2();//函數(shù)表達(dá)式2</script>

async function異步函數(shù):

async function是用來定義異步函數(shù),其語法:async function 函數(shù)名可選(函數(shù)參數(shù)) { 函數(shù)語句 },

<script>function fn(x) {return new Promise(resolve => {setTimeout(() => {resolve(x);}, 2000);});}async function f1() {var x = await fn(10);console.log(x); // 10}f1();</script>

await:

await用于等待一個(gè)Promise對(duì)象,只能在異步函數(shù)中使用,如果等待的值不是Promise,那么將當(dāng)成promise處理過的值。

function* 表達(dá)式:

function*可以在一個(gè)函數(shù)內(nèi)部定義一個(gè)生成器函數(shù),函數(shù)里面的yield是定義數(shù)據(jù)的,如:

<script>function* fn() {yield 'a';yield 'b';yield 'c';};for (const values of fn()) {console.log(values);// a b c};</script>

提示:本文圖片等素材來源于網(wǎng)絡(luò),若有侵權(quán),請(qǐng)發(fā)郵件至郵箱:810665436@qq.com聯(lián)系筆者 刪除。
筆者:苦海

總結(jié)

以上是生活随笔為你收集整理的javascript中数组、冒泡排序、函数及函数实参形参、arguments伪数组、异步函数等介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。