精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

書上不教但非常實用的JavaScript實踐

開發 前端
可選鏈接這項JavaScript中的功能,簡化了當屬性或方法可能不存在時,訪問對象上的屬性或調用方法的過程。它可幫助防止錯誤、簡化對undefined或null值的條件檢查。

我是通過看視頻、上網課和讀文章來學習JavaScript的。

在學習和實踐過程中,我發現有些東西雖然在課程中沒有得到明確的教授和解釋,但卻被開發人員大量使用。

因此,為了幫助JavaScript初學者在掌握基礎知識后,能更靈活自如地運用JS知識,我寫了這篇文章。

一起來看看吧!

短路運算符

console.log(true || 'something') // 'true'  returns left side expression on the truthy value
console.log(null || 'something') // 'something'

console.log(true && 'somethingNew') // 'something' returns right side expression on the truthy value
console.log(null && 'somethingNew') // 'null' returns left side on falsy value

// nullish operator returns right side only if null or undefined value is on left otherwise it returns right
console.log(null ?? 'printA')
console.log(undefined ?? 'printB')
console.log(false ?? 'printB')
console.log(true ?? 'printB')

//assignment operator
const rest1 = {
  owner: 'Jonas',
  rooms : 15,
  available : true,
}

const rest2 = {
  owner: 'Max',
  rooms : 12,
  available : false,
  booked : 'Yes'
}

rest1.available &&= 'booking done'
rest2.available &&= 'booking done'

console.log(rest1.available) // 'booking done'
console.log(rest2.available) // 'false'

rest1.booked &&= 'yes'
console.log(rest1.booked) //undefined

rest1.booked ||= 'yes'
console.log(rest1.booked) // 'yes' 

rest2.address ??= 'calfornia'
console.log(rest2.address) // 'calfornia' so basically ??= assign the value if not present
rest2.booked ??= 'No'
console.log(rest2.booked) 'Yes' //since the value was already present therefore this No was not updated

可選鏈接 ?.

可選鏈接這項JavaScript中的功能,簡化了當屬性或方法可能不存在時,訪問對象上的屬性或調用方法的過程。它可幫助防止錯誤、簡化對undefined或null值的條件檢查。

可選鏈接使用?.運算符。請看以下示例:

const person = {
  name: 'John',
  address: {
    street: '123 Main St',
  },
};

// Without optional chaining
const street = person.address ? person.address.street : undefined;

console.log(street); // '123 Main St'

// With Optional chaining
const street = person.address?.street;

console.log(street); // '123 Main St'
const car = {
  startEngine: function () {
    console.log('Engine started');
  },
};

// Without optional chaining
if (car.startEngine) {
  car.startEngine();
}
//with optional chaining
car.startEngine?.(); // 'Engine started'

還可以將可選鏈接與屬性訪問和方法調用結合到單個表達式中:

const user = {
  profile: {
    username: 'jsmith',
    greet: function () {
      console.log('Hello, ' + this.username);
    },
  },
};

const greeting = user.profile?.greet?.();

// If `profile` or `greet` are missing, `greeting` will be undefined.

for-of循環

JavaScript中的for… of循環用于遍歷可迭代對象,如數組、字符串、映射、集合等的值。與傳統的for和while循環相比,語法更簡潔、更干凈。以下是for… of循環示例:

const numbers = [1, 2, 3, 4, 5];

for (const number of numbers) {
  console.log(number);
}
// Output:
// 1
// 2
// 3
// 4
// 5

遍歷字符串示例

const text = "Hello, World!";

for (const char of text) {
  console.log(char);
}
// Output:
// H
// e
// l
// l
// o
// ,
//  
// W
// o
// r
// l
// d
// !

遍歷對象示例

const students = [
  { name: "Alice", age: 22 },
  { name: "Bob", age: 25 },
  { name: "Carol", age: 21 },
];

for (const student of students) {
  console.log(student.name, student.age);
}
// Output:
// Alice 22
// Bob 25
// Carol 21

遍歷map

const myMap = new Map();
myMap.set("key1", "value1");
myMap.set("key2", "value2");

for (const [key, value] of myMap) {
  console.log(key, value);
}
// Output:
// key1 value1
// key2 value2

遍歷set

const mySet = new Set([1, 2, 3, 2, 4]);

for (const item of mySet) {
  console.log(item);
}
// Output:
// 1
// 2
// 3
// 4

還可以試試其他循環,例如

const rest2 = {
  owner: 'Max',
  rooms : 12,
  available : false,
  booked : 'Yes'
}

console.log(Object.keys(rest2))
console.log(Object.values(rest2))

for (let prop of Object.keys(rest2)){
  console.log(prop)
}

console.log(Object.entries(rest2))

for(let entry of Object.entries(rest2)){
  console.log(entry)
}

Set

set是唯一數據值的集合。

語法如下所示:

const uniqueSet = new Set(['a','b','b','c','c'])

以下是一些set方法

const uniqueSet = new Set(['a','b','b','c','c'])
console.log(uniqueSet) //Set { 'a', 'b', 'c' }
console.log(uniqueSet.size) //3
console.log(uniqueSet.has('b')) //true
console.log(uniqueSet.has('d')) //false
uniqueSet.add('d')
console.log(uniqueSet.has('d')) //true
uniqueSet.delete('b')
console.log(uniqueSet.has('b')) //false
uniqueSet.clear()
console.log(uniqueSet.size)//0
const animalNames = ["dog", "cat", "lion", "elephant", "dog", "tiger", "cat", "giraffe", "monkey", "elephant"];

const uniqueAnimals = [...new Set(animalNames)];
console.log(uniqueAnimals) //

映射map

映射有點像具有鍵值對的對象,但有一個區別,在對象中,鍵始終是字符串類型,而在映射中,鍵可以具有任何類型。

const rest = new Map();
rest.set('name', 'Dwesis');
rest.set(1,'Prayagraj');
console.log(rest.get('name'))

console.log(rest.set(2, 'Ahmedabad'))

rest.set('categories',['italian','chinese','indian']).set('open',11).set('close',23).set(true,'We are open')
console.log(rest.get(true))
const rest = new Map([

  ['name', 'Dewsis'],
  [true, 'We are open'],
  [false, 'we are close'],
  [1, 'Prayagraj'],
  [2, 'Ahmedabad']
]
)

console.log(rest.get(true)) // 'We are open'
console.log(rest.get(false)) // 'we are close'
console.log(rest.has('open')) // true
console.log(rest.has('close')) // false
console.log(rest.has(3)) // false
console.log(rest.size) // 5

for (let [key,value] of rest){
  console.log(`${key} : ${value}`)
}
//Output
//name : Dewsis
// true : We are open
// false : we are close
// 1 : Prayagraj
// 2 : Ahmedabad

數組 vs set,以及對象 vs Map

數組:

在以下情況下使用數組:

  • 需要有序的元素集合。
  • 需要對元素進行索引訪問。
  • 想要存儲類似項目或相關項目的列表。
  • 需要對元素執行迭代、映射或縮減等操作。

例如:

const colors = ['red', 'green', 'blue'];

set:

在以下情況下使用set:

  • 需要存儲沒有重復項的唯一值。
  • 希望執行諸如檢查是否存在之類的操作,或者執行諸如并集、交集或差值之類的集合操作。
  • 需要確保每個元素在集合中僅出現一次。

例如:

const uniqueNumbers = new Set([1, 2, 3, 4, 4, 5]);

對象:

在以下情況下使用對象:

  • 需要存儲鍵值對,例如將唯一鍵映射到值。
  • 希望使用屬性和方法表示實體或復雜數據結構。
  • 需要執行基于鍵的數據檢索、修改或刪除等操作。

例如:

const person = {
     name: 'John Doe',
     age: 30,
     email: 'johndoe@example.com'
   };

map

在以下情況下使用map:

  • 需要使用任意數據類型(包括對象)作為鍵。
  • 需要可迭代的數據結構來維護插入順序。
  • 希望使用size屬性輕松確定map大小。
  • 需要執行添加或刪除元素、檢查鍵是否存在以及迭代鍵值對等操作。

例如:

const myMap = new Map();
   const key1 = { id: 1 };
   const key2 = { id: 2 };
   myMap.set(key1, 'value1');
   myMap.set(key2, 'value2');

當你需要使用鍵值對、需要使用各種數據類型作為鍵、保持插入順序以及輕松管理數據結構大小等時,Map非常有用。

希望這篇文章能對大家有所幫助。

責任編輯:武曉燕 來源: 前端新世界
相關推薦

2023-01-31 16:35:34

JavaScript測試框架

2016-05-10 10:16:13

JavaScript技巧

2022-04-22 10:41:53

HTML標簽功能

2020-08-21 10:25:02

PythonWget

2020-09-14 11:10:43

Python代碼

2009-05-25 09:00:45

Javascript免費工具Javascript框

2021-09-24 14:20:25

開發技能工具

2013-12-31 09:26:31

JavaScript技巧

2023-04-19 15:26:52

JavaScriptES13開發

2020-11-11 11:05:41

Linux工具命令

2024-01-08 06:44:08

PodK8Skubectl

2023-12-27 14:04:00

Spring框架參數

2022-02-22 13:14:30

Vue自定義指令注冊

2022-12-06 17:18:42

2023-06-04 17:13:26

.NET開發應用程序

2019-09-26 14:56:18

GitHub 技術開源

2017-12-12 14:50:33

數據庫MySQL命令

2017-09-05 08:57:02

Linux命令行技巧

2015-11-02 09:25:07

jQuery代碼片段

2021-05-23 16:23:22

Python 開發編程語言
點贊
收藏

51CTO技術棧公眾號

国产免费一区| www欧美日韩| 欧美日韩亚洲第一| 91社区在线观看| 国产一区视频导航| 69视频在线播放| 女人十八毛片嫩草av| 久久在线观看| 色综合久久99| 亚洲高潮无码久久| 日本一区高清| 国产精品18久久久久久久久久久久| 性亚洲最疯狂xxxx高清| 青青草华人在线视频| 成人知道污网站| 欧美性大战久久久| 欧美又粗又长又爽做受| 第九色区av在线| 成人sese在线| 91在线免费观看网站| www.欧美色| 欧美日韩综合| 日韩在线观看视频免费| 久久一区二区电影| 久久伊人精品| 91.麻豆视频| 日韩中文字幕组| 国产网红在线观看| 中文字幕在线免费不卡| 日韩欧美精品一区二区| 日韩一区二区三区在线观看视频| 久久爱另类一区二区小说| 69av在线视频| 久久久.www| 国产精品福利在线观看播放| 亚洲天堂影视av| 国产十八熟妇av成人一区| 国产美女亚洲精品7777| 欧美吞精做爰啪啪高潮| 超碰97人人射妻| 国内精彩免费自拍视频在线观看网址| 亚洲精品中文字幕乱码三区| 亚洲欧美精品| 国产福利在线看| 久久久久一区二区三区四区| 精品欧美一区二区三区久久久| av网站免费播放| 国产一区日韩二区欧美三区| 国产精品美女久久久免费| 亚洲国产av一区二区三区| 亚洲精品视频啊美女在线直播| 久久91亚洲精品中文字幕奶水| 天海翼在线视频| 97偷自拍亚洲综合二区| 日韩在线观看高清| 懂色av蜜臀av粉嫩av永久| 日韩免费高清| 久久精品2019中文字幕| 婷婷激情四射网| 欧美韩国日本在线观看| 久久久成人av| 加勒比av在线播放| 国产综合精品一区| 8x拔播拔播x8国产精品| 亚洲GV成人无码久久精品| 亚洲欧美日本日韩| 国产精品久久久久一区二区| 在线视频1卡二卡三卡| 久久精品国产秦先生| 国产欧美 在线欧美| 97精品人妻一区二区三区香蕉| 久久电影网电视剧免费观看| 亚洲a∨日韩av高清在线观看| 精品人妻一区二区三区麻豆91| 国产mv日韩mv欧美| 久久久久久草| 国产三级在线看| 中文字幕亚洲在| 精品一区二区三区毛片| 九九色在线视频| 亚洲成a人片综合在线| 精品国产免费av| 亚洲成av在线| 91麻豆精品国产91| 亚洲久久久久久| 欧美精品乱码| 欧美成人黄色小视频| 国产精品a成v人在线播放| 日日摸夜夜添夜夜添亚洲女人| 国产精品第10页| www.黄色片| 久久久久9999亚洲精品| 欧美性受黑人性爽| 自拍一区在线观看| 91精品国产入口| 国产精品入口麻豆| 日韩精品久久久久久久电影99爱| 欧美成人精品一区| 天堂网视频在线| 国产乱码一区二区三区| 欧美性色黄大片人与善| jizz性欧美10| 色综合久久中文综合久久97| 亚洲一区二区三区四区精品| 亚洲综合图色| 欧美丰满老妇厨房牲生活| 中文字幕免费观看| 国产99久久久国产精品潘金| 日本一区免费看| 国产盗摄精品一区二区酒店| 欧美日本一区二区在线观看| 国产精品福利导航| 伊人久久大香线蕉综合四虎小说| 57pao成人国产永久免费| 国产精品亚洲lv粉色| 久久亚洲一区二区三区四区| 国产精品视频一二三四区| 日本.亚洲电影| 亚洲精品国产综合区久久久久久久 | 粉嫩av四季av绯色av第一区| 成人三级黄色免费网站| 天天综合天天综合色| 免费在线观看污网站| 欧美精品一区二区三区中文字幕| 性欧美xxxx视频在线观看| 国产精品无码在线播放| 日本一区二区三区高清不卡| 国产精品va无码一区二区| 久久gogo国模啪啪裸体| 最近2019中文免费高清视频观看www99| 91av在线免费视频| 成人在线综合网站| 免费观看国产视频在线| 国产精品蜜月aⅴ在线| 亚洲欧洲日本专区| 成人毛片18女人毛片| zzijzzij亚洲日本少妇熟睡| 成年人视频网站免费| 国产精品一级在线观看| xxxxx91麻豆| 中文区中文字幕免费看| 亚洲国产精品ⅴa在线观看| 久久久久久久久久久久久久国产| 久久99精品国产自在现线| 欧美国产日韩一区二区三区| 国产黄a三级三级看三级| 日韩美女啊v在线免费观看| 色噜噜狠狠一区二区| 日韩片欧美片| 国产一区深夜福利| 黄网页在线观看| 91精品国产综合久久国产大片| 日本激情视频一区二区三区| 久久精品国产色蜜蜜麻豆| 一区二区三区四区五区视频| 国产精品久久久久久久久免费高清 | 亚洲精选91| 精品一区二区三区国产| 亚洲女同志freevdieo| 日韩国产欧美区| 天堂在线免费观看视频| 久久久777精品电影网影网| 免费观看精品视频| 久久麻豆精品| 91久久久精品| 免费看电影在线| 日韩成人小视频| 免费黄色片视频| 国产精品少妇自拍| 污污视频在线免费| 亚洲久久一区二区| 日韩av免费电影| 电影一区中文字幕| 欧美丰满少妇xxxx| 青青草视频在线观看| 欧美日韩国产在线观看| 欧美日韩在线观看成人| 99视频一区二区| 9久久婷婷国产综合精品性色| 水蜜桃久久夜色精品一区| 91情侣在线视频| 色戒汤唯在线| 日韩中文字幕在线视频| 成人午夜视频一区二区播放| 福利一区福利二区微拍刺激| 国产精品酒店视频| 懂色av中文字幕一区二区三区| 男人操女人逼免费视频| 国产精品久久天天影视| 国产伦理久久久| 青青热久免费精品视频在线18| 久久亚洲综合国产精品99麻豆精品福利| 亚洲精品综合久久| 欧美无砖专区一中文字| 日韩激情一区二区三区| 中文子幕无线码一区tr| 91精品国产高清91久久久久久| 亚洲女人av| 欧美xxxx吸乳| 狠狠做深爱婷婷综合一区| 99在线视频首页| 国精品产品一区| 91chinesevideo永久地址| 免费在线观看av网站| 日韩成人av在线播放| 国产三级午夜理伦三级| 日韩欧美一区视频| 久久精品久久精品久久| 中文字幕中文在线不卡住| 制服丝袜第二页| 国产盗摄一区二区三区| 亚洲精品久久久中文字幕| 一本久久知道综合久久| www.亚洲成人网| 天天天综合网| 日韩色妇久久av| 色天天色综合| 国产精品视频在线免费观看| 亚洲综合视频| 国产精品欧美日韩| 亚洲小少妇裸体bbw| 高清欧美性猛交xxxx| av官网在线播放| 色青青草原桃花久久综合| 青青草超碰在线| 亚洲电影成人av99爱色| 国产成人精品一区二三区四区五区 | 国内免费久久久久久久久久久| h片在线观看网站| 日韩一区视频在线| 婷婷视频在线| 中文字幕日韩免费视频| 国产一区二区三区不卡在线| 亚洲精品美女在线| 日韩性xxxx| 亚洲国产精品女人久久久| 亚洲男人天堂久久| 日韩欧美视频一区| 亚洲av无码国产综合专区| 日韩一区二区视频| 精品国产一级片| 日韩一区二区精品| 国产wwwxxx| 欧美videossexotv100| 亚洲av无码专区在线| 日韩欧美中文一区二区| www.com欧美| 精品国产一二三区| 日本精品久久久久久| 亚洲精品国产精品乱码不99按摩| 日本精品一二区| 日韩大片免费观看视频播放| 欧美日韩在线中文字幕| 日韩精品极品在线观看| 欧美一区二区视频| 国产亚洲精品久久久久久777 | 欧美精品在线网站| 欧洲黄色一区| 午夜精品久久久久久久99热浪潮| 55av亚洲| 国产成人精品综合| 高清欧美日韩| 亚洲综合精品伊人久久| 91精品久久久久久综合五月天| 国产精品免费在线| 小说区图片区色综合区| 日韩中文一区二区三区| 99视频精品视频高清免费| 日本黄网站色大片免费观看| 欧美午夜在线| 日韩av资源在线| 麻豆传媒一区二区三区| 亚洲三级在线视频| 91免费版在线看| 啪啪一区二区三区| 亚洲第一福利视频在线| 亚洲天堂男人av| 欧美高清视频不卡网| 人妻精品无码一区二区| 亚洲色图激情小说| 免费黄色电影在线观看| 久久久久久久久久久av| 欧美大片免费高清观看| 91夜夜未满十八勿入爽爽影院| 91成人噜噜噜在线播放| 免费av一区二区三区| 99久久综合| 欧美韩国日本在线| 狠狠色丁香久久婷婷综| 亚洲一区二区乱码| 亚洲欧洲制服丝袜| 五月天婷婷激情| 91精品国产91久久久久久一区二区| 日韩在线视频第一页| 中文日韩在线观看| 暖暖在线中文免费日本| 国产精品7m视频| 国产精品流白浆在线观看| 亚洲国产精品毛片| 亚洲日韩视频| 国产欧美精品一二三| 久久久久久久久久久99999| 成年人午夜剧场| 欧美在线你懂的| 天天躁日日躁狠狠躁喷水| 日韩有码在线播放| 黑人巨大精品欧美一区二区桃花岛| 91日本在线视频| 精品视频黄色| 欧美三级午夜理伦三级| 国产69精品一区二区亚洲孕妇| 微拍福利一区二区| 精品女同一区二区三区在线播放| 国产熟女一区二区三区四区| 亚洲欧洲在线播放| 黄色在线网站噜噜噜| 97se在线视频| 五月开心六月丁香综合色啪| 毛片一区二区三区四区| 不卡视频一二三| 久久免费看少妇高潮v片特黄| 色婷婷精品久久二区二区蜜臂av | 亚洲熟妇无码另类久久久| 狠狠色丁香久久婷婷综| 中字幕一区二区三区乱码| 黄色精品一区二区| 国产91久久久| 久久综合网hezyo| 日韩三区四区| 少妇免费毛片久久久久久久久| 一区二区日本视频| 制服丝袜在线第一页| 亚洲黄色在线视频| 国产情侣在线播放| 久久精品影视伊人网| 懂色aⅴ精品一区二区三区| 欧洲av一区| 日韩国产精品久久| 亚洲精品成人无码| 91电影在线观看| 免费看男男www网站入口在线| 欧美资源在线观看| 香蕉精品久久| 国产精品亚洲αv天堂无码| 久久久一区二区| 91在线视频免费播放| 亚洲欧洲午夜一线一品| 性欧美hd调教| 视频一区免费观看| 日韩成人一级大片| 呻吟揉丰满对白91乃国产区| 欧美日韩一区二区电影| 日本在线看片免费人成视1000| 国产欧美一区二区白浆黑人| 天天射成人网| 成年女人免费视频| 偷窥少妇高潮呻吟av久久免费| 香蕉视频黄在线观看| 91成人国产在线观看| 九九视频精品全部免费播放| mm1313亚洲国产精品无码试看| 国产欧美精品国产国产专区| 在线免费观看日韩视频| 精品久久国产精品| 51亚洲精品| 免费无码不卡视频在线观看| 久久精品人人做人人爽97| 最近中文字幕在线观看视频| 久久精品最新地址| 高潮久久久久久久久久久久久久| 国产午夜伦鲁鲁| 国产精品免费丝袜| 亚洲国产欧美另类| 日本精品一区二区三区在线播放视频 | 欧美日韩亚洲国产| 国产精品jizz在线观看老狼| 国产99久久久国产精品免费看| 国产稀缺真实呦乱在线| 亚洲精品一区二区三区不| 素人啪啪色综合| 国产美女永久无遮挡| 久久久久久久久久久99999| 99国产在线播放| 国产69久久精品成人| 忘忧草精品久久久久久久高清| 女教师高潮黄又色视频| 色综合天天视频在线观看| 国产在线高清理伦片a| 狠狠色综合一区二区| 青娱乐精品在线视频| 国产亚洲精品成人| 国产一区二区三区视频在线观看| 日本免费精品| 动漫av免费观看| 亚洲国产成人tv| 色老头视频在线观看| 久久久人人爽| 国产精品一区二区在线观看网站| 日本中文字幕久久| 欧美床上激情在线观看|