亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 11
粉絲 0
評(píng)論 0
訪問量 9790
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
細(xì)說函數(shù)和數(shù)據(jù)類型
向日葵
原創(chuàng)
1576人瀏覽過

函數(shù)

  1. 命名函數(shù)——有名字的函數(shù)

    1. function getName(username){
    2. return 'hi '+username;
    3. }
  2. 匿名函數(shù)——沒有名字的函數(shù)

    1. function (a){
    2. return a++;
    3. }

匿名函數(shù)有三種寫法:

函數(shù)表達(dá)式
就是把函數(shù)聲明賦值給一個(gè)變量,用這個(gè)變量調(diào)用函數(shù)

  1. const getNames = function (username) {
  2. return username + "20歲了";
  3. }

IIFE快速執(zhí)行函數(shù)
立即執(zhí)行函數(shù),執(zhí)行完就釋放了,不會(huì)對(duì)全局帶來污染,用來創(chuàng)建臨時(shí)作用域——閱后即焚

  1. console.log((function (APP_NAME) {
  2. return APP_NAME;
  3. })("商城小程序"));

箭頭函數(shù)
首先先寫一個(gè)匿名函數(shù)

  1. let f1 = function (a, b) {
  2. return a + b;
  3. }

用匿名函數(shù)轉(zhuǎn)化成箭頭函數(shù)的關(guān)鍵就是:

  1. 去掉function
  2. 在參數(shù)括號(hào)(…)和大括號(hào){…}之間加上胖箭頭(=>)
  1. f1 = (a,b){return a+b};

如果函數(shù)有一個(gè)參數(shù)那么還可以繼續(xù)簡(jiǎn)化,參數(shù)括號(hào)可以省略
如果函數(shù)只有一條執(zhí)行語(yǔ)句,那大括號(hào)和return也可以省略

  1. let f2 = a => a++;

如果函數(shù)沒有參數(shù),那么括號(hào)不能省略,或用$_代替

  1. let f3 = () => "輸出";
  2. //或
  3. f3 = $ => "輸出";
  4. //或
  5. f3 = _ => "輸出";

數(shù)據(jù)類型

基本數(shù)據(jù)類型(原始類型)

類型 名稱
number 數(shù)值 1,2,3等數(shù)字
string 字符串 ‘123’
Boolean 布爾類型 true或false
undefined 聲明未賦值的值 undefined
null 空對(duì)象 null

引用類型

1.數(shù)組

const arr=["手機(jī)",2,1000];

數(shù)組用一對(duì)中括號(hào)[]包裹起來,數(shù)組里可以有多種數(shù)據(jù)類型的數(shù)據(jù),可以嵌套數(shù)組,是一個(gè)典型的多值類型;
數(shù)組的索引從0開始到length-1結(jié)束;
數(shù)組的類型判斷用Array.isArray()函數(shù)來判斷,如果是則返回true;
2.對(duì)象

const obj={name:"手機(jī)",num:2,price:1000}

對(duì)象更像一個(gè)語(yǔ)義化的數(shù)組,訪問對(duì)象屬性的方式可以是obj["name"] 也可以是obj.num;
當(dāng)屬性名出現(xiàn)非法標(biāo)識(shí)符時(shí),必須使用數(shù)組方式([])來正確訪問;
本質(zhì)上來說, 對(duì)象, 就是變量與函數(shù)的封裝, 對(duì)象內(nèi)部, 變量叫屬性, 函數(shù)叫方法

  1. obj = {
  2. // name, num, price: 屬性, 類似于變量
  3. name: "手機(jī)",
  4. num: 3,
  5. price: 7000,
  6. // total: 方法,實(shí)際上還是一個(gè)屬性,只不過它的值是一個(gè)函數(shù)
  7. total: function () {
  8. // let str = obj.name + " 總計(jì): " + obj.num * obj.price + " 元 ";
  9. // 模板字面量, 來簡(jiǎn)化, 內(nèi)部有變量的字符串
  10. // let str = obj.name + " 總計(jì): " + obj.num * obj.price + " 元 ";
  11. // 反引號(hào)聲明的模板字符串, 可以插入變量/表達(dá)式, 這叫"插值"
  12. // 應(yīng)該是對(duì)象內(nèi)部, 使用 當(dāng)前對(duì)象的一個(gè)引用, 這樣才獨(dú)立于外部對(duì)象
  13. // let str = `${obj.name} 總計(jì) ${obj.num * obj.price} 元`;
  14. // this: 始終與當(dāng)前對(duì)象綁定(執(zhí)行環(huán)境 / 執(zhí)行上下文 )
  15. // this = obj,這樣我們?cè)谛薷膶?duì)象名稱后不會(huì)影響內(nèi)部方法的調(diào)用和計(jì)算
  16. let str = `${this.name} 總計(jì) ${this.num * this.price} 元`;
  17. return str;
  18. },
  19. };

調(diào)用對(duì)象里面的方法用 obj.total()

實(shí)際工作中我們用到更多的是對(duì)象和數(shù)組組合使用的,比如:

  1. // obj是一個(gè)由三個(gè)對(duì)象構(gòu)成的數(shù)組
  2. obj = [
  3. { name: "手機(jī)", num: 2, price: 5000 },
  4. { name: "電腦", num: 2, price: 5000 },
  5. { name: "相機(jī)", num: 2, price: 5000 },
  6. ];

利用高階函數(shù)來計(jì)算一下商品總和:

  1. // 求三個(gè)商品的總和
  2. let res = obj.map(item => item.num * item.price).reduce((acc, cur) => acc + cur);

3.函數(shù)
函數(shù)本身是一種數(shù)據(jù)類型,也是對(duì)象
函數(shù)當(dāng)做一種數(shù)據(jù)類型的好處有:
充當(dāng)函數(shù)的返回值或參數(shù),當(dāng)參數(shù)就是個(gè)回調(diào)函數(shù),當(dāng)返回值可以創(chuàng)建一個(gè)閉包

  1. function f1(callback) {
  2. console.log(callback());
  3. }
  4. //函數(shù)作為參數(shù),即f1的參數(shù)是一個(gè)函數(shù)
  5. // 調(diào)用f1,傳一個(gè)匿名函數(shù)
  6. f1(function () {
  7. return "hello world";
  8. });
  9. // 函數(shù)當(dāng)返回值,即返回值為一個(gè)函數(shù)
  10. function f2() {
  11. let a = 1;
  12. return function () {
  13. return a++;
  14. }
  15. }
  16. console.log(f2());//f2是一個(gè)函數(shù)
  17. const f = f2();
  18. console.log(f2()());//這種寫法也可,返回值1
  19. console.log(f());//返回1
  20. console.log(f());//返回2
  21. console.log(f());//返回3
  22. console.log(f());//返回4

函數(shù)當(dāng)對(duì)象來使用時(shí)就具備了對(duì)象的屬性和方法

  1. function func(a, b) {
  2. return a + b;
  3. }

這樣一個(gè)函數(shù),我們可以用func.name去獲取函數(shù)的函數(shù)名,func.length來獲取函數(shù)的參數(shù)個(gè)數(shù),func.email="myemial@qq.com"來給func函數(shù)添加屬性,然后用func.email來調(diào)用。

js的世界是如此的高深莫測(cè),晦澀難懂,但又有趣又神秘,希望在這片蔚藍(lán)之海不會(huì)迷失自己吧。
繼續(xù)加油!

批改老師:PHPzPHPz

批改狀態(tài):合格

老師批語(yǔ):
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)