精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩欧美中文在线观看| 亚洲第一精品网站| 清纯唯美日韩| 91精品欧美综合在线观看最新| eeuss中文| 日本成人动漫在线观看| 日韩经典中文字幕一区| 久久亚洲一区二区三区四区五区高| 五月天婷婷在线观看视频| 乱插在线www| 久久久精品欧美丰满| 成人激情综合网| 精品美女久久久久| 99久久99视频只有精品| 精品福利一区二区三区| 免费观看精品视频| 大片免费在线看视频| 9色porny自拍视频一区二区| 国产精品免费网站| 日本系列第一页| 日韩欧美午夜| 日韩精品中文字幕视频在线| 99精品视频国产| 亚洲精品mv| 一区二区在线免费| 亚洲人久久久| 日本高清中文字幕二区在线| 国产综合色视频| 国产成人一区三区| 日本一区二区不卡在线| 欧美疯狂party性派对| 日韩电影在线观看中文字幕| 在线免费黄色小视频| 日韩av一级| 欧美日韩国产一区二区| 日韩免费在线观看av| 欧美r级在线| 欧美韩国一区二区| 麻豆av福利av久久av| 精品欧美在线观看| 激情综合色播五月| 国产精品日韩一区| 国产美女www| 先锋影音久久久| 国内精品久久久久久中文字幕| 一区二区三区免费网站| 精品三级在线观看| 亚洲视频第二页| 男人添女人荫蒂国产| 一本大道色婷婷在线| 亚洲精品免费视频| 黄色录像特级片| 巨大荫蒂视频欧美大片| 久久久久88色偷偷免费| 欧美成熟毛茸茸复古| 天堂v在线观看| caoporen国产精品视频| 成人欧美一区二区三区在线观看 | 欧美精品一区二区久久| 精品无人国产偷自产在线| 免费日本黄色网址| 欧美成人一区在线观看| 日韩精品视频免费| 少妇真人直播免费视频| 亚洲精品国产动漫| 亚洲性日韩精品一区二区| 国产黄片一区二区三区| 国产精品亚洲二区| 最近更新的2019中文字幕| 免费一级特黄3大片视频| 日韩电影一区| 久久久精品国产亚洲| 欧美在线视频第一页| 午夜日韩激情| 97久久久久久| 亚洲欧美日韩激情| 男女视频一区二区| 91亚洲精品一区| 国产香蕉在线观看| 久久蜜桃香蕉精品一区二区三区| 日本午夜精品电影| 欧洲不卡av| 洋洋成人永久网站入口| 131美女爱做视频| 国产精品亚洲一区二区三区在线观看| 在线免费视频一区二区| 成人综合久久网| 成人台湾亚洲精品一区二区 | 免费看毛片的网站| 蜜桃一区二区三区| 日韩三级成人av网| 亚洲国产精一区二区三区性色| 亚洲综合欧美| 成人高h视频在线| 天天射,天天干| 国产欧美一区二区精品婷婷| 亚洲小视频在线播放| 欧美少妇网站| 666欧美在线视频| 丰满大乳奶做爰ⅹxx视频| 日韩欧美高清在线播放| 欧美精品制服第一页| 超碰超碰超碰超碰| 国产美女精品一区二区三区| 精品一区二区三区自拍图片区| 成人一区二区不卡免费| 亚洲一区视频在线| 无需播放器的av| 91九色鹿精品国产综合久久香蕉| 亚洲欧美日韩第一区| √天堂中文官网8在线| 国产欧美在线| 成人精品一区二区三区电影黑人| 五月激情婷婷综合| 亚洲丝袜精品丝袜在线| 欧美色图色综合| 日本精品在线观看| 国产一区二区三区丝袜 | 黄色片在线播放| 亚洲一区二区三区不卡国产欧美 | 激情综合一区二区三区| 久久66热这里只有精品| 国内精品久久久久久野外| 欧美日韩在线视频首页| 又大又长粗又爽又黄少妇视频| blacked蜜桃精品一区| 97国产精品视频人人做人人爱| 亚洲一卡二卡在线| 久久精品亚洲乱码伦伦中文| 欧美亚洲黄色片| 97色婷婷成人综合在线观看| 亚洲区一区二区| 天天操天天爽天天干| 国产激情偷乱视频一区二区三区| 亚洲欧洲一区二区| 精品3atv在线视频| 亚洲男人天堂2023| 天堂网av手机版| 成人精品国产免费网站| 男人草女人视频| 国产日韩在线观看视频| 久久精品视频在线观看| 中文区中文字幕免费看| 久久免费国产精品| 激情综合亚洲| 久久久免费毛片| 国产精品无圣光一区二区| 欧美精品一区二区三区三州| 国产一区二区三区免费观看在线| 一二美女精品欧洲| 精品国产xxx| 97精品国产露脸对白| 国产 欧美 日韩 一区| 国语精品视频| 久久精品免费播放| 精品人妻一区二区三区免费看 | 国模叶桐国产精品一区| 风流老熟女一区二区三区| 一区二区三区四区五区视频在线观看 | 国产黄大片在线观看| 日韩精品影音先锋| 久久久www成人免费毛片| 国产精品一区二区在线看| 日本三级福利片| 成人短视频软件网站大全app| 日韩性xxxx爱| 久久99久久久久久久噜噜| 劲爆欧美第一页| 国产电影一区二区三区| 影音先锋成人资源网站| 美女精品视频在线| 欧美日韩国产999| 免费看日韩av| 天天色综合成人网| 泷泽萝拉在线播放| 日韩精品久久久久久| 亚洲国产精品毛片| 91精品网站在线观看| 欧美成人精品一区二区| 成 人 免费 黄 色| 午夜国产不卡在线观看视频| 国内精品久久99人妻无码| 丝袜诱惑制服诱惑色一区在线观看 | 日本在线视频免费观看| 91色乱码一区二区三区| 国产又猛又黄的视频| 99精品美女| 国产日韩欧美综合精品 | 婷婷综合久久| 99视频日韩| 欧美xx视频| 久久精品人人爽| 欧美一区二区黄片| 在线观看亚洲专区| 欧美日韩在线国产| 久久看人人爽人人| 少妇愉情理伦片bd| 免费精品视频| 在线无限看免费粉色视频| 大香伊人久久精品一区二区| 国产成人鲁鲁免费视频a| av在线导航| 日韩成人在线观看| 国产人妖一区二区| 欧美视频中文字幕在线| 国产大屁股喷水视频在线观看| 国产成人一区在线| www.日本xxxx| 亚洲国产第一| 亚洲一区尤物| 天堂日韩电影| 亚洲综合中文字幕在线观看| 一个人www视频在线免费观看| www.日韩欧美| 毛片在线能看| 欧美精品一区视频| 怡春院在线视频| 午夜精品福利久久久| 日本美女黄色一级片| 99久久国产免费看| avtt中文字幕| 国内精品视频一区二区三区八戒| 国产xxxxx在线观看| 在线不卡视频| 久久观看最新视频| 第一会所sis001亚洲| 国产在线一区二区三区播放| www.成人在线.com| 国产精品第一页在线| 国产美女精品写真福利视频| 久久手机精品视频| 777电影在线观看| 亚洲欧美在线一区二区| 天天干视频在线| 精品精品欲导航| 性欧美videos另类hd| 在线播放视频一区| 亚洲熟妇av乱码在线观看| 色欧美乱欧美15图片| 国产一级做a爱片久久毛片a| 亚洲一区二区三区四区中文字幕| 三上悠亚在线观看视频| 国产欧美精品一区| 国产黄片一区二区三区| 久久综合狠狠综合久久激情| 亚洲综合自拍网| www.av精品| 欧美视频一区二区三区四区| 国产特黄大片aaaa毛片| 亚洲国产毛片aaaaa无费看 | 日韩av片网站| 日韩专区在线视频| 日韩毛片在线免费看| 亚洲欧美清纯在线制服| 欧美亚洲一二三区| 午夜在线一区| 免费激情视频在线观看| 日本女优在线视频一区二区| 天天干在线影院| 免费高清在线视频一区·| 冲田杏梨av在线| 久久精品国产精品亚洲综合| 午夜剧场高清版免费观看| 久久99精品国产91久久来源| 午夜不卡福利视频| 国产成人免费视频精品含羞草妖精 | 亚洲天堂久久新| 久久久久亚洲蜜桃| 黄色av免费播放| 日韩理论片中文av| 久久久精品视频免费观看| 亚洲一区二三区| 99久在线精品99re8热| 色狠狠一区二区| 亚洲在线视频播放| 日韩欧美国产一区二区在线播放 | 精品无人区乱码1区2区3区在线| 色视频免费在线观看| 亚洲一级一级97网| 免费在线毛片网站| 欧美激情videoshd| 亚洲福利影院| 国产日韩亚洲欧美| 操欧美女人视频| 欧美一区二区综合| 婷婷伊人综合| 无码人妻精品一区二区三区在线| 三级一区在线视频先锋| 婷婷激情5月天| 波多野结衣视频一区| 影音先锋男人在线| 夜夜爽夜夜爽精品视频| 亚洲欧美一区二区三区在线观看| 欧美日韩一区二区在线观看| 精品欧美在线观看| 亚洲欧洲xxxx| 最新黄网在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 国产成人77亚洲精品www| 不卡视频一区| 欧美日韩国产一区二区三区不卡| 国产欧美综合一区| 欧美亚洲一区| 免费黄色在线播放| 国产婷婷一区二区| 精品午夜福利在线观看| 欧美性生活大片视频| 日本人妻熟妇久久久久久| 色阁综合伊人av| 乱馆动漫1~6集在线观看| 91最新在线免费观看| 欧美日韩爱爱| 欧美精品久久久久久久自慰| 久久成人久久鬼色| 女人被狂躁c到高潮| 亚洲伦理在线精品| 最近日韩免费视频| 日韩av一区在线观看| av网站大全在线| 国产精品久久久久久久午夜 | 美女脱光内衣内裤视频久久网站 | 国产免费观看久久| 日本中文字幕免费| 日韩欧美一卡二卡| 色影院视频在线| 国产不卡av在线| 噜噜噜天天躁狠狠躁夜夜精品| 大地资源第二页在线观看高清版| 久久福利精品| 黄色av网址在线观看| 亚洲精品成人精品456| 一级全黄裸体免费视频| 一区二区欧美日韩视频| 色网在线免费观看| 国产在线一区二区三区欧美 | 日本精品久久久久中文字幕| 成人激情免费电影网址| 外国一级黄色片| 欧美一区二区免费观在线| 日韩免费网站| 国产精品视频中文字幕91| av中文字幕一区二区| 免费国产成人av| 久久精品人人做人人综合 | 亚洲性感美女99在线| 巨乳女教师的诱惑| 亚洲精品国产一区二区三区四区在线| 亚洲一级视频在线观看| 色偷偷9999www| 欧美a一级片| 自拍偷拍一区二区三区| 久久99国产乱子伦精品免费| 国产一区第一页| 6080亚洲精品一区二区| 91在线中字| av一区二区三区四区电影| 伊人久久成人| jlzzjizz在线播放观看| 黑人精品xxx一区一二区| 欧美日本韩国一区二区| 欧美日韩亚洲综合在线| 亚洲欧美手机在线| 国产精品久久影院| 国产一区二区三区黄片| 欧美猛交ⅹxxx乱大交视频| 亚洲日本视频在线| 国产精品久久中文字幕| 91丝袜呻吟高潮美腿白嫩在线观看| 国产成人在线视频观看| 国产一区二区三区精品久久久| 久久久免费人体| 国产91在线亚洲| 91麻豆免费看| 在线免费观看中文字幕| 麻豆乱码国产一区二区三区| 伊人久久大香线蕉av超碰| 国产精品又粗又长| 国产欧美日韩三区| 99久久免费国产精精品| 韩国精品久久久999| 国产日韩欧美一区二区三区| 五月天中文字幕在线| 亚洲综合色噜噜狠狠| 日韩精品系列| 成人免费网站在线观看| 狠色狠色综合久久| 亚洲v国产v欧美v久久久久久| 欧美浪妇xxxx高跟鞋交| 超级碰碰不卡在线视频| 视频一区视频二区视频三区视频四区国产 | 亚洲精品国产品国语在线| 日韩免费va| 日韩在线视频在线| 久久久久久久综合| 国产毛片毛片毛片毛片| 97成人精品视频在线观看| 欧美aaaa视频| 国产黄色三级网站| 欧美一区二区三区喷汁尤物| 男人av在线播放|