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

搜索
博主信息
博文 70
粉絲 1
評(píng)論 0
訪問量 67307
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
值|引用傳遞-數(shù)組|對(duì)象解構(gòu)-call|apply|bind-訪問器-流程控制
葡萄枝子
原創(chuàng)
925人瀏覽過

值|引用傳遞-數(shù)組|對(duì)象解構(gòu)-call|apply|bind-訪問器-流程控制

  1. 實(shí)例演示值傳遞與引用傳遞的區(qū)別與聯(lián)系;
  2. 數(shù)組和對(duì)象解構(gòu)的常用方法與函數(shù)傳參
  3. call,apply,bind的區(qū)別與聯(lián)系,并試著實(shí)例演示一下
  4. 訪問器屬性的原理與實(shí)現(xiàn)過程,并實(shí)例演示;
  5. 多分支與switch轉(zhuǎn)換的技巧
  6. 三元運(yùn)算解決了什么問題,有什么限制?

1. 實(shí)例演示值傳遞與引用傳遞的區(qū)別與聯(lián)系

  • 值傳遞:原始類型 string, number, bool 等
  • 引用傳遞:引用類型 object, array 等
  • 深拷貝是值傳遞,淺拷貝是引用傳遞,傳參是值傳遞
  1. // 值傳遞
  2. let a = 1;
  3. let b = a;
  4. // a = 1, b = 1
  5. console.log('a = %d, b = %d', a, b);
  6. a = 2;
  7. // 更新 a ,不影響 b 返回 a = 2, b = 1
  8. console.log('a = %d, b = %d', a, b);
  9. // 引用傳遞
  10. a = {x: 1, y: 2};
  11. b = a;
  12. // {x: 1, y: 2} {x: 1, y: 2}
  13. console.log(a, b);
  14. a.x = 2;
  15. // 更新對(duì)象 a ,對(duì)象 b 也更新
  16. // {x: 2, y: 2} {x: 2, y: 2}
  17. console.log(a, b);

值傳遞與引用傳遞

2. 數(shù)組和對(duì)象解構(gòu)的常用方法與函數(shù)傳參

  1. // 數(shù)組解構(gòu)
  2. let [x, y, z = 3] = [1, 2];
  3. // 解構(gòu)到 x, y, z 變量中
  4. // x = 1, y = 2, z = 3
  5. console.log('x = %d, y = %d, z = %d', x, y, z);
  6. // 對(duì)象解構(gòu)
  7. let {x1, y1, z1 = 'three'} = {x1: 'one', y1: 'two'};
  8. // 解構(gòu)到 x1, y1, z1 中
  9. // x1 = one, y1 = two, z1 = three
  10. console.log('x1 = %s, y1 = %s, z1 = %s', x1, y1, z1);
  11. // 函數(shù)傳參
  12. // 數(shù)組傳參
  13. let linkArr = ([a, b, c]) => `${a} | ${b} | ${c}`;
  14. // 1 | 2 | 3
  15. console.log(linkArr([x, y, z]));
  16. // 對(duì)象傳參
  17. let linkObj = ({x1, y1, z1}) => `${x1} | ${y1} | ${z1}`;
  18. // one | two | three
  19. console.log(linkObj({x1, y1, z1}));

數(shù)組和對(duì)象解構(gòu)

3. call,apply,bind的區(qū)別與聯(lián)系,并試著實(shí)例演示一下

  • bind 綁定,返回一個(gè)函數(shù)聲明,不會(huì)立即執(zhí)行
  • call 和 apply 立即執(zhí)行
  1. let test = function ( arg ) {
  2. return arg;
  3. };
  4. const testObj = {
  5. arg: 'args',
  6. };
  7. // 返回 Hi!
  8. console.log(test('Hi!'));
  9. // bind 返回一個(gè)函數(shù)聲明,不會(huì)立即執(zhí)行
  10. let f1 = test.bind(testObj, 'bind');
  11. // 返回 bind
  12. console.log(f1());
  13. // call | apply立即執(zhí)行
  14. let f2 = test.call(testObj, 'call');
  15. // 返回 call
  16. console.log(f2);
  17. // 返回 apply
  18. let f3 = test.call(testObj, 'apply');
  19. console.log(f3);

bind-call-apply

4. 訪問器屬性的原理與實(shí)現(xiàn)過程,并實(shí)例演示

訪問器:將方法偽造成一個(gè)屬性,訪問器屬性優(yōu)先級(jí)高于同名的普通屬性

  1. const result = {
  2. data: {
  3. id: 1,
  4. meta: 'desc',
  5. },
  6. // 訪問器,方法偽造成一個(gè)屬性,取值
  7. get getId() {
  8. return this.data.id;
  9. },
  10. get getMeta() {
  11. return this.data.meta;
  12. },
  13. // 訪問器,方法偽造成一個(gè)屬性,賦值
  14. set setID(num) {
  15. this.data.id = num;
  16. },
  17. set setMeta(value) {
  18. this.data.meta = value;
  19. },
  20. }
  21. // 訪問器,偽造的屬性賦值
  22. result.setID = 2;
  23. result.setMeta = 'test';
  24. // 訪問器,偽造的屬性取值
  25. // getID = 2, getMeta = test
  26. console.log('getID = %s, getMeta = %s', result.getId, result.getMeta);

訪問器屬性

5. 多分支與switch轉(zhuǎn)換的技巧

  1. // If 多分支
  2. let score = num => {
  3. if (num >= 0 && num < 60) return '不及格';
  4. else if (num >= 60 && num < 80) return '合格';
  5. else if (num >=80 && num <= 100) return '優(yōu)秀';
  6. else if (num < 0 || num > 100) return '非法';
  7. }
  8. // 返回:非法 不及格 合格 優(yōu)秀 非法
  9. console.log(score(-1), score(50), score(60), score(100), score(101));
  10. // switch來簡(jiǎn)化多分支
  11. score = num => {
  12. switch(true) {
  13. case num >= 0 && num < 60:
  14. return '不及格';
  15. // return 無需 break;
  16. case num >= 60 && num < 80:
  17. return '合格';
  18. case num >=80 && num <= 100:
  19. return '優(yōu)秀';
  20. default:
  21. return '非法'
  22. }
  23. }
  24. // 返回:非法 不及格 合格 優(yōu)秀 非法
  25. console.log(score(-1), score(50), score(60), score(100), score(101));
  26. // If 單值判斷
  27. let response = status => {
  28. if (status.toLowerCase() === 'fail') {
  29. return '請(qǐng)求失?。?;
  30. } else if (status.toLowerCase() === 'success') {
  31. return '請(qǐng)求成功!';
  32. } else {
  33. return '非法請(qǐng)求!';
  34. }
  35. }
  36. // 返回 請(qǐng)求成功!
  37. console.log(response('SUCCESS'));
  38. // switch 單值判斷
  39. response = status => {
  40. switch(status.toLowerCase()) {
  41. case 'fail': return '請(qǐng)求失??!';
  42. case 'success': return '請(qǐng)求成功!';
  43. default: return '非法請(qǐng)求!';
  44. }
  45. }
  46. // 返回 請(qǐng)求成功!
  47. console.log(response('SUCCESS'));

多分支與switch轉(zhuǎn)換

6. 三元運(yùn)算解決了什么問題,有什么限制?

  • 三元運(yùn)算解決了雙分支的簡(jiǎn)化,也可以多分支,但不適合于沒有返回值的判斷。
  1. let status = 'SUCCESS';
  2. let res = status.toLowerCase() === 'fail' ? '請(qǐng)求失敗!' : (status.toLowerCase() === 'success' ? '請(qǐng)求成功!' : '非法請(qǐng)求!');
  3. // 返回 請(qǐng)求成功!
  4. console.log(res);

三元運(yùn)算

批改老師:天蓬老師天蓬老師

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

老師批語:
本博文版權(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é)