Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
function isInteger(x) { return Math.round(x) === x; } > isInteger(1) true > isInteger(0) true > isInteger(1.111) false > isInteger("1") false > isInteger("") false > isInteger(null) false > isInteger(NaN) false > isInteger(undefined) false Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark th
こんにちは、エンジニアの小林です。 先日、スペースを貸し出すオーナー様向けのダッシュボード(管理画面)をリニューアルしました。 スペースマーケットはwebサーバもAPIサーバもRailsで構築しているのですが、JQueryをベースに構築していたリニューアル前の実装からReactをベースにした実装へ移行した際に得た知見を書きたいと思います。 サーバ構成 既存のサーバ構成では、webサイトはwebサーバから、アプリはAPIサーバからそれぞれデータベースを参照していました。 リニューアルに伴いwebサーバからもAPIサーバを参照する構成となります。 webサーバから別ドメインのAPIサーバにアクセスするためには CORSの設定 webサーバとAPIサーバはドメインが違うため、ReactのコードからAPIサーバにajaxリクエストが送れません。これを回避するためにCORS(Cross-Origin
デブサミ2012で @yo_waka (ブログ)と一緒に kintone の紹介してきました。 来て頂いたみなさんありがとうございました。 他にもセッションがある中、多くの方に来て頂いて大変うれしかったです。 デブサミ2012 kintoneの表と裏 - 表編 View more presentations from yo_waka 少しでもお役に立てれば幸いです。と言いたいところですが、 裏側のスライドがばっさりなくなってしまいました(><) ごめんなさい、代わりに一般論を少しだけ。 今の時代なら、スキーマレスなデータを扱うにはMongoDBのようなNoSQLも選択肢として結構ありなんですが、2、3年前だと、NoSQLが認知され始めたところで、利用するにはリスクを負う覚悟が必要だったかと思います。 そんな中で、RDBMSでスキーマレスなデータを扱う手法は様々なところでチャレンジされていま
「Developers Summit 2012 - 10年後も世界で通じるエンジニアであるために」で発表してきました。 デブサミ2012 kintoneの表と裏 - 表編 View more presentations from yo_waka イマドキのJSの話とかではなくて、UIをJSで作る際の設計ノウハウみたいな話にしたので、つまらなかったら申し訳ないなと思ってたのだけど、終わったあとも何人か質問しにきてくれた方がいたのでホッとしました。 10年後も・・というテーマとして、激しく進化するJSの最新動向に左右されず使えるネタを選んだつもりではあります。 普段からJSでもパフォーマンス意識して設計してる方には当たり前のことばかりだったかも。 jQueryは甘えってのは書いてみたかっただけですすいません。。 けど、適材適所というかSinatraで100画面近くあるようなWebアプリは作らな
大規模UIをJavaScriptで実現するためのテクニック、サイボウズkintone開発の現場から。デブサミ2012 7万行規模のJavaScriptプログラムで構築されたユーザーインターフェイス。そのプログラミングで使われたテクニックとはどういうものか。 2月16日、17日の2日間、都内で開催されたイベント「デベロッパーズサミット2012」(デブサミ2012)で、サイボウズ株式会社 開発部 若原祥正氏、生駒浩隆氏が講演「kintoneの表と裏~大規模JavaScript開発と非構造データベース」を行いました。 講演では前半に大規模JavaScriptのテクニック、後半でスキーマレスデータベース構築の仕組みが解説されましたが、この記事では資料が公開された前半のJavaScriptのテクニックについて、ダイジェストで紹介します。 7万行のコード、フレームワークはClosure Library
はまったのでメモっておく。 普通に以下のようにやるとエラーになってしまう。 %script{:type => 'text/javascript'} $(function(){ $('#new_link').click(function(){ alert('clicked'); return false; }); }); で、仕方なく以下のようにしたんだけど、微妙すぐる…と思ったんだが、 %script{:type => 'text/javascript'} $(function(){ $('#new_link').click(function(){ alert('clicked'); return false; }); }); HamlのAPI DocumentによるとFilterという機能があって以下のようにするとうまくいく。 :javascript $(function(){ $('#
screen.width 画面幅 : screen.height 画面高 : screen.availWidth 有効画面幅 : screen.availHeight 有効画面高 : window.innerWidth 表示領域幅 : (IE非対応) window.innerHeight 表示領域高 : (IE非対応) window.outerWidth ウィンドウ幅 : (IE非対応) window.outerHeight ウィンドウ高 : (IE非対応) $(window).width() 表示領域幅 : $(window).height() 表示領域高 : document.documentElement.clientWidth 表示領域幅 : document.documentElement.clientHeight
限定したブラウザでのみサイトを表示したい事が多々あると思うので、ブラウザ判別を楽にするコード。 個人的にmsie 6とかmsie 7とか書くのが面倒なので、勝手にie6とかie7という風に省略。 現状、IE系とChrome、Safari、Opera、FireFoxに対応。 それ以外は"unknown"。 ※IE11はPreview版での検証(IE11からuserAgentにMSIEが含まれなくなったので、Tridentのバージョンで判別してます) /** * ブラウザ名を取得 * * @return ブラウザ名(ie6、ie7、ie8、ie9、ie10、ie11、chrome、safari、opera、firefox、unknown) * */ var getBrowser = function(){ var ua = window.navigator.userAgent.toLowerC
「Yahoo!画像検索」や「Lightbox」のように、画面全体にレイヤーを重ねてダイアログを表示する JavaScript のライブラリです。 他のライブラリと比較して、任意の色を背景色に選ぶことができ、CSS ファイルや透過画像が不要だという長所があります。 別途、「prototype.js」と「scriptaculous.js(effects.js)」のライブラリが必要です。 サンプル デフォルトの動作(ホワイトアウト) グレーアウト・待ち時間なし・閉じるボタンなし・枠線なし・200px × 50px 縦長・待ち時間なし・緑二重枠線 薄いピンク(不透明度 0.5)・待ち時間 3 秒・ダイアログなし ブルースクリーン・待ち時間なし・同色ダイアログ・背景クリック無効・ボタンのラベル変更 画像を表示・枠線 1px・500px × 400px ダウンロード smartdialog.js v1
Skills Web Ruby on Rails / PHP MySQL / PostgreSQL MongoDB / CouchDB jQuery / Prototype.js CoffeeScript / Sass Amazon EC2 / S3 Heroku / MonogHQ Git / Github / SVN / Trac Smartphone Objective-C Cocoa Xcode Microsoft C# / SQL Server / ISS いい方法が書いていたので、リンクのメモ Customizing Confirmation Dialogs in Rails - Blog Articles - LessEverything ソースは coffeescirpt です。 まずは jquery_ujs の確認ダイアログ部分の関数を置き換える customizing
ひさびさに「プログラマのためのJavaScript」。あいだは空きましたが、予定どおりスコーピングを話題にします。JavaScriptには“変なところ”がいくつもありますが、そのなかでも、スコーピングはもっとも混乱と弊害をまねくところではないでしょうか。これを読めば、間違うことも悩むこともなくなりますよ。 [追記]僕の誤認と勘違いをコメントでご指摘いただきました。いつも、ありがとうございます。ご指摘を本文に反映しました。変更部分は取消線を使って修正、または「追記」と明示してあります。ただし、ついでに表現を直した部分までは明示してません。[/追記] 今回の内容: JavaScriptにおける宣言文 undefined値 var文はこのように働く 驚くべき現象 疑似ブロックと将来の仕様変更 今回のまとめ ハブエントリー(全体目次) 前回 - 継承についてもう少し ●JavaScriptにおける
Objectの要素を列挙するときfor(i in Object);ループをつかったりするのですが、prototype.js*1などによるObject汚染(いい言葉ではないな)がありその回避手段としてObject#hasOwnPropertyを使ったりしますが今回は、そのループ内でhasOwnPropertyをつかったとき break と continueどちらを利用したらいいのかという実験。 breakをするとそれ以降のループが中断されるのでbreakした以降に自信のオブジェクトが出てきたら困る。安全策としてはcontinueで毎回チェックするというもの。ただprotoptypeチェーンに繋がっているメソッドやプロパティの分だけループするからお世辞にもいいとはいえない。 具体的には ●break for(i in obj) { if(!obj.hasOwnProperty(i)) brea
zindexの最大値を取ってくる関数を作ってみた。 とりあえずモダンブラウザは全て動いてました。(IE7/Safari2-3/Firefox2/Opera9/NN7) コード var getLargestZIndex = function(){ var largestZIndex = 0; var defaultView = document.defaultView; var func = function(tagname){ var elems = document.getElementsByTagName(tagname), len=elems.length; for(var i=0; i<len; i++){ var elem = elems[i]; var zIndex = elem.style.zIndex; if (!zIndex) { var css = elem.curre
2007年08月17日01:15 カテゴリ翻訳/紹介Lightweight Languages 怠翻 - JavaScriptでありがちな9つのシマッタ 私自身結構シマッタしちゃうので。 Nine Javascript Gotchas 尻カンマ注意 以下のコードはFireFoxでは動きますが、Internet Explorer (以下IE)では問題になります。 var theObj = { city : "Boston", state : "MA", } 最後にカンマが入らないよう注意しましょう。 浮気なthisは何を見てるやら 以下のコードで、thisは何を指しているでしょうか。 <input type="button" value="Gotcha!" id="MyButton" > <script> var MyObject = function () { this.alertMess
2007-12-22 カテゴリ: Client Side タグ: JavaScript Tips Unicode JSON さっきはPerlにはまるとか言っておきながら結局JavaScript… JavaScriptの文字列を、\uXXXXの形式のUnicodeEscapeSequenceにエスケープする関数を書きました。 JavaScriptの文字列をJSONとかでよく見かける、 \u672c\u65e5\u306f\u6674\u5929\u306a\u308a の形式の文字列に変換する関数です。ソースやサンプルは続きで。 ソース var unicodeEscape = function(str) { var code, pref = {1: '\\u000', 2: '\\u00', 3: '\\u0', 4: '\\u'}; return str.replace(/\W/g, fu
大抵の、特に変数の型宣言を行わないタイプの言語では、型の異なる値の条件式は悩みの種です。 Javascriptもご他聞に洩れずというか、undefinedとnullが異なる分だけ更にややこしくなっているようです。 暗黙の型変換で痛い目にあわないよう、ちょっと実験してまとめてみます。 実験にはとりあえず、手っ取り早いので Jash を使用。 一緒に試してみるならば、こちらのBookmarkletをクリックしてコンソールに入力しながら読むとわかりやすいかもしれません。 nullとundefined。たまに「同じもの?」と聞かれることもあるので、とりあえず確かめて見ます。 >> null==undefined true あれ、同じでしょうか? >> null===undefined false もちろん違います。 しかし、== 演算子で比較する限りは「同じ」と言ってもよいようです。 では、実際は
30 best practices to boost your web application performance - Web User Interface Architect JavaScriptコーディング等を書く上でのパフォーマンス確認事項30。 自分へのインプット&メモがてらにちょっとまとめてみます。 JavaScript DOMの操作は可能な限りやめる eval, new Function() は遅いので可能な限り使わない withステートメントを使わない(使った事ないですが) for-in 文ではなく for 文を使う。 ループの中で try-catch ではなく、try-catchの中にループを置く グローバル変数をなるべく使わない aaa+='AAA';aaa+='BBB'; の方が aaa+='AAA'+'BBB';より速い 複数の文字列連結には、Array で文字列
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く