Paepoi » JavaScript Tips » JavaScript その他
JavaScript その他
# 最終更新日 2024.01.03
let, const
let 宣言された変数はブロック内スコープになる もう var を使うのはヤメにしましょう
let letStr = 1; var varStr = 1; // 同一ブロックでは let 宣言の多重定義は Error になる //let letStr = 4; // var 宣言はブロック内スコープにならない if (true) { let letStr = 2; var varStr = 2; let letBlock = 3; var varBlock = 3; } console.log(`letStr=${letStr} varStr=${varStr} varBlock=${varBlock}`); //=> letStr=1 varStr=2 varBlock=3 try { console.log(letBlock); } catch { console.log('letBlock は参照できません'); } // const は他の言語と同様に変更できない定数になる // 関係ないけど Swift では定数が let なのはややこしい const OM_SYSTEM = 'マイクロフォーサーズ'; try { OM_SYSTEM = 'const に再代入とかしようとすると'; } catch { console.log('例外になっちゃうよーん'); }
非同期で実行
色々な書き方があるけど非同期にしたいだけなら以下が一番簡単
Promise.resolve(null) .then((value)=> { console.log('いーち'); }) .then((value)=> { console.log('にー'); return 'さーん'; }) .then((value)=> { console.log(value); return 'だぁ!!!' }) .then((value)=> { console.log(value); }) .catch(function (error) { console.log(error); }); console.log('いくぞー'); /* output いくぞー いーち にー さーん だぁ!!! */
三項演算子
ワンライナーのためではなく普通に便利なんです
let location = 'sftp://sasakima-nao@macbookair.local/Users/sasakima-nao'; /* 普通には以下のように書くけど何か無駄な代入が気になる こういう場合に三項演算子を使うとスマートかつ読みやすいコードになる let res = 'Path 名'; if (location.includes('//')) { res = 'URI'; } */ let res = location.includes('//') ? 'URI' : 'Path 名'; console.log(`引数は ${res} です`);
Copyright(C) sasakima-nao All rights reserved 2002 --- 2024.