成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

11 個JavaScript專業技巧,讓你成為更好的開發者

開發 前端
你對 JavaScript 了解多少?您知道如何充分發揮其潛力并避免常見的陷阱嗎?您知道如何編寫易于閱讀、維護和調試的代碼嗎?你知道如何使用 JavaScript 最新最酷的特性嗎?

如果您想提高 JavaScript 技能并成為更好的開發人員,那么本文適合您。本文將教您 11 個專業技巧,幫助您編寫更好的 JavaScript 代碼,你還在等什么?一起來學習吧。

1. 使用 XOR 運算符比較數字

按位異或運算符 (^) 對兩個操作數執行按位異或運算。這意味著如果位不同則返回 1,如果相同則返回 0。

const a = 1337;
const b = 69;


// nooby
a !== 69 ? console.log('Unequal') : console.log("Equal"); // Unequal
b !== 69 ? console.log('Unequal') : console.log("Equal"); // Equal


// pro
a ^ 69 ? console.log('Unequal') : console.log("Equal"); // Unequal
b ^ 69 ? console.log('Unequal') : console.log("Equal"); // Equal

2. 用數據即時創建和填充數組

// nooby
const array = new Array(3);
for(let i=0; i < array.length; i++){
array[i] = i;
}


console.log(array) // [ 0, 1, 2 ]


// pro
const filledArray = new Array(3).fill(null).map((_, i)=> (i));
console.log(filledArray) // [ 0, 1, 2 ]

3. 使用對象中的動態屬性

// nooby
let propertyName = "body";
let paragraph = {
id: 1,
};
paragraph[propertyName] = "other stringy";
// { id: 1, body: 'other stringy' }
console.log(paragraph)


// pro
let propertyName = "body";
let paragraph = {
id: 1,
[propertyName] : "other stringy"
};
// { id: 1, body: 'other stringy' }
console.log(paragraph)

4. 輕松消除數組中的重復值

您可以使用集合消除數組中的重復值。

// nooby
let answers = [7, 13, 31, 13, 31, 7, 42];
let leftAnswers = [];
let flag = false;
for (i = 0; i< answers.length; i++) {
for (j = 0; j < leftAnswers.length; j++) {
if (answers[i] === leftAnswers[j]) {
flag = true;
}
}
if (flag === false) {
leftAnswers.push(answers[i]);
}
flag = false;
}
//[ 7, 13, 31, 42 ]
console.log(leftAnswers)




// pro
let answers = [7, 13, 31, 13, 31, 7, 42];
let leftAnswers = Array.from(new Set(answers));
// [ 7, 13, 31, 42 ]
console.log(leftAnswers)

5. 輕松地將對象轉換為數組

您可以使用展開運算符將數組轉換為對象。

// nooby
let arr = ["v1", "v2", "v3"];
let objFromArray = {};


for (let i = 0; i < arr.length; ++i) {
if (arr[i] !== undefined) {
objFromArray[i] = arr[i];
}
}


// { '0': 'v1', '1': 'v2', '2': 'v3' }
console.log(objFromArray)


// pro
let objFromArrayPro = {...arr};


// { '0': 'v1', '1': 'v2', '2': 'v3' }
console.log(objFromArrayPro)

6. 使用邏輯運算符進行短路評估

您可以使用邏輯運算符進行短路評估,方法是使用 && 運算符返回表達式鏈中的第一個假值或最后一個真值,或者使用 || 運算符返回表達式鏈中的第一個真值或最后一個假值。

const dogs = true;


// nooby
if (dogs) {
runAway();
}


// pro
dogs && runAway()


function runAway(){
console.log('You run!');
}

7. 對象鍵維護它們的插入順序

對象鍵通過遵循一個簡單的規則來維護它們的插入順序:類整數鍵按數字升序排序,而非類整數鍵根據它們的創建時間排序。

const character = {
name: "Arthas",
age: 27,
class: "Paladin",
profession: "Lichking",
};


// name age class profession
console.log(Object.keys(character));

8. 創建并填充指定大小的數組

您可以使用帶有兩個參數的 Array() 構造函數來創建和填充指定大小和值的數組:大小和值,或者對空數組使用 Array.fill() 方法。

// nooby
const size = 5;
const defaultValue = 0;
const arr = []
for(let i = 0; i < size; i++){
arr.push(defaultValue)
}
console.log(arr);


// pro
const size = 5;
const defaultValue = 0;
const arr = Array(size).fill(defaultValue);
console.log(arr); // [0, 0, 0, 0, 0]

9. 理解 JavaScript 中的 Truthy 和 Falsy 值

在布爾上下文中使用時,Truthy 和 Falsy 值會隱式轉換為 true 或 false。

虛假值 => false, 0, ""(空字符串), null, undefined, &NaN

真值 => "Values", "0", {}(空對象),&[](空數組)

// pro
if(![].length){
console.log("There is no Array...");
} else {
console.log("There is an Array, Hooray!");
}


if(!""){
console.log("There is no content in this string...");
} else {
console.log("There is content in this string, Hooray!");
}

10. 用更好的參數改進函數

不要使用單個多個參數,而是使用參數對象。在函數定義中解構它以獲得所需的屬性。

// nooby
function upload(user, resourceId, auth, files) {}


upload(...); // need to remember the order


// pro
function upload(
{ user, resourceId, auth, files } = {}
) {}


const uploadObj = {
user: 'me',
resourceId: uuid(),
auth: 'token',
files: []
}


upload(uploadObj);

11. Null 和 Undefined 在 JavaScript 中是不同的

Null 和 undefined 是兩個不同的值,表示沒有值。

  • null => 是的,這是一個值。Undefined 不是
  • 將 null 想象成在一個空盒子前面
  • 把 undefined 想象成在沒有盒子的前面
const fnExpression = (s = 'default stringy') => console.log(s);


fnExpression(undefined); // default stringy
fnExpression(); // default stringy


fnExpression(null); // null

總結

以上就是我今天想與您分享的11個關于JavaScript的專業技巧,希望您能從中學到新東西。

責任編輯:華軒 來源: web前端開發
相關推薦

2020-03-31 09:47:04

Vue開發代碼

2024-12-31 00:12:39

命令Docker網絡

2023-06-29 15:08:21

JavaScrip開發

2022-06-23 09:22:57

Vue技巧前端

2017-02-10 12:02:39

Node開發者

2022-06-08 08:55:15

JavaScript代碼前端

2022-12-07 15:01:47

2023-01-04 08:17:21

Typescript技巧欺騙性

2023-02-06 16:46:59

JavaScript程序員技巧

2020-08-06 00:25:38

Python代碼開發

2017-08-29 14:50:41

Android開發者專業性建議

2023-07-11 15:43:16

JavaScript技巧

2023-06-27 17:42:24

JavaScript編程語言

2025-04-17 00:00:00

開源項目社區

2024-02-28 07:48:05

Rust項目框架

2025-02-13 12:52:27

JavaScrip代碼開發

2021-10-11 08:20:30

Javascript 高階函數前端

2022-04-26 18:33:02

JavaScript技巧代碼

2020-06-15 10:29:10

JavaScript開發 技巧

2022-10-20 15:12:43

JavaScript技巧開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久爱黑人激情av摘花 | 亚洲日韩第一页 | 日本超碰| 色综合天天综合网国产成人网 | 免费色网址 | 久精品视频 | 91精品久久久久久久久久 | 丝袜久久 | 国产精品一区三区 | 在线亚洲电影 | 一区二区三区在线播放 | 国产精品久久久久久久久久久久久 | 特黄毛片视频 | 国内久久 | 做a视频在线观看 | 91精品国产91| 免费视频一区 | 久久久久久亚洲 | 久久亚洲国产精品 | 四虎影院欧美 | 午夜av成人 | 日本成人在线网址 | 欧美男人天堂 | 欧美成人免费在线 | 成人免费激情视频 | 精品一区二区三区中文字幕 | 午夜精品久久久久99蜜 | av黄在线观看 | 久久精品国产一区二区电影 | 国产成人在线播放 | 国产精品久久久久久久久免费樱桃 | 精品国产乱码久久久久久牛牛 | 色婷婷国产精品综合在线观看 | 免费在线看a | 久久久久久久久久久爱 | av永久| 在线黄色影院 | 国产精品久久7777777 | 日韩精品免费在线观看 | 日本又色又爽又黄的大片 | av一区二区在线观看 |