感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

JavaScriptの関数の使い方の基礎 復習。

<スポンサーリンク>

関数について

  • すべての関数は常に値を返す。

return文を記述子ない場合やreturn文で戻り値を明示的に指定していない場合に返される値はundefinedになる

var sayHello = function() {
	return "Hello";
}
// > undefined

console.log(sayHello());
// > Hello
// > undefined

var sayOk = function() {
	//何もしない
}
// > undefined

console.log(sayOk());
// > undefined
// > undefined
  • 関数に引数を渡す
var sumFunc = function(num1, num2) {
	var sum = num1 + num2;
	return sum;
}
// > undefined

console.log(sumFunc(1,2));
// > 3
// > undefined
  • 関数を再帰的に実行する

関数を再帰的に実行するには
artuments.callee();
というプロパティを使う。
このcalleeは関数のスコープ内でその関数自身を参照する場合に利用できる。

var foo = function(num1, num2) {
	console.log(arguments.callee);
	var sum = num1 + num2;
	console.log(sum);
	arguments.callee(2,3);
}();
// > [Function]
// > NaN
// > [Function]
// > 5
// > [Function]
// > 5
// > [Function]
// > 5
// > [Function]
// > 5
  • 関数の引数の数を数える

JavaScriptの関数の引数の数を数えるには、
関数名.length
を使う。

var argLengthTest = function(q,e,r,t,y,u,i,o,p,s,d,f,g,h,j) {
	return argLengthTest.length;
};
// > undefined

console.log(argLengthTest());
// > 15
// > undefined
  • JavaScriptで文字列を連結したり、型を調べたりする

引数の渡すのがstringではない場合は、「pass in strings」というメッセージを返す。
引数に渡された文字列を連結するサンプル。

var addString = function(x,y) {
	if (typeof x !== 'string' || typeof y !== 'string') {
		return 'pass in strings';
	}
	var strConcat = new String();
	strConcat += x;
	strConcat += y;
	return strConcat;
}
// > undefined

console.log(addString(3,3));
// > pass in strings
// > undefined
console.log(addString('hello', ' world'));
// > hello world
// > undefined

オブジェクトを作ったり、オブジェクトのメソッドを使ってみたり、newしたりするサンプル

var myFunction = function() {
	return 'hoge';
}
// > undefined

console.log(myFunction());
// > hoge
// > undefined

var myObject = {
	myFunction: function() {
		return 'foo';
	}
}
// > undefined
console.log(myObject.myFunction());
// > foo
// > undefined

var Person = function() {
	this.name = 'sho322';
	this.age = 28;
	this.gender = 'male';
	this.sayHello = function() {
		return 'hello! My name is ' + this.name;
	}
}
// > undefined

var sho322 = new Person();
// > undefined
console.log(sho322);
// > { name: 'sho322', age: 28, gender: 'male', sayHello: [Function] }
// > undefined
console.log(sho322.sayHello());
// > hello! My name is sho322
// > undefined

console.log(sho322.age);
// > 28
// > undefined

勉強した本

開眼!  JavaScript ―言語仕様から学ぶJavaScriptの本質

開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質


名著パーフェクトJavaScriptをシンプルにしたような本。
薄いけれど、どの解説にも「動くサンプル」がついていて、自分なりに直して動かしてみる事で、理解が進んだ。

感謝のプログラミング

今回で感謝のプログラミングは【524時間目】
10000時間まで、あと【9476時間】

gitをいじって遊んだ分の1時間を追加している。