您好,登錄后才能下訂單哦!
比較實用的JavaScript 片段有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
1.三元運算符
let someThingTrue = true if(someThingTrue){ handleTrue() }else{ handleFalse() } ****** 以下是簡短版本 ****** let someThingTrue = true someThingTrue ? handleTrue() : handleFalse()
2.短路或運算
const defaultValue = "SomeDefaultValue" let someValueNotSureOfItsExistance = null let expectingSomeValue = someValueNotSureOfItsExistance || defaultValue console.log(expectingSomeValue) // SomeDefaultValue
3. 條件成立
let someValue = true if (someValue) { console.log('條件成立!') }
4. for 循環(huán)
for (let i = 0; i < 1e2; i++) { // 代替 i<100 是不是有點酷 } let someValues = [1, 2, 4] for (let val in someValues) { console.log(val) } let obj = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' } for (let key in obj) { console.log(key) }
5. 值到對象的映射
let x='x',y='y' let obj = {x,y} console.log(obj) // {x: "x", y: "y"}
6. Object.entries()
const credits = { producer: '大遷世界', name: '前端小智', rating: 9 } const arr = Object.entries(credits) console.log(arr) *** 輸出 *** [ [ 'producer', '大遷世界' ], [ 'name', '前端小智' ], [ 'rating', 9 ] ]
7. Object.values()
const credits = { producer: '大遷世界', name: '前端小智', rating: 9 } const arr = Object.values(credits) console.log(arr) *** 輸出 *** [ '大遷世界', '前端小智', 9 ]
8. 模板字面量
let name = '前端小智' let age = 20 var someStringConcatenateSomeVariable = `我是 ${name},今年 ${age} 歲` console.log(someStringConcatenateSomeVariable)
9. 解構(gòu)賦值
import { observable, action, runInAction } from 'mobx';
10.多行字符串
let multiLineString = `some string\n with multi-line of\n characters\n` console.log(multiLineString)
11.Array.find 簡寫
const pets = [{ type: 'Dog', name: 'Max' }, { type: 'Cat', name: 'Karl' }, { type: 'Dog', name: 'Tommy' } ] pet = pets.find(pet => pet.type === 'Dog' && pet.name === 'Tommy') console.log(pet) // { type: 'Dog', name: 'Tommy' }
12.默認(rèn)參數(shù)值
早期的做法
function area(h, w) { if (!h) { h = 1; } if (!w) { w = 1; } return h * w }
ES6 以后的做法
function area(h = 1, w = 1) { return h * w }
13.箭頭函數(shù)的簡寫
let sayHello = (name) => { return `你好,${name}` } console.log(sayHello('前端小智'))
簡寫如下:
let sayHello = name => `你好,${name}` console.log(sayHello('前端小智'))
14.隱式返回
let someFuncThatReturnSomeValue = (value) => { return value + value } console.log( someFuncThatReturnSomeValue('前端小智'))
簡寫如下:
let someFuncThatReturnSomeValue = (value) => ( value + value ) console.log(someFuncThatReturnSomeValue('前端小智'))
15.函數(shù)必須有參數(shù)值
function mustHavePatamMethod(param) { if (param === undefined) { throw new Error('Hey You must Put some param!'); } return param; }
以像這樣重寫:
mustHaveCheck = () => { throw new Error('Missing parameter!') } methodShoudHaveParam = (param = mustHaveCheck()) => { return param }
16.charAt() 簡寫
'SampleString'.charAt(0) // S // 簡寫 'SampleString'[0]
17.有條件的函數(shù)調(diào)用
function fn1() { console.log('I am Function 1') } function fn2() { console.log('I am Function 2') } /* 長的寫法 */ let checkValue = 3; if (checkValue === 3) { fn1() } else { fn2() }
簡短的寫法:
(checkValue === 3 ? fn1 : fn2)()
17.Math.Floor 簡寫
let val = '123.95' console.log(Math.floor(val)) // 常規(guī)寫法 console.log(~~val) // 簡寫
18.Math.pow 簡寫
Math.pow(2, 3) // 8 // 簡寫 2 ** 3 // 8
19.將字符串轉(zhuǎn)換為數(shù)字
const num1 = parseInt('100') // 簡寫 console.log(+"100") console.log(+"100.2")
20.&& 運算
let value = 1; if (value === 1) console.log('Value is one') //OR In short value && console.log('Value is one')
21.toString 簡寫
let someNumber = 123 console.log(someNumber.toString()) // "123" // 簡寫 console.log(`${someNumber}`) // "123"
22.可選的鏈運算符(即將發(fā)布)
現(xiàn)在有一個關(guān)于ECMAScript的新提議,值得了解。
let someUser = { name: 'Jack' } let zip = someUser?.address?.zip //可選鏈接,像 Swift
如果 zip是undefined ,則不會引發(fā)錯誤。
該語法還支持函數(shù)和構(gòu)造函數(shù)調(diào)用
let address = getAddressByZip.?(12345)
如果getAddressByZip是調(diào)用它的函數(shù),否則,表達(dá)式將以undefined的形式計算。
23. 使用對象的方式來替換 switch 語法
let fruit = 'banana'; let drink; switch (fruit) { case 'banana': drink = 'banana juice'; break; case 'papaya': drink = 'papaya juice'; break; default: drink = 'Unknown juice!' } console.log(drink) // banana juice
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。