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 --- 2025.