iT邦幫忙

2022 iThome 鐵人賽

0
自我挑戰組

JavaScript101與人生幹話系列 第 30

JavaScript101與人生幹話 - 我所不知道的樣板字面值

  • 分享至 

  • xImage
  •  

1 我所不知道的樣板字面值

一般我所知道的樣板字面值為以下

const name = 'Jack'
const string = `你好我是${name}`
console.log(string) // 你好我是Jack

1-1樣板字面值可以這樣子寫-加入or

const string = `你好我是${name || 'May'}`
console.log(string) // 你好我是May

1-2樣板字面值可以這樣子寫-加入三元判斷式

const string = `你好我是${name ?  name:'May'}`
console.log(string)

1-3樣板字面值內部只能放表達式

let name = 'Jay'
const string = `你好我是${name = 'May'}`
console.log(string) // May

const obj = {
    name: 'Jay'
}
// 把obj內的name屬性改為不可寫入
Object.defineProperty(obj, 'name',{
    writable:false
})
const string1 = `你好我是${obj.name = 'May'}`
// 可以看到這個時候的樣板字面值輸出的數值是 obj.name = 'May' 這個表達式的值,也就是'May'
console.log(string1) // 你好我是May
console.log(obj.name) // Jay

1-3-1 樣板字面值內部放入立即函式也OK

樣板字面值內部可以放入立即函式,但是立即函式也需要式表達式才行

const name = 'Jay'
const money = 500
const string = `我是${name},原來我有${money},後來變成了${(() => money * 2)()}`
console.log(string) // "我是Jay,原來我有500,後來變成了1000"

1-4 標籤樣板字面值

簡單的來說,可以把樣板字面值的字串,與變數分離。

function fn(string, ...par) {
    console.log('string:',string)
    console.log('pars:', par)
}
const name = 'Jay'
const money = 500
fn`我是${name},我現在有 ${money}` 
// string: ['我是', ',我現在有 ', '', raw: Array(3)]
// pars:  ['Jay', 500]

1-4-1 要如何使用標籤樣板字面值與巢狀樣板字面值呢?

拿以上範例來說我想要在變數加上span例如 <span>Jay</span>

function fn(strings, ...pars) {
    //console.log('strings:', strings)
    //console.log('par:', pars)
    // 這裡的srtgin與pars都會以array的方式呈現,所以可以使用forEach組成新的字串
    // 要注意在樣板字面值使用三元運算子內容有結果的地方有變數家字串的話需要使用``圍起來
    const all = `${strings.map((string, i) => `${string}${pars[i]? `<span>${pars[i]}</span>`:''}`).join('')}`
    console.log(all)
}
const name = 'Jay'
const money = 500
fn`我是${name}我現在有${money}` //"我是<span>Jay</span>我現在有<span>500</span>"

人生幹話 - 我不想待在生技業啦!!

這是我決定轉職的最後推手,考績優,但年終獎金只有本薪(24400)的0.5個月,沒錯我只拿0.5個月這種我認為是汙辱性的獎金,工作越來越多我認了、越來越賽我認了但最後換這種嘲諷式的獎金,為什麼是嘲諷呢?經過打聽考績甲的年終都有一個月,只有我考績打優拿0.5個月,最後在過年後的一個月提出離職,這個時候就可以真實的知到你的職位是不是真的重要,如果真的重要,當你發出離職宣告的隔天甚至當下就會有1-2的背後靈貼在你身邊,然後不斷的榨取你身上所有一切對工作的資訊,這種情況有發生在我身上嗎?沒有,原來經理與副經理還有老闆常說風險評估很重要都是場唬爛,對他們來說風險評估文件就像是國小學生要檢查手帕一樣,風險評估文件就是那個手帕,我提離職時也沒人主動來交接我的工作,還是我自己列出百來項的交接清單,以及各事項的流程、現在的進度及未來的方向後拍拍屁股走人啦,後來聽說來了幾個人接了我的位置不過都做不到3個月就走了,至今那樣產品依舊未上市。


上一篇
JavaScript101與人生幹話 - 屬性的特徵與Getter/Setter
系列文
JavaScript101與人生幹話30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
peace&love
iT邦新手 5 級 ‧ 2024-02-21 17:27:22

接下來還有嗎?

生技業鬼故事嗎?應該是沒有了,除非開的薪水很香,不然我不會回去。

我要留言

立即登入留言