Skip to content

Instantly share code, notes, and snippets.

@mitsuru793
mitsuru793 / this_of_function.js
Last active December 2, 2015 06:04
JavaScriptでnewを付けない関数だと、thisはグローバルオブジェクトになる。
// console.logのエイリアス
var l = function(x) { console.log(x) };
function Person(name) {
l(this);
this.name = name
}
Person("田中"); // Window
l(name); // 田中
@mitsuru793
mitsuru793 / cache_method.js
Last active December 2, 2015 06:05
JavaScriptで、メソッドへの参照を変数にキャッシュしてみる
function Person(name) {
this.name = name;
}
Person.prototype.getHelloString = function(toName, greet) {
this.name + ":" + toName + "さん!" + greet;
}
tanaka = new Person("田中");
@mitsuru793
mitsuru793 / call_and_apply.js
Created December 2, 2015 00:28
callとapplyの違いを確かめてみる
function Person(name) {
this.name = name;
}
Person.prototype.hello = function(toName, greet) {
console.log(this.name + ":" + toName + "さん!" + greet);
}
Person.prototype.helloTest = function(toName, greet) {
this.name + ":" + toName + "さん!" + greet;
@mitsuru793
mitsuru793 / question.sh
Last active December 1, 2015 15:09
質問形式を整形。空行も自動で挟んでくれます。
#!/bin/bash
# 【置換前】
# 〜ですか?
# はいそうです。
# これは違うのでは?
# いいえ、〜だからです。
# 【置換後】
# Q: 〜ですか?
# はいそうです。
@mitsuru793
mitsuru793 / private_field
Created November 30, 2015 10:25
coffeeScriptでプライベート変数を使ってみる
class Car
_gasoline = 100
constructor: (@name) ->
run: ->
_gasoline -= 1
console.log "#{@name}のガソリン:#{_gasoline}"
track = new Car("トラック")
f1 = new Car("F1")
@mitsuru793
mitsuru793 / loop_retry_open_url.rb
Created October 12, 2015 07:53
ループ内でopen(url)を使用した関数の例外を補足する
require 'open-uri'
# 末尾に記述した数値のステータスコードを返してくれるwebサービス
url_root = 'http://ozuma.sakura.ne.jp/httpstatus/'
def open_url(url)
open(url)
end
status_codes = [503, 202, 504]
@mitsuru793
mitsuru793 / retry_when_503_status_code.rb
Created October 12, 2015 06:57
503エラーの時に再接続する
require 'open-uri'
# 末尾に記述した数値のステータスコードを返してくれるwebサービス
url = 'http://ozuma.sakura.ne.jp/httpstatus/503'
def open_url(url)
begin
open(url)
rescue OpenURI::HTTPError => e
response = e.io
@mitsuru793
mitsuru793 / error_rescue.rb
Created October 12, 2015 06:17
rubyの例外処理を試してみる
begin
raise 'エラーが発生しました'
rescue => e
puts e.message
end
# => エラーが発生しました
# Exceptionだとrescueで型指定しないとcatchできない
begin
raise Exception.new('エラーが発生しちゃった')
@mitsuru793
mitsuru793 / timeout.rb
Created October 12, 2015 06:15
rubyのtimeout関数を試してみる
require 'timeout'
require 'open-uri'
TIMEOUT_SECOND = 3
# 3秒以内にdo~endの処理が完了しないとエラーになる
timeout(TIMEOUT_SECOND) do
puts "task1 done"
end
# => task1 done
@mitsuru793
mitsuru793 / interrupt_catch.rb
Created October 12, 2015 06:14
ctrl-cを例外として補足する
# 参考:http://qiita.com/kasei-san/items/75ad2bb384fdb7e05941
1.upto(10) do |i|
begin
p i
sleep(1)
# ctrl-cをInterruptとして補足してしまう。プログラムが停止しない。
rescue Exception => e
# StandardErrorならシステム例外は細くできない
# rescue StandardError => e
p e.class