国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

12個提高JavaScript技能的概念(小結)

2024-05-06 15:39:43
字體:
來源:轉載
供稿:網友

JavaScript 是一種復雜的語言。如果是你是高級或者初級 JavaScript 開發人員,了解它的基本概念非常重要。本文介紹 JavaScript 至關重要的12個概念,但絕對不是說 JavaScript 開發人員只需要知道這些就可以了。

1.變量賦值 (值 vs 引用)

理解 JavaScript 如何給變量賦值可以幫助我們減少一些不必要的 bug。如果你不理解這一點,可能很容易地編寫被無意中更改值的代碼。

JavaScript 總是按照值來給變量賦值。 這一部分非常重要:當指定的值是 JavaScript 的五種基本類型之一(即 Boolean,null,undefined,String 和 Number)時,將分配實際值。 但是,當指定的值是 Array,Function或Object時,將分配對內存中對象的引用給變量。

在以下代碼段中,使用 var1 對 var2 進行賦值。 由于var1是基本類型(String),因此 var2 的值等于 var1 的 String 值,并且可以認為此時與var1完全不同。 因此,重新賦值var2對var1沒有影響。

let var1 = 'My string';let var2 = var1;var2 = 'My new string';console.log(var1);// 'My string'console.log(var2);// 'My new string'

接著,與對象賦值進行比較。

let var1 = { name: 'Jim' }let var2 = var1;var2.name = 'John';console.log(var1);// { name: 'John' }console.log(var2);// { name: 'John' }

如果你期望它會像原始類型賦值那樣,很可能會出問題!如果你創建了一個無意中會改變對象的函數,就會出現一些非預期的行為。

2.閉包

閉包是一個重要的JavaScript模式,可以私有訪問變量。在本例中,createGreeter返回一個匿名函數,這個函數可以訪問參數 greeting(在這里是“Hello”)。在后續的調用中,sayHello 將有權訪問這個 greeting!

function createGreeter(greeting) { return function(name) {  console.log(greeting + ', ' + name); }}const sayHello = createGreeter('Hello');sayHello('Joe');// Hello, Joe

在更真實的場景中,你可以設想一個初始函數apiConnect(apiKey),它返回一些使用API key的方法。在這種情況下,apiKey 只需要提供一次即可。

function apiConnect(apiKey) { function get(route) {  return fetch(`${route}?key=${apiKey}`); } function post(route, params) {  return fetch(route, {   method: 'POST',   body: JSON.stringify(params),    headers: {     'Authorization': `Bearer ${apiKey}`    }   }) } return { get, post }}const api = apiConnect('my-secret-key');// No need to include the apiKey anymoreapi.get('http://www.example.com/get-endpoint');api.post('http://www.example.com/post-endpoint', { name: 'Joe' });

3.解構

JavaScript 參數解構可以從對象中干中提取所需屬性的常用方法。

const obj = { name: 'Joe', food: 'cake'}const { name, food } = obj;console.log(name, food);// 'Joe' 'cake'            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 望谟县| 罗山县| 烟台市| 五莲县| 老河口市| 广饶县| 全椒县| 延长县| 南宫市| 嵊州市| 玉树县| 永新县| 黔南| 分宜县| 玉山县| 泰和县| 民乐县| 诸城市| 库尔勒市| 古田县| 沛县| 纳雍县| 赤峰市| 偃师市| 楚雄市| 甘德县| 牟定县| 无为县| 祁东县| 新兴县| 巴中市| 新巴尔虎右旗| 东明县| 文山县| 吴堡县| 南汇区| 五台县| 文登市| 政和县| 萝北县| 宁都县|