タグ

JavaScriptに関するdaikixのブックマーク (152)

  • JavaScriptユニットテストの理想と現実

    Talk at 関西Node学園 梅田キャンパス 1時限目 https://nodejs.connpass.com/event/82614/

    JavaScriptユニットテストの理想と現実
  • JavaScriptでデプロイ環境ごとに設定ファイルを読み込む方法

    実現したいこと リリース環境と開発環境でAPIのオリジンを替えたい オリジンを環境変数として別ファイルに定義したい リリースするJSファイルに開発環境用の記述が混ざらないようにしたい クライアントサイド(JavaScript)内で完結させたい 解決策 webpackを使ってビルドする前提で、ビルド時にprocess.dev.NODE_ENVを見て読み込む設定ファイルを切り替える方法をとりました。 ファイル構成 app ├ ... ├ webpack.config.js └ src ├ environment ├ index.js ├ _development.js └ _production.js _development.jsと_production.jsがそれぞれ環境ごとの設定ファイルです。 index.jsが設定ファイルを切り替えて読み込む主体です。 環境ごとの設定ファイル 当然と言

    JavaScriptでデプロイ環境ごとに設定ファイルを読み込む方法
  • (Babel 5における)ES6のモジュールを解説してみた - uehaj's blog

    警告 以下でのモジュールの説明はトランスパイラであるBabel 5,6で動作を確認した振舞いについての記述です。2015年11月現時点で、ECMAScriptのモジュール仕様策定範囲は、来の全体範囲のまだ一部であるとのことです。その状況でのBabelの実装は、良く言えば先行的、悪く言えば将来そのままである保証はなく、現時点でも他のES2015をサポートする処理系との間での相互運用の保証はありません。また、現時点でBabelのモジュール機能を使うこと自体にリスクがあるという意見もあります。CommonJS側からBabelが生成したモジュールをCommon JSモジュールとして読み込もうとしたときの互換の問題として、Babel5で可能だったことがBabel6では利用不可になる、といったことも起きているようです。 そこらへんを含めて解説されているこちらの資料が参考になります。 (2015/11

    (Babel 5における)ES6のモジュールを解説してみた - uehaj's blog
  • フロントエンドのコンポーネント設計に立ち向かう - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ReactVueなどコンポーネントベースで作っていくViewのライブラリが普及したことで、コンポーネント指向での開発が一般化してきた昨今のフロントエンドですが、このコンポーネントの設計に悩まれる方も多いのではないでしょうか。 コンポーネントをどの粒度、どんな状態で分割するのが良いのか、などなど、特にチームで開発する時に認識が揃っていないとカオスになりがちな部分であると思うので、自分なりの設計をする際の指針を言語化しようというのが記事の目的です。同じように悩まれている方にも何らか示唆を提供することができたら嬉しいです。 想定読者 「コ

    フロントエンドのコンポーネント設計に立ち向かう - Qiita
  • JavaScriptで画像処理するなら「Jimp」が便利 | 綺麗に死ぬITエンジニア

    現在JavaScriptは、ブラウザで使用されるのはもちろんのこと、サーバーサイドでWebサーバーとして動作したり、はたまた開発者のPCで各種開発ツールとして動作したりしており、様々な場面で利用されています。 そこで今回は、そのどちらでも使える、Node.jsとブラウザJavaScriptの両方に対応した画像処理ライブラリ「Jimp」を紹介したいと思います。 「Jimp」とはJimpは、外部またはネイティブの依存関係が全くない、完全にJavaScriptで記述されたNode.js用の画像処理ライブラリです。ライセンスはMITライセンスで、オープンソースで開発されています。 以下のnpmコマンドでインストールできます。 var Jimp = require("jimp"); // "lenna.png"を開く Jimp.read("lenna.png", function (err, len

  • Vue.js の基礎を学ぶために LearnCode.academy の学習動画を活用したら最高だった - kakakakakku blog

    LearnCode.academy とは? www.youtube.com LearnCode.academy という YouTube チャンネルがあり,Vue.js や React + Redux などを解説した,無料の学習動画が公開されている.今回受講したのは「Vue Tutorial」で,全9回となっている.合計しても「約1時間程度」なので,スキマ時間を活用して気軽に学ぶこともできる.「Vue.js は気になるけどまだ試したことがない」という人にオススメ! Vue Tutorial #1 - Vue JS Tutorial for Beginners #1 setting up an app Vue Tutorial #2 - Vue.js filters and computed data Vue Tutorial #3 - Vue.js directives and event

    Vue.js の基礎を学ぶために LearnCode.academy の学習動画を活用したら最高だった - kakakakakku blog
  • javascriptでスタイルシートを自在に操る(styleSheetsオブジェクト)入門基本編 | Unskilled?

    スタイルシートに到達するには生javascriptを使用する必要があります(もしかしたらライブラリがあるのかもしれないが)。あまり需要のない事柄なのかこの手の日語情報はwebでもあまり見つからない気がします。 jQuery全盛の時代スタイルシートを書き換える必要などどこにあるのか。@MINOにはあまりわからないです。 一つ懸念なのはstyle属性でのcss指定は「デザインを分離する」理念に反するのではないかと思うのです。SEO的にはどうなんでしょうか? そこらへんの疑問もアリながらですが、生javascriptでゴリゴリするのも知識がついていいのではないかと思います。 javascriptでスタイルシートに到達する スタイルシートの種類 スタイルシートは大きくわけて2つあります。一つは<style></style>で囲まれた以下の様なインラインスタイルシートです。 //インラインスタイル

    javascriptでスタイルシートを自在に操る(styleSheetsオブジェクト)入門基本編 | Unskilled?
  • Firefoxでポップアップブロックを無効にしているのにブロックされてしまう人へ - なまくらがたな

    未だに沢山の人が困ってるようです Permalinkを見てると例のエントリを見てくれてる方が沢山いらっしゃいます。1年前のエントリですが、お役に立ててるようでとてもうれしいです。 で、ふと気になってhttp://twitter.1x1.jp/search/で検索してみた。 http://twitter.1x1.jp/search/?source=&keyword=%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97+%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF&lang= http://twitter.1x1.jp/search/?source=&keyword=firefox+%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97&lang= http

    Firefoxでポップアップブロックを無効にしているのにブロックされてしまう人へ - なまくらがたな
    daikix
    daikix 2018/02/08
    Google SpreadsheetでURLが開けないときに
  • Webブラウザの操作をJavaScriptで自動化。Headless Chromeのフレームワーク「Puppeteer」がバージョン1.0に到達。ChromeのDevToolsチームが開発

    UIを持たずスクリプトから操作可能なWebブラウザのHeadless Chromeを利用するためのフレームワーク「Puppeteer」がバージョン1.0に到達した。Webアプリケーションの自動テストなどに利用可能だ。 GoogleのWebブラウザ「Chrome」は、ユーザーインターフェイスを持たずコマンドラインやリモートデバッグ機能を通じてWebブラウザを操作できる「Headless Chrome」機能を備えています。この機能は2017年6月にリリースされた「Chrome 59」から実現されたものです。 Headless Chromeを利用すると人間がWebブラウザをマウスやキーボードで操作することなく、プログラムでHeadless Chromeを起動し、特定のWebページを読み込み、画面キャプチャの取得や、指定された場所をクリックし、値を入力し結果を取得する、といった操作を自動的に行わせ

    Webブラウザの操作をJavaScriptで自動化。Headless Chromeのフレームワーク「Puppeteer」がバージョン1.0に到達。ChromeのDevToolsチームが開発
  • SSSSLIDE

    SSSSLIDE
  • DevTools を開いたら人類滅亡 - Qiita

    【追記】 Google Chrome 66 より動画の自動再生が制限されてしまいました。 そのため、DevTools を開いても自動では地球は滅亡せず、大幅に UX が低下しています。 地球滅亡のライブ感を楽しみたい方は、Firefox, Safari など他ブラウザでご利用ください。 【追記2】 LT のスライドはこちら 何をしたの? Chrome などの DevTools を開くと**人類が滅亡**するジョークライブラリ作ったよ! devtool-meteor https://github.com/diescake/devtool-meteor デモページ DevTools を開いたら人類滅亡https://t.co/DOhhkHBDcG pic.twitter.com/UYOKvTxTgy — diescake (@pomeranian_dev) 2018年1月14日 俺にも使えるの

    DevTools を開いたら人類滅亡 - Qiita
  • JavaScriptにSchemeを実装する - Qiita

    この記事は完成していません 更にコードに誤りがあったりして修正されていなかったりするので、一度整理されるまで落とすかもしれません この記事の内容 プログラマが美しい言語を求めて最終的にたどり着く言語、LISP。 プログラミング言語を作るということは、難しいと思われがちですが、実際のところ読み取った文字列を解釈するプログラムを作成するだけで独自の言語を作ることができます。 ただし、プログラミング言語として利便性を実用レベルまで持っていくのは通常、容易ではありません。しかし、Schemeであれば比較的実装が簡単かつ高度な言語を作ることができます。 Schemeはシンプルさとパワフルさの両方を兼ね備えたLISP方言の言語であり、ミニマルな仕様から世界で最も実装される言語です。今回はそんなSchemeをJavaScriptに実装します! 最終的な目標は、ブラウザにCUIを表示して対話形式でSche

    JavaScriptにSchemeを実装する - Qiita
  • ES2017の新機能「async / await」でPromise(非同期処理)をスッキリ書く

    いよいよECMAScript(ES2017 / ES8)のリリースが来月(2017年6月)に迫ってきました。すでに仕様は固まり、あとは承認を待つだけの状態となっているようです。ES2017の目玉機能のひとつが、今回紹介する「async/await」です。Promiseを使った処理をすっきり書くことができるようになります。async/awaitはすでに多くのモダンブラウザでは使えるようになっており、すでに利用している方もいるかと思いますが、ES2017のリリースも間近なことですし、改めて予習の意味もこめて今回async/awaitの使い方などについて紹介していきます。 はじめにJavaScriptの長年の課題として、非同期処理をいかに書くかというものがあります。かつては「コールバック地獄」という言葉が巷で溢れかえっていました。非同期処理の結果をコールバック関数の引数に渡し、そのコールバック関

    ES2017の新機能「async / await」でPromise(非同期処理)をスッキリ書く
  • JavaScript の this を理解する多分一番分かりやすい説明 - Qiita

    JavaScript の this は、(他のプログラム言語から見ると) ちょっと面白い挙動に見えることがあります。 先日、この this の挙動について、会社の同僚が説明してくれたのですが、これまで聞いた説明の中で一番分かりやすいと感じたので、頑張って日語で説明してみます。 分かりにくかったら、多分それは私の技量不足。 this と function の関係 function が基準スコープになるのがまず一点。 その function をどう呼ぶかで変わるのかがもう一点。 それを踏まえて…… this は function を呼んだ時の . の前についているオブジェクトを指している と理解できるというのが、同僚の説明でした。 . が省略された場合はグローバルオブジェクトになります (non-strict モード時)。 strict モードでは undefined になります。(@ryo

    JavaScript の this を理解する多分一番分かりやすい説明 - Qiita
  • JavaScriptは如何にしてAsync/Awaitを獲得したのか: がおさんち 技術部屋

    JavaScriptを記述する上で、避けて通れないのが非同期処理。 人類は、長い年月、この非同期的な処理を「如何にして書きやすく、読みやすく記述するか」について探求してきました。 要するに†闇†の塊なのですね。(闇に飲まれよ!!!!) この物語は、そんな†闇†の存在だった非同期処理を、人類がどのように苦しみ、そしてどのように解決していったかを書いていくポエムである。 補足:厳密には、JSはシングルスレッドで動くため、非同期処理は存在しない!と言ってしまえばそこまでなのですが、今回はsetTimeoutやajax通信、onloadイベント登録など、見かけ上、非同期的な挙動を示すものすべてを対象に話していきます。 第一章 ~人類はsetTimeoutを採用しました~ 古代のJavaScriptで、以下のような処理をしたい場合、どうしていただろうか。 「ブラウザ更新直後に『a』を表示し、その2秒

  • Jest

    Jest is a delightful JavaScript Testing Framework with a focus on simplicity.

    Jest
  • JavaScriptのテストを開発工数に入れてもらうには?

    2013年4月27日、六木ヒルズ森タワーのグーグルにて「第38回HTML5とか勉強会」が開催された。HTML5とか勉強会とは、HTML5に関心のあるエンジニアやWebデザイナ向けの勉強会だ。今回のテーマはJavaScriptのテストフレームワーク。別室のサテライト会場を用意しなくてはならないほど会場は多くの参加者であふれた。テーマへの関心の高さがうかがわれる。テストフレームワークを使いこなす現場のプロたちの解説により、その最新事情と基的な使い方が分かった。 JavaScriptテストの必要性と最新事情 サイボウズの佐藤鉄平氏は、JavaScriptのテストの基礎知識と全体像について語った。 公開スライド 佐藤氏は、結合テストやユニット(単体)テスト、そのほかにユーザビリティテストなど、そもそもテストにはどんな種類があるのかを解説した後、ユニットテストの重要性を強調した。技術面で開発チー

    JavaScriptのテストを開発工数に入れてもらうには?
  • webpack 4 入門 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? お知らせ(2020/08/25 追記) Udemy で「webpack 最速入門(10,800 円 -> 2,000 円)という講座を公開しました。 来の価格は10,800円ですが、上記リンクからアクセスすると2,400円で購入できます。 どんな内容? webpack を利用したフロントエンド開発環境が構築できるようになる、ハンズオン形式の講座です。 詳細は上記のリンクのプレビュー動画で詳しく説明しています。 記事との内容の違い 記事の内容に、以下の内容や特徴が追加された感じです。 実務で利用できる開発環境を徐々に構築していくので、記

    webpack 4 入門 - Qiita
  • JavaScript でテキストをクリップボードへコピーする方法

    document.execCommand('copy')ただしこの処理には前提条件があって、コピーされるのは「処理実行時に画面上で選択しているテキスト」に限られます。つまりこのメソッドだけでは、任意の文字列をコピーさせることはできないのです。 そこでこの機能を拡張して、引数で渡した文字列を擬似的に選択状態にしてコピーさせる関数を用意しました。 JavaScript で任意のテキストをクリップボードにコピーする関数この関数を実装する上でのポイントは、裏で文字列を選択するためのコピー用テキストエリアを一時的に作ることです。ここにコピー対象文字列を出力し、JavaScript で選択状態にすれば冒頭のコピーメソッドを実行することができます。 そしてコピーが完了したら、作成したテキストエリアを削除します。プログラム処理においては一瞬の出来事なので、画面上にテキストエリアが表示されるのを目視すること

    JavaScript でテキストをクリップボードへコピーする方法
  • 既存 JS ファイルを Browserify 用に書き直す - Qiita

    以前書いた記事で Browserify の使い方とか Browserify でやりたい事が分かったと思う。 では実際に Browserify を使って今までに書いたコードを Browserify 用に書き直してみる。 といっても大したことはない。1つのオブジェクトなり関数にまとめるだけで良い。 例として、よくあるスムーススクロールのスクリプトを挙げる。 $(function(){ $(".anchorlink").on('click', function(e){ e.preventDefault(); var href = $(this).attr("href"); var speed = 500; var easing = 'swing'; var target = $(href == "#" || href == "" ? 'html' : href); var animatePara

    既存 JS ファイルを Browserify 用に書き直す - Qiita