溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript運算符與表達式實例代碼分析

發(fā)布時間:2023-04-17 09:59:43 來源:億速云 閱讀:73 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“JavaScript運算符與表達式實例代碼分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“JavaScript運算符與表達式實例代碼分析”吧!

一、===

嚴格相等運算符,用作邏輯判斷

1 == 1        // 返回 true 
1 == '1'    // 返回 true,會先將右側(cè)的字符串轉(zhuǎn)為數(shù)字,再做比較
1 === '1'    // 返回 false,類型不等,直接返回 false

typeof查看某個值的類型

typeof 1    // 返回 'number'
typeof '1'    // 返回 'string'

二、||

需求,如果參數(shù)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

三、??與?.

??

需求,如果參數(shù)n沒有傳遞或是null,給它一個【男】

如果用傳統(tǒng)辦法:

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

?.

需求,函數(shù)參數(shù)是一個對象,可能包含有子屬性

例如,參數(shù)可能是:

let stu1 = {
    name:"張三",
    address: {
        city: '北京'
    }
};
 
let stu2 = {
    name:"李四"
}
 
let stu3 = {
    name:"李四",
    address: null
}

現(xiàn)在要訪問子屬性(有問題)

function test(stu) {
    console.log(stu.address.city)
}

現(xiàn)在希望當(dāng)某個屬性是 nullish 時,短路并返回 undefined,可以用 ?.

function test(stu) {
    console.log(stu.address?.city)
}

用傳統(tǒng)方法:

function test(stu) {
    if(stu.address === undefined || stu.address === null) {
        console.log(undefined);
        return;
    }
    console.log(stu.address.city)
}

四、...

展開運算符

作用1:打散數(shù)組,把元素傳遞給多個參數(shù)

let arr = [1,2,3];
 
function test(a,b,c) {
    console.log(a,b,c);
}

需求:把數(shù)組元素依次傳遞給函數(shù)參數(shù)

傳統(tǒng)寫法:

test(arr[0],arr[1],arr[2]);        // 輸出 1,2,3

展開運算符寫法:

test(...arr);                    // 輸出 1,2,3

打散可以理解為【去掉了】數(shù)組外側(cè)的中括號,只剩下數(shù)組元素

作用2:復(fù)制數(shù)組或?qū)ο?/strong>

數(shù)組:

let arr1 = [1,2,3];
let arr2 = [...arr1];        // 復(fù)制數(shù)組

對象:

let obj1 = {name:'張三', age: 18};
 
let obj2 = {...obj1};        // 復(fù)制對象

注意:展開運算符復(fù)制屬于淺拷貝,例如:

let o1 = {name:'張三', address: {city: '北京'} }
 
let o2 = {...o1};

作用3:合并數(shù)組或?qū)ο?/strong>

合并數(shù)組:

let a1 = [1,2];
let a2 = [3,4];
 
let b1 = [...a1,...a2];        // 結(jié)果 [1,2,3,4]
let b2 = [...a2,5,...a1]    // 結(jié)果 [3,4,5,1,2]

合并對象:

let o1 = {name:'張三'};
let o2 = {age:18};
let o3 = {name:'李四'};
 
let n1 = {...o1, ...o2};    // 結(jié)果 {name:'張三',age:18}
 
let n2 = {...o3, ...o2, ...o1}; // 結(jié)果{name:'李四',age:18}

復(fù)制對象時出現(xiàn)同名屬性,后面的會覆蓋前面的

五、[] {}

[]

解構(gòu)賦值

用在聲明變量時:

let arr = [1,2,3];
 
let [a, b, c] = arr;    // 結(jié)果 a=1, b=2, c=3

用在聲明參數(shù)時:

let arr = [1,2,3];
 
function test([a,b,c]) {
    console.log(a,b,c)     // 結(jié)果 a=1, b=2, c=3
}
 
test(arr);

{}

用在聲明變量時:

let obj = {name:"張三", age:18};
 
let {name,age} = obj;    // 結(jié)果 name=張三, age=18

用在聲明參數(shù)時:

let obj = {name:"張三", age:18};
 
function test({name, age}) {
    console.log(name, age); // 結(jié)果 name=張三, age=18
}
 
test(obj)

到此,相信大家對“JavaScript運算符與表達式實例代碼分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI