タグ

javascriptに関するsqrtのブックマーク (28)

  • ‘-‘ という名前の、中身が無いのに70万回ダウンロードされてる謎のnpmパッケージ

    – という名前の JavaScript/TypeScript パッケージについて警告を発している記事が話題となっています。 このパッケージ、中身はほとんど空で、Readme と、dev で TypeScript を動かせるようにするライブラリ群を呼ぶ箇所だけのもの。 しかし、この “-” を使っている他の npm パッケージが 50個以上あり、約一年前の公開時からのトータルのダウンロード数は72万回にもなります。 しかし、”-” を読み込んでいるパッケージを見てみても、”-” が必要そうには見えません。 警告記事では、この無名のパッケージが密かに使われるようになった原因が、npm コマンドのコマンドラインを打つときのミスタイプにあるのではないかとの仮説を立てています。 つまり、someFlag というオプションを使い npm i -someFlag somepackage と打つべきところ

    ‘-‘ という名前の、中身が無いのに70万回ダウンロードされてる謎のnpmパッケージ
    sqrt
    sqrt 2021/08/04
    この名前で悪意あるパッケージを公開できないように、防御的に空のパッケージを置いてるって線もあるかな…
  • 2020年でJavaScript学ぶならきっとブラウザ向けJSガン無視していきなり初手node.js(ただし暫く何も足さない)がいいんじゃないかというメモ

    ※ @mizchi さんのアンサー記事「プログラミング初心者のための JavaScript と Node.js の歴史、それを踏まえた勉強方法」 もこの後にあわせてどうぞ。 https://zenn.dev/mizchi/articles/3789a101dae388d98159 Python3とPHP7をちょぼちょぼとやっている個人がJavaScript(2016年以降)/node.js/JS系ライブラリ/JS系Webフレームワーク/TypeScript等を攫っている中で一つ思ったことをメモった。JavaScriptやるなら絶対node.jsの実行環境揃えてからがいい、そうしないでJSやるくらいなら汎用性信じてPython3一択に絞った方がいい、と思ったという件です。 具体的には、以下の構成のみでJavaScriptの開発演習をすればいいんじゃないか、という話です。 続きを読む

    2020年でJavaScript学ぶならきっとブラウザ向けJSガン無視していきなり初手node.js(ただし暫く何も足さない)がいいんじゃないかというメモ
    sqrt
    sqrt 2020/11/13
    個人的にはブラウザのユーザスクリプトから入れば良いと思ってる。目的があると面白いし、みんなWebサイトハックしたいだろ。
  • スナック「jQuery」 - Qiita

    ……あら、いらっしゃい。 若いお客さんなんて珍しいわねえ。昔は、この街一番の人気店でね、若いお客さんもたくさんいたんだけどさ。最近はめっきり減っちゃってね。 何飲む? ……水割り? わかったわ。 じゃあさ、ちょっとだけ、あたしの昔話に付き合ってもらってもいいかしら。 What is jQuery? この店――『jQuery』がオープンしたのって、2006年なんだけどさ。その頃の、この街の様子って覚えてる? ……知らないか。あなた、まだ若いもんね。その頃って、そりゃあヒドイもんだったのよ。 その頃、シェア率トップだったブラウザって、もちろんInternet Explorerだったんだけど。当時はバージョン7が登場したばかりで、あの悪名高きIE6もまだまだ主流だったの。 他のブラウザは、Safariがバージョン3がMacWindowsに公開されていた頃で、Firefoxはまだバージョン2.0

    スナック「jQuery」 - Qiita
    sqrt
    sqrt 2020/05/07
    ↓ここまでDojoなし
  • こんなにあった!シニア対応を本気で進める『皇潤』の入力フォームが使いやすい理由 | マミオン有限会社-パソコン・数学研修、法人研修

    シニアがウェブサイトを利用する際の大きなハードルの一つが、各種「入力フォーム」です。 一般的にシニアの方ほど入力に時間がかかり、また不適切な入力によるエラー発生頻度も高くなることは、ユーザビリティ業界の権威であるニールセンノーマングループのレポートも統計データを用いて指摘しています。 シニアをターゲットとしたウェブサイトの多くはこうした状況を考慮して、入力フォームのシニア対応に力を入れているところが多いのですが、その中でも私個人から見て特に完成度が高いと感じているのが、健康品の『皇潤』で有名なエバーライフです。 今回、そのエバーライフの入力フォームで実装されている様々なシニア対応施策について、実装方法まで含めて詳しくご紹介していこうと思います。 1. 各フォームがそこそこ大きく見やすい 2. 必須項目表示がわかりやすい 3. ふりがなが自動的に入力される 4. 住所が自動的に入力される

  • ユーザーの体感速度を高めるためのJavaScriptチューニング(前編)

    連載「Webサイト・アプリ高速化テクニック徹底解説」第2回は、JavaScriptの高速化について、まずは前編、後編に渡ってユーザーの体感速度を向上させるための方法を紹介します。JavaScriptの同期・非同期の仕組みやscript要素のasync属性、defer属性について詳しく解説します。 今回から複数回に分けて、JavaScriptの高速化をテーマに解説していきます。まずは、ユーザーの体感速度を高めるためのJavaScriptチューニングということで、単純なJavaScriptの構文によるスピードを比較するようなものではなく、主にユーザー視点からの高速化を主眼に解説します。その中で、同期・非同期といったJavaScriptの仕組みやscript要素のasync属性、defer属性などについても触れていきます。 ユーザーの体感速度を向上させる 一概にJavaScriptの高速化といっ

    ユーザーの体感速度を高めるためのJavaScriptチューニング(前編)
    sqrt
    sqrt 2013/07/19
    defer属性は10年以上前のHTML4時代からあるのに、HTML5で追加とかIE7以降(実際はIE4以降)みたいなデマはどこから出てくるの/本文編集されたけどまだ間違ってる(defer属性はHTML4で標準化済)
  • JavaScript:undefined値の判定

    JavaScriptでは初期化されていない変数には全て「undefined」という値が入っています。 var a; alert(a); //undefinedが入っている これを利用して、変数が定義済みかどうかを判別することが可能です。…が、やり方がいろいろあるみたいなので、まとめてみることにします。 undefinedと比較する if (a === undefined) { alert("aは未定義"); } グローバル変数として、そのまんまundefinedという名前の変数が用意されているので、それと比較するやり方。一番素直な方法ですが、JavaScriptにおいては良くない書き方とされています。 undefinedは予約語ではなく、単なる変数です。だから上書きすることができるし、関数スコープ内で同名のローカル変数を作ることもできます。(ただし最近の処理系ではconst扱いになって上書

    JavaScript:undefined値の判定
    sqrt
    sqrt 2011/06/06
    aが宣言されていないコンテキストでaを参照したらきっちりエラーになるコードの方が安全なんじゃないでしょうか……>追記
  • DOM APIとinnerHTMLは等価ではない

    最近、徳丸をじわじわ読んでいるのですが、DOM based XSSの話が書いてあったので、少し言及しておこうと思います。 徳丸から引用 DOM based XSSと呼ばれるXSSがあります。これは、JavaScriptによりクライアント側で表示処理する箇所があり、そこに脆弱性がある場合のXSSです。 サンプル書いてみました。 <script> document.write(unescape(location.href)); </script> こいつを適当なファイル名で保存して、domxss.html#<script>alert("hello")<script>などのURLでアクセスするとalertが表示されるはずです。任意のスクリプトが実行可能な状態ってことですね。任意のスクリプトが実行可能ってことは、セッションクッキー盗み放題で、他人に成り済まして買い物できちゃったりするレベルです

    DOM APIとinnerHTMLは等価ではない
    sqrt
    sqrt 2011/06/06
    id:think49さん<innerHTMLは1ノード挿入するには遅いけど、大量のノードをまとめて挿入する場合はDOM APIより速いんじゃないでしょうか。
  • モバイルゲームの歴史を年代別にご紹介します。モバイルゲームの成長と今後について詳しく解説していきます。

    モバイルゲーム 物凄い勢いで勃興したモバイルゲーム業界は、いろいろな課題や問題に直面しながらも巨大化し、今日の時点でのスマートフォン向けゲームの市場へと継承されていきます。 モバイルゲーム歴史 2001 Javaアプリと3Dゲームの登場 Javaが利用できるようになったことにより、ダウンロード型のゲームが供給できるようになりました。 2002 携帯電話端末の大容量化・3D化競争 Java搭載携帯電話端末が登場してからごく僅か1年の間に、アプリのサイズに関しては10倍に広大化し、表現方法も2Dから3Dにシフトし始めました。J-PHONEは『ゼビウス』や『スペースハリアー』などといった昔のアーケードゲームを、ドコモはSIMCITYなどパソコンで世界的規模のヒットを飛ばしたゲームを主力商品としていました。 2003 モバイルゲームの一般化 メモリの制限が厳しいJava仮想マシン上ではなく、OS

    sqrt
    sqrt 2011/06/01
    本題と関係ないけど、「たとえアルバイトであっても正社員として新卒登用するときには」????
  • Scriptish (Greasemonkey フォーク版) キタ━━━ヽ(゚∀゚)ノ━ - hogehoge @teramako

    Scriptish Beta! A New Greasemonkey - Erik Vold's Blog Scriptish :: Add-ons for Firefox Home - scriptish - GitHub ついにというべきか何というべきか、Greasemonkeyのフォーク版が登場した。 因みに対象は Firefox 4.0beta5 〜 4.0beta7 彼曰く、 Greasemonkeyは大好きだ が、Firefox 1.5 をサポートするために新機能の追加ができなかった JavaScriptコードモジュール(JSM)とかね 複数ウィンドウを立ち上げる時や起動時にメモリを少なくパフォーマンス向上につながる 次のメジャーリリースである Greasemonkey 0.9 でやっとサポート対象の最小バージョンが 3.0 に上がる が、メンテナたちはバグフィックスとか最小限

    sqrt
    sqrt 2010/10/01
    <q>スクリプトをエディタで開くとかinclude,excludeの編集機能がなくなっている</q><ちょ、それ、私が使う機能トップ2……! 今後に期待。
  • 理由がない限り、Array.join("") による文字列連結は使わないほうがいいみたい - latest log

    JavaScript の勉強を開始したときに「文字列の連結には Array.join() を使え」といった記事を見た覚えがあります(ソース失念したけど、 Operaの技術文書だった気がする ⇒ IE の技術文書だったかも)。 一年ほど信じてて、念のためベンチとってみたら「うそやーん」でした。ってお話。 ベンチの条件は、 3種類の文字列連結方法を試す 1. + Operator 2. String.concat() 3. Array.join("") 文字列の要素数を 11個 と 55個で試す <!doctype html><html><head><title></title> </head><body> <script> window.onload = function() { var now = +new Date, lp = 100; while (lp--) { job(); } d

    理由がない限り、Array.join("") による文字列連結は使わないほうがいいみたい - latest log
    sqrt
    sqrt 2009/08/28
    自分の場合、+で改行するとインデントしてくれないダメエディタを使っているので静的な連結でもArray#join()してしまっている。
  • [JavaScript] dataスキームURI生成(画像データのBase64変換)

    Greasemonkey のユーザスクリプトなどの JavaScript ソースコード内に画像データを埋め込める、 『data:image/gif;base64,~~~』形式のデータ(dataスキーム)を生成します。 画像ファイルなどのバイナリデータを Base64 エンコードに変換しています。 data スキーマでは、外部ファイルへのアクセスなしにスクリプト内で完結して画像を表示できるため、 小さなアイコンなどの表示には便利です。data スキームは Firefox・Opera では利用できます。 残念ながら Internet Explorer は data スキームに対応していないので利用できません。 やってみよう 画像URL: ▼ ▼ JavaScript ソースコード生成結果: ここにソースコード結果が表示されます。 ▼ data スキーム経由の画像表示: 生成したコードの使い方

  • for 文 2.0(笑) - IT戦記

    まぁ、かなり知られてる話ですが JavaScript は .(ドット) の計算がかなり遅い。まぁ、簡単なスクリプトなら問題にならないが。web2.0的には大違いなのであります。ちなみに、.(ドット) の計算に比較演算の 3 倍のコストがかかる(IEはとくに)。 ということで、for 文は下のように(比較に .(ドット) を使わない)書くくせをつけましょう。地道な差が大きなパフォーマンスを生みます。 // for 文 2.0 for(var i = 0, len = array.length; i < len; i++) { .... }各種ライブラリの for 文 1.0 を for 文 2.0 化するだけで、CPU 使用率がけっこう下がりました。 予断ですが、間違っても .(ドット) を避けるために with 文を使うようなことはやめてください。 with 文のコストは 比較演算の 8

    for 文 2.0(笑) - IT戦記
    sqrt
    sqrt 2008/12/11
    これがDOMのプロパティだったりすると3倍どころではない重さに……?
  • オレの名は「ジェイ・スクリプト」…… - in between days

    以下、郷田ほづみの声でお読みください。 オレの名は「ジェイ・スクリプト」。20世紀最末期の「第一次ブラウザ戦争」でエース部隊に徴用され、最前線で殺戮を繰り広げた。オレたちに課せられた課題は重大だった。相手方ブラウザの殲滅。オレたちはマイクロソフト帝国の最新鋭上陸艦「IE4」に搭載され、次から次へとコードを実行した。戦いは熾烈を極めた。オレたちはどんな汚いコードでも動いた。カーソルをクマさんに変える。アイコンを点滅させる。今日のお知らせをポップアップさせる。世界時計をスクロール表示させる。それが果たして当にそのウェブページに必要なユーザビリティなのかを問うこともなかった。しかしいつしかオレたちは気づいた。敵艦「NN4」に搭載されているのもオレたちとまったく同じスクリプトなのだと。やがてオレたちが属する帝国が領土のほぼ九割を制圧するに至り、戦争は膠着状態にはいった。敵国は壊滅されたかに見えた

    オレの名は「ジェイ・スクリプト」…… - in between days
    sqrt
    sqrt 2008/09/21
    JScript is not JavaScript.
  • jsmap - JavaScriptによる都道府県入力補助

    Q - なぜ、全国地図にしないのですか? 4つほど理由があります。 ポップアップが場所をとりすぎるから 現在、地図部分は185x120pxにおさめていますが、標準的なモニタ解像度ではこの辺が限界です。 キーボード操作時の押下回数を減らすため jsmapがフォーカスするのはSugarCRMなどのWEBアプリです。使い切りのWEBフォームと違い、慣れによるスピードアップが望めるUIである必要があります。 多言語対応のため 日は47都道府県なので、かろうじて可能だと思う方もいるかもしれませんが、これがイギリス(現在製作中)とかでは100を超えます。 認知的限界のため これも重要。ぱっと見て探せる数というのは、15や20がせいぜいです。 ただ、上記の話とは別に、地方選択用の全国図はあってもいいと考えていますので、それは将来のバージョンで。 Q - 地図はもっと詳細化/単純化しないのですか? 詳細

    sqrt
    sqrt 2008/06/04
    おもしろい!
  • HTMLヘルプ形式のJavaScriptリファレンス「jsref.chm」を公開した。 - こせきの技術日記

    MozillaのJavaScriptドキュメントとECMA Scriptの言語仕様を、まとめてHTMLヘルプ(chm)形式にコンパイルしました。Windows用です。 (2008-05-27 追記) OS XならChemrがいいみたいです。(参考) http://cid-57544de2edadf883.skydrive.live.com/self.aspx/jsref/jsref.chm *1 以下のドキュメントが入っています。 Core JavaScript 1.5 リファレンス http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference Core JavaScript 1.5 ガイド http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide G

    sqrt
    sqrt 2008/03/14
    せっかくだからJScriptのリファレンスも入れてほしいなぁ……
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

    以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみます。 // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -

    IT戦記 - 一行で IE の JavaScript を高速化する方法
    sqrt
    sqrt 2007/10/11
    「僕の作ってるもの」がどんなものなのか激しく気になる。 このハックの効果がある時点で普通のツールじゃなさそう。
  • IT戦記 - JavaScript の this について

    WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。 今回の内容で特に興味を持ったのはthisキーワードの振る舞いでした。 thisキーワードの説明には、オブジェクト型の変数を別の変数にコピーしてから初期化すると、コピーした変数からメソッドを実行できなくなるという例が紹介されていました。 そこには「(1)の時点でobj0には{}が入っているため、hogeは未定義となってしまう」という説明があるのですが、誌面の都合上省略があるためか、thisキーワードを用いることで問題を回避できるという理由がなかなか理解できないでいます。 自分なりに考えてみたところ、内部的には以下のようなことが起きているのではないかと思いました。 (1)

    IT戦記 - JavaScript の this について
    sqrt
    sqrt 2007/09/18
    こういう問題だとECMAナントカの仕様書を参照するのが一番早くて正確だと思うのだけれど。仕様書嫁で解決する人はそもそも解説記事の対象読者じゃないのかな……
  • Greasemonkeyの開発をまとめてみる

    sqrt
    sqrt 2007/07/06
    <del>編集できないのはgreasemonkey.editorが設定されていないからじゃないかな……?</del><ins>※欄で解決した模様。</ins>
  • Re: new の挙動 - IT戦記

    以下のエントリへの反応です。 new function() { //どうのこうの } は、 (function(){ this={} //どうのこうの return this })(); みたいなことしてるんだろうか。 http://d.hatena.ne.jp/gnarl/20070628/1183009662 this はキーワードなので変数としては使えないのですが、使えるとするならば、ほとんどそれに近い挙動だと 思います。 一つだけ違うのは this がどういうプロトタイプを持つかということです。 new function() { arguments.callee.prototype.hoge = 'hoge'; alert(this.hoge); // hoge }; (function() { var _this = {}; arguments.callee.prototype.

    Re: new の挙動 - IT戦記
    sqrt
    sqrt 2007/06/28
    ここまで突っ込むならECMAScriptの仕様を読んだ方が早い気も……?
  • document.title の罠 - IT戦記

    このエントリは一部間違っています。 こちらで訂正いたしました。 http://d.hatena.ne.jp/amachang/20070523/1179928332 いや大したことじゃないんですけど かなりハマったのでメモしときます。 通常ページのタイトルは以下で取れる var title = document.title; alert(title); // タイトルを表示 しかし、コンテンツ内に <div id="title"></div> のように id が title のものがあると var title = document.title; alert(title); // [object HTMLDivElement] となってしまう。 これでかなりはまった まとめ 不特定のページから title を取るような場合は多少めんどくさいけど document.getElementsByT

    document.title の罠 - IT戦記
    sqrt
    sqrt 2007/05/23
    手元のFx 2.0とIE 6.0では再現しません。発生条件があるんでしょうか……/一部の置換要素で発生する問題とのこと。titleだけじゃなくdocumentのプロパティ全部に気を付けないとダメなのか。URLやreferrerもうっかり使いそうだ...