Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@lv7777
Last active July 22, 2016 17:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lv7777/14175ad2cc0e36a3a30483d2892509d0 to your computer and use it in GitHub Desktop.
Save lv7777/14175ad2cc0e36a3a30483d2892509d0 to your computer and use it in GitHub Desktop.
default引数のテスト
//firefoxスクラッチパッド
var obj;
obj={
a:44,
d:4
};
//成功する
(function defaulttest({a,b}=obj){
console.log(a)
})()
//この場合bはobjの中にないからundefinedになる。
//また、重要事項としてこのa,bはオブジェクトではなく単体の変数となる。
//というかそもそもこいつ`{a,b}=obj)`は分割代入とのコンボ。これ自体はdefault引数ではない。
//バグ発見
//undifになる例
function def(){
console.log(`a is !!!!`);
return "yyyyyyyyyyy";
}
function defaulttest(a=def()){
console.log(a)
}
defaulttest()
//成功例
function def(){
//console.log(`a is !!!!`);
return "yyyyyyyyyyy";
}
function defaulttest(a=def()){
return a
}
defaulttest()
//仮説としてはdefを非同期実行してしまっているからちゃんと入ってない。と思ったけど違った.普通にできた。
function gaibu(a = 114514,b=a+114514){
// var a=10;
// return b;
console.log(`a is ${a}, b is ${b}`)
}
gaibu()
//これは普通にできる。
//default引数は前の引数の値を使用できる。
//bug this example was not running.
//undefind was showed, and
function go(ing){
return function(ing){
console.log(`goisgod ${ing}`);
}
}
function gaibu(a = 114514,b=go(a)){
// var a=10;
return b;
}
var a=gaibu();a();
/////////////////////////////////////////////////////////
var kansutekiyou=(c="c",cpp=c+"++",cs=cpp+"++")=>{
return [c,cpp,cs];
};
var kae=kansutekiyou("d","d--").map(function(i){
console.log(i);
return `${i}にはラムダ式がない。`
})
/////////////////////////分配配列の場合default引数側も実際に存在する引数側も渡す引数側もobjectにする必要がある。
//var kansutekiyou=({c}={c:"c98"}でもできるんだけどこれはes6のなんだっけ?エンハンスobjectだっけ?の機能
var kansutekiyou=({c:c}={c:"c98"})=>{
return [c];
};
// var kae=kansutekiyou("d言語").map(function(i){
// console.log(i);
// return `${i}にはラムダ式がない。`
// })
console.log(kansutekiyou({c:"d"}));
var kansutekiyou=({c:c,d:c,e:c}={c:"c98"})=>{
//とすると
/*
Exception: SyntaxError: duplicate argument names not allowed in this context
@Scratchpad/4:20
*/
//となった
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment