javascript
javascript中数组、冒泡排序、函数及函数实参形参、arguments伪数组、异步函数等介绍
數組:
指一組有順序的數據,其作用就是用來一次性存儲多個數據。(數組元素:數組中的每一個數據;數組長度:數據中元素的個數;數組索引:用來存儲或訪問數組中的數據,也叫下標,索引從0開始,即第一個數組元素的索引為0)創建數組的方法有兩種:
1、通過構造函數創建數組:var 數組名 = new Array();
<script>var array = new Array(4);console.log(array); //[empty × 4],new Array(4)括號中的數字若為一個,則表示數組的長度,此時無數據;若為多個,則表示數組的每一項數據,特別注意:通過字面量的方式創建的數組當為一個值時,此時表示的是一個數組元素var array = new Array(1, 2, 3, 4, 5);console.log(array[3]); //4,數組中通過數組名[索引]來讀取元素或儲存元素array[5] = 6;//通過索引添加數組元素console.log(array);//[1, 2, 3, 4, 5, 6]console.log(array.length);//5,數組名.length用來獲取數組的長度console.log(array[10]); //undefined,獲取一個數組中沒有的數組元素返回的值為undefined</script>2、通過字面量的方式創建數組:var 數組名 = [];
<script>var array = [3];console.log(array); //[3],通過字面量的方式創建的數組中[]中的數字就是表示數組的元素array = [3, true, null, "str"];array[4] = 5;console.log(array); //[3, true, null, "str", 5],數組中可以存多個數據類型的數據console.log(array.length); //5,數組名.length用來獲取數組的長度,即數組元素的個數console.log(array[10]); //undefined,獲取一個數組中沒有的數組元素返回的值為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的平均數為:' + sum / arr.length);//arr的和為:15------arr的平均數為: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('倒數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中加|得到的結果:' + str); //在fruits中加|得到的結果:蘋果|香蕉|菠蘿蜜|芒果|荔枝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],翻轉數組</script>冒泡排序:
指把數組里面的元素按照從大到小或者從小到大的順序進行排列。
<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>函數定義:
函數:把重復的代碼進行封裝,在需要的時候直接調用。語法:function 函數名(){函數體},這里指命名函數,后面還有匿名函數;函數使用:函數名();注意: 函數需要先定義后使用,函數的命名需要遵循駝峰命名法,命名函數一旦重名,后面的會把前面的覆蓋,函數也是一種數據類型
<script>//1.函數聲明:function myName() {console.log('苦海');};myName(); //苦海//2.函數表達式:var fn = function() {console.log('函數體');};// 3.利用new Function(參數,函數體);創建函數,參數可以是多個,函數體寫在最后面,// 注意:括號里面各參數都是字符串形式,不推薦這種寫法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>函數的參數:
函數后面小括號里的變量就是參數,形參:定義函數的時候函數后面小括號中的變量就是形參,實參:函數在調用的時候,括號里傳的值為實參,當實參沒有傳值時,返回的是undefined,函數的參數可以是任何數據類型
<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('輸入第一個數字'));var num2 = parseInt(prompt('輸入第二個數字'));sum(num1, num2);</script>函數的返回值:
在函數內部有return關鍵字,并且在關鍵字后面有內容,那么這個內容就被返回,如果一個函數中沒有明確的返回值,調用時被接收了,那么結果就是undefined,return后面的代碼是不會執行的。形參和實參的個數可以不同,當實參的個數多于形參的個數時,正常返回形參個數處理后的結果;當實參的個數少于形參的個數時,此時沒有實參對應的形參的值為undefined,函數的返回值可以是任何數據類型。
<script>function getSum(x, y) {var sum = x + y;return sum;console.log('測試return后面的代碼是否執行');//經過測試后return后面的代碼不執行};var result = getSum(1, 4);console.log(result);// 5</script>函數里面可以調用函數:
<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偽數組:
當函數不確定參數時,可以使用arguments來解決問題,arguments.length是獲取函數中傳入的參數的個數;arguments[數字]用來獲取某個參數,當數字為0時表示第一個參數。
<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>匿名函數(函數的其他調用方式及區別):
指通過字面量的方式創建的函數(函數表達式),其調用是變量名 + ( );另一種匿名函數是把匿名函數的代碼用括號包裹起來,這樣就不會報錯,然后想調用,就在括號后面在加一個括號。命名函數中,如果兩個函數出現重名,無論在哪里調用,后面的函數會把前面的函數覆蓋掉;而在匿名函數(函數表達式)中,變量的名字相同時,后面的不會覆蓋前面的函數,只會給變量重新賦值。
<script>var fn = function() {console.log('這是一個通過字面量的方式創建的匿名函數');};fn(); //匿名函數的調用:變量名();(function() {console.log('這是一個通過字面量的方式創建的匿名函數');})(); //匿名函數的調用:(匿名函數的代碼)(),一次性的// 相同函數名的命名函數中:function f1() {console.log('命名函數1');};f1(); //命名函數2function f1() {console.log('命名函數2');};f1(); //命名函數2.兩個命名函數都執行的是函數2的代碼// 相同變量名的函數表達式中:var f2 = function() {console.log('函數表達式1');};f2();//函數表達式1var f2 = function() {console.log('函數表達式2');};f2();//函數表達式2</script>async function異步函數:
async function是用來定義異步函數,其語法:async function 函數名可選(函數參數) { 函數語句 },
<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用于等待一個Promise對象,只能在異步函數中使用,如果等待的值不是Promise,那么將當成promise處理過的值。
function* 表達式:
function*可以在一個函數內部定義一個生成器函數,函數里面的yield是定義數據的,如:
<script>function* fn() {yield 'a';yield 'b';yield 'c';};for (const values of fn()) {console.log(values);// a b c};</script>提示:本文圖片等素材來源于網絡,若有侵權,請發郵件至郵箱:810665436@qq.com聯系筆者 刪除。
筆者:苦海
總結
以上是生活随笔為你收集整理的javascript中数组、冒泡排序、函数及函数实参形参、arguments伪数组、异步函数等介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gettype获取类名_在TypeScr
- 下一篇: openfeign ribbon 负载_