IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
JavaScriptチュートリアルBeginner's tutorialsYour first website: Adding interactivityDynamic scripting with JavaScriptJavaScript frameworks and librariesJavaScript ガイド入門編文法とデータ型制御フローとエラー処理ループとイテレーター関数式と演算子数値と文字列日付と時刻の表現正規表現インデックス付きコレクションキー付きコレクションオブジェクトの利用クラスの使用プロミスの使用JavaScript 型付き配列イテレーターとジェネレーターリソース管理国際化JavaScript モジュール中級編Advanced JavaScript objectsAsynchronous JavaScriptClient-side web APIs言語概要JavaScr
IE 8 で文字列から動的に script 要素を生成したい時もあると思います。 オフラインにキャッシュしておいた文字列を JavaScript として評価したい場合などです。 こうすると動作します IE6 ~ IE8 専用です。 var script = document.createElement("script"); document.getElementsByTagName("head")[0]).appendChild(script); script.outerHTML = ' <script defer="defer">' + jsExpression + '</script>'; document.createElement("script") でダミーの(プレースホルダの) script 要素を作り、そのあとで outerHTML で上書きしています。 これでも良
a = ["1", "2"] a.push("3") a.map!(&:to_i) # [1, 2, 3] a.delete_at(1) a # [1, 3] a.reverse! # [3, 1] a.unshift(777) # [777, 3, 1] a.last # [1] var a = ["1", "2"]; a.push("3"); a = a.map(function(n) { return parseInt(n, 10); }); a.splice(1, 1 /* how much */); a; // [1, 3] a.reverse() // [3, 1] a.unshift(777); // 3 a; // [777, 3, 1] /* or in place: */ var b = [3, 1]; [777].concat(b); // [777, 3, 1] a
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. * Some parts of this feature may have varying levels of support. Learn moreSee full compatibilityReport feedback W3C の XMLHttpRequest 仕様書では、もともと XML の解釈しか対応していなかった XMLHttpRequest に HTML の解釈を追加しています。この機能によって、ウェブアプリは XMLHttpRequest を使って HTML を解釈済の DOM として取得することができ
Dartのインストールが簡単になっていたので試してみたところ、Perlよりも高速だった。 なにこれ悔しい。 Dart: void main() { final t = new Stopwatch(); t.start(); final a = new List<int>(); for(var i = 0; i < 1000000; ++i) { a.add(i); } for(var i = 0; i < a.length; ++i) { ++a[i]; } var sum = 0; for(var i = 0; i < a.length; ++i) { sum += a[i]; } print(sum); print(t.elapsedMilliseconds / 1000); } Perl: use 5.12.0; use Time::HiRes qw(gettimeofday tv_
結論から言うと、現在のChromeのみをターゲットにして最適化するという特殊なケースを除き*1、どちらでも変わらないといえます。 [追記] 指摘を受けて再考してみました。そもそもjsperfでは初期化コード(今回はdataなどの初期化に使用)は一度しか走らないにもかかわらず、このベンチマークコードではdataの中身を書き換えています。これがスコアに影響を与えていたようです。 data[index] = data[index] * 2をdata[index] = index * c にした結果はChromeでも安定して双方有意差なしという結果になりました。 http://jsperf.com/postfix-or-pretfix-increment/4 JSのベンチマークの難しさを思い知りました。 [/追記] http://jsperf.com/prefix-or-postfix-incre
「var π = Math.PI; が文法的に正しいJavaScriptだと知っていますか?」という書き出しで始まるJavaScriptの変数名についてのエントリが話題になっていました。エントリーを書いたのはベルギーのフリーランスWEB開発者のMathias Bynensさんです。彼はUnicodeのどんなグリフが識別子として利用できるのかECMAScriptの仕様を見てみることにしたそうです。 ECMAScript 5.1によれば: 識別子は予約語ではない識別できる名前 となっており、直接記号やグリフについての制約には言及していません。元記事ではさらに予約語や識別子に使用できる文字の例外などについて解説した後に、下記のようなコードが有効なJavaScriptの変数名であるとして紹介しています。 // How convenient! var π = Math.PI; // Sometime
先日、クロネコヤマトの伝票番号から配送状況を取得するAPIを作りました。 このAPIですが、負荷軽減のため、呼び出し頻度が毎秒1回という制限を設けています。 制限があるのは良いとして、このAPIを使って複数(大量)のデータをJavaScriptで処理したい場合どうやって作ったらよいのだろうか? と思い、色々試行錯誤した事の過程と結果です。 長文になってしまったので、最初に目次を書いておきます。 その1:ループで処理する その2:ループ内でスリープさせる その3:setTimeout()で非同期処理させる その4:非同期処理の関数に汎用性を持たせる ところで、「毎秒1回」という呼び出し制限がない場合は? その5:画面が固まることなく,大量データを素早く処理する まとめ 結論だけ欲しい人は、最後の”まとめ”にある関数だけコピーすればOKです。 その1:ループで処理する 普通に考えると、当然fo
フリーソフトウェア財団から、JavaScript License Web Labelsという取り組みについての発表があった。これはひと言でいうと、ウェブページ上で使われているプログラミング言語であるJavascriptのライセンスをきちんと表示しようという取り組みだ。なぜそのような仕組みが必要なのか?どうやって使うのか?ということについて今日は説明しようと思う。 ユーザーの了承なしに実行される無数のJavascriptコードたち Javascriptはかつて、ウェブページのちょっとした装飾というような目的で主に利用されていた。それはページの内容に大きな影響を及ぼすものではなく、とてもささやかなものであった。しかし、今は事情がまったく違う。ウェブページに付随するJavascriptは年々大きくなり、Google Docsのようにワープロや表計算までをも実行されるようになった。それはもはやささ
Web において使われる URI(URL)には様々な情報が埋め込まれるが、その埋め込みの際にはエスケープ(パーセントエンコード)が行われる。埋め込まれた情報は取り出されるときにアンエスケープ(パーセントデコード)される。 たとえば、四則演算を行う電卓の Web アプリケーションを考える。この電卓は HTML の form でユーザに式の入力を求め、式が入力されてサーバに送られたらその結果を表示する。ここで、式は "http://calc.example.org?q=式" というような URI にブラウザがアクセスすることによって、サーバに送られるものとする。この形式は HTML の form で用いられる application/x-www-form-urlencoded という形式であり、HTML の規格で定義される。この場合、"1+1" という式を URI に埋め込むには "+" とい
もずはっく日記(2012年2月) 2012年2月11日 イベントリスナの優先順位 初回投稿日時: 2012年02月11日10時44分01秒 最終更新日時: 2012年02月11日10時44分35秒 カテゴリ: Firefox Google Chrome IE Javascript Mozilla Core Opera SNS: Tweet (list) ふと、イベントリスナを同じ要素に同じ条件で追加するとどういった優先順位になるのか気になったのでテストしてみました。 このテストケースでは、エディタ上でのkeydownイベントを各ハンドラが呼び出された順序でリストに追記していきます。その結果はFirefox、IE、Chrome、Operaで以下のようになりました。 親要素のcaptureフェイズに最初に登録されたハンドラ 親要素のcaptureフェイズに二番目に登録されたハンドラ イベン
JavaScriptと私JavaScriptハカーというよりも…どちらかというとRubyistqwikWebというWikiエンジンを作ってますJavaScript使ってるけど実践的な話じゃないどちらかというと概念的な話どちらかというと昔話JavaScriptとのつきあいは(すげー)長い 10年前のJavaScriptJavaScriptとのつきあいは10年前に遡る「ネット・トラヴェラーズ'96」「ネット・トラヴェラーズ'95」の続編です始めてのネット・サブカル本JavaScriptの記事を書いた日本最初の「JavaScript入門」 (たぶん)
既に多くの方が JavaScript のオブジェクト指向的側面についての解説を記事にされていますが、読み手側から見ると、例えばプログラミング言語への習熟度やオブジェクト指向自体に対する理解度がマチマチなわけで、私自身、「おお、なるほど!」 っていう、頭の中のスイッチがパチンッ!と入るような境地には達していませんでした。 かつて私も オブジェクト指向なJavaScriptプログラミングのススメ なんていう翻訳記事を書いてはいるのですが、正直なところ prototype.constructor の存在は知りませんでしたし、Function.call や Function.apply をどう使えばよいのかなどをちゃんと理解できてはいませんでした。 そんな中、2011年12月に書かれた Doc Center | Mozilla Developer Network の記事 オブジェクト指向 Java
JavaScriptはPHPとよく似たシンタクスを持っています。PHPerにとっては親近感を感じる言語かもしれません。しかし、両者の言語仕様の違いはおそらくPHPerの想像以上です。『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』の著者、Douglas Crockford 氏が「JavaScriptはCの皮をかぶったLISP」と表現するくらいです。 PHPとJavaScriptが似ている(ように見える)が故に、はまりそうなポイントとその対策について簡単にまとめてみました。より詳しく知りたい方は『JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス』や『JavaScriptパターン ―優れたアプリケーションのための作法』を読んでみることをオススメします。 あと、自分も経験が浅いところがありますので間違
This is yet another JavaScript reference manual viewer. The source document was taken from MDN wiki. The keys are working if the search field has focus or your mouse cursor is in the navigation area. ESC key is global. UP - Previous category / Previous item DOWN - Next category / Next item ENTER - Open category / Load selected item ESC - Clear search field and set focus
ある値を非同期で取ってくる→その値を使ってさらに非同期処理というのをJSDeferredでする - Islands in the byte stream 何気なく書かれているけど、console.log('got %s', foo);という部分があり、おや?と思った。 もしかして、Node.js 以外でも使えたりする? と調査。 まず、Operaは使えなかったので除外。 CodeGoogleChormeFirefox console.log("%s", "hoge")hogehoge console.log("%s", "hoge", "foo")hoge foohoge foo console.log("%s", "hoge", {foo:"FOO"})hoge ▸Objecthoge ({foo:"FOO"}) console.log("%d", 10)1010 console.log
2012年01月06日23:15 カテゴリLightweight Languages javascript - 比較(comparison)と変換(coercion) JavaScript: The Good Parts Douglas Crockford / 水野貴明訳 [原著:JavaScript: The Good Parts] 大事なことなので何度でも言うべきでしょうか。 [javascript]true or false 論理値の挙動については、いまいち感覚的に理解しにくい印象です Crockfordの言う通り、===と!==を使いましょう。 Demo ==と!=がいかに挙動不審かを、実際に表にします。textareaには表に入れたい値を入力してみてください。void(0)と1/0とparseInt('nan')は、確実にundefinedとInfinityとNaNを得るための方
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く