您好,登錄后才能下訂單哦!
本篇內容主要講解“JavaScript運算符與表達式實例代碼分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JavaScript運算符與表達式實例代碼分析”吧!
嚴格相等運算符,用作邏輯判斷
1 == 1 // 返回 true 1 == '1' // 返回 true,會先將右側的字符串轉為數字,再做比較 1 === '1' // 返回 false,類型不等,直接返回 false
typeof查看某個值的類型
typeof 1 // 返回 'number' typeof '1' // 返回 'string'
需求,如果參數n沒有錯傳遞,給它一個【男】
推薦做法:
function test(n = '男') { console.log(n); }
你可能的做法:
function test(n) { if(n === undefined) { n = '男'; } console.log(n); }
還可能是這樣:
function test(n) { n = (n === undefined) ? '男' : n; console.log(n); }
一些老舊代碼中的可能做法(不推薦):
function test(n) { n = n || '男'; console.log(n); }
它的語法是:
值1 || 值2
如果值1 是 Truthy,返回值1,如果值1 是 Falsy 返回值 2
需求,如果參數n沒有傳遞或是null,給它一個【男】
如果用傳統辦法:
function test(n) { if(n === undefined || n === null) { n = '男'; } console.log(n); }
用??
function test(n) { n = n ?? '男'; console.log(n); }
語法:
值1 ?? 值2
值1 是 nullish,返回值2
值1 不是 nullish,返回值1
需求,函數參數是一個對象,可能包含有子屬性
例如,參數可能是:
let stu1 = { name:"張三", address: { city: '北京' } }; let stu2 = { name:"李四" } let stu3 = { name:"李四", address: null }
現在要訪問子屬性(有問題)
function test(stu) { console.log(stu.address.city) }
現在希望當某個屬性是 nullish 時,短路并返回 undefined,可以用 ?.
function test(stu) { console.log(stu.address?.city) }
用傳統方法:
function test(stu) { if(stu.address === undefined || stu.address === null) { console.log(undefined); return; } console.log(stu.address.city) }
展開運算符
作用1:打散數組,把元素傳遞給多個參數
let arr = [1,2,3]; function test(a,b,c) { console.log(a,b,c); }
需求:把數組元素依次傳遞給函數參數
傳統寫法:
test(arr[0],arr[1],arr[2]); // 輸出 1,2,3
展開運算符寫法:
test(...arr); // 輸出 1,2,3
打散可以理解為【去掉了】數組外側的中括號,只剩下數組元素
作用2:復制數組或對象
數組:
let arr1 = [1,2,3]; let arr2 = [...arr1]; // 復制數組
對象:
let obj1 = {name:'張三', age: 18}; let obj2 = {...obj1}; // 復制對象
注意:展開運算符復制屬于淺拷貝,例如:
let o1 = {name:'張三', address: {city: '北京'} } let o2 = {...o1};
作用3:合并數組或對象
合并數組:
let a1 = [1,2]; let a2 = [3,4]; let b1 = [...a1,...a2]; // 結果 [1,2,3,4] let b2 = [...a2,5,...a1] // 結果 [3,4,5,1,2]
合并對象:
let o1 = {name:'張三'}; let o2 = {age:18}; let o3 = {name:'李四'}; let n1 = {...o1, ...o2}; // 結果 {name:'張三',age:18} let n2 = {...o3, ...o2, ...o1}; // 結果{name:'李四',age:18}
復制對象時出現同名屬性,后面的會覆蓋前面的
解構賦值
用在聲明變量時:
let arr = [1,2,3]; let [a, b, c] = arr; // 結果 a=1, b=2, c=3
用在聲明參數時:
let arr = [1,2,3]; function test([a,b,c]) { console.log(a,b,c) // 結果 a=1, b=2, c=3 } test(arr);
用在聲明變量時:
let obj = {name:"張三", age:18}; let {name,age} = obj; // 結果 name=張三, age=18
用在聲明參數時:
let obj = {name:"張三", age:18}; function test({name, age}) { console.log(name, age); // 結果 name=張三, age=18 } test(obj)
到此,相信大家對“JavaScript運算符與表達式實例代碼分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。