タグ

関連タグで絞り込む (162)

タグの絞り込みを解除

JavaScriptとjavascriptに関するn2sのブックマーク (1,040)

  • JavaScript の仕組み:メモリ管理+ 4つの共通のメモリリーク処理方法 - Qiita

    この記事は sessionstack blog に投稿されている、How JavaScript works シリーズの一記事 "How JavaScript works: memory management + how to handle 4 common memory leaks" の和訳です。投稿されたのは Alexander Zlatkov, 原文はこちらです。翻訳については許諾いただいています。 メモリ管理もしくはC言語におけるメモリ解説他、用語なども怪しい箇所は多分にありますので、間違いがありましたら修正のご指摘・編集リクエスト等ください。 日語の参考 URL 先に日語の参考URLを記載しておきます。 JavaScriptで起こるメモリリークのパターン - EagleLand Browser Computing Structure // Speaker Deck Unders

    JavaScript の仕組み:メモリ管理+ 4つの共通のメモリリーク処理方法 - Qiita
  • Polymerライブラリ - Polymer Project

    PolymerライブラリはCustom Elementsを作成するための機能一式を提供します。これらの機能は、標準のDOMエレメントのように動作するCustom Elementsを迅速かつ容易に作成できるように設計されています。標準的なDOMエレメントと同様、Polymer Elementでは以下のようなことが可能です。: コンストラクタまたはdocument.createElementを使用して命令的にインスタンス化する。 属性またはプロパティを利用してエレメントの設定を行う。 各インスタンス内部にDOMを追加する。 プロパティや属性の変化に応じて処理を行う(オブザーバー)。 内部のデフォルトや外部からスタイルを設定する。 内部の状態を操作するメソッドに応答して処理する。 Polymer Elementの基的な定義は以下のようになります。: <dom-module id="x-cust

  • 図で理解するJavaScriptのプロトタイプチェーン - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    図で理解するJavaScriptのプロトタイプチェーン - Qiita
  • フロントエンドでバイナリファイルを扱うためのBlobオブジェクトとFileオブジェクト - 30歳からのプログラミング

    このエントリで紹介するBlobやFile、FileReaderはHTML5で利用可能になったAPIで、ECMAScriptで定義されているわけではない。 そのため、Node.jsには存在せず、ブラウザ環境でのみ利用できる。 Blob Blobは、バイナリデータを表すimmutableなオブジェクト。 const blob = new Blob(['<xml>foo</xml>'], {type: 'text/xml'}); console.log(blob); // Blob(14) {size: 14, type: "text/xml"} 第二引数で設定しているtypeで、MIMEを設定できる。 何も設定しなかった場合は空の文字列になる。 File Fileはその名の通りファイルを表すオブジェクトで、Blobを継承している。 const file = new File(['<xml>fo

    フロントエンドでバイナリファイルを扱うためのBlobオブジェクトとFileオブジェクト - 30歳からのプログラミング
  • 連想配列はMapを使うべきは本当か? - Qiita

    ES2015が出るまではJavaScriptで連想配列を扱う場合はObjectを使用するのが通常でした。ES2015からMapが登場し、こちらを使用すべきと言われています。それは果たして当なのでしょうか? 連想配列とは何か? 単純な配列は単なる値の順列と考えられます。値が一つ一つ順番に並んでおり、入っている値の数(同じオブジェクトが重複して入っている場合もある)がその配列の長さであり、0または1から始まるインデックスでアクセスできるというものです。複数のオブジェクトをひとまとめに扱う場合、この単純な配列であってもそれなりに使用できますが、インデックスは整数しか使えず、飛び飛びに使うことはできず1、ある値を探すには順番に見に行くしか無いなど、色々と不便なところがあります。そこで、インデックスに任意の名前をつけて、目的の値をすばやく取得できるようにしたのが連想配列です。 連想配列の基要件

    連想配列はMapを使うべきは本当か? - Qiita
  • ページのJavaScriptを動的に書き換えて実行する - Qiita

    DevToolsで動的にページのJavaScriptを書き換えて実行できるのを数ヶ月前まで知らなかったのでメモ。 上のGIFでは、DevToolsのSourcesタブから、ページ内で読み込まれているJavaScriptのファイルを選択して、onkeydownで呼ばれる関数の中を書き換えて、⌘ + sで保存してる。そのあとtextareaに文字を入力すると、書き加えたコード(ここで追加してるのはconsole.logね)が実行されて、文字列が下部のConsoleに出力されてるのがわかる。 ちなみに、1行目にブレークポイントを置いて停止している間に書き換えることもできる。当然、全部削除して保存すると何も実行されなくなる。 HTTPSでローカルプロキシしにくいページとかでデバッグするのに便利かなーと思った。

    ページのJavaScriptを動的に書き換えて実行する - Qiita
  • ECMAScript 2015以降のJavaScriptの`this`を理解する

    この記事はJavaScriptの入門書として書いているjs-primerのthisに関する部分をベースにしています。 またjs-primerでは書けなかった現在時点(2018年1月1日)でのブラウザの挙動についてを加えたものです。 次の場所にjs-primer版(書籍版)のthisについての解説があります。 この記事と違って実際にコードを実行しながら読めるので、学習ソースとしては書籍版を推奨します。 書籍版: 関数とthis · JavaScriptの入門書 #jsprimer また、バグ報告やPRも直接リポジトリにして問題ありません。 asciidwango/js-primer: JavaScriptの入門書 おかしい場所を選択した状態で右下にある”Bug Report”ボタンを押せば、簡単にtypoとかのバグを報告できます。(PRでも歓迎) 前置きはこの辺までで、ここから編。 この記

    ECMAScript 2015以降のJavaScriptの`this`を理解する
  • ECMAScript modules in browsers

    ES modules are now available in browsers! They're in… Safari 10.1. Chrome 61. Firefox 60. Edge 16. <script type="module"> import { addTextToBody } from './utils.mjs'; addTextToBody('Modules are pretty cool.'); </script> // utils.mjs export function addTextToBody(text) { const div = document.createElement('div'); div.textContent = text; document.body.appendChild(div); } Live demo. All you need is t

    ECMAScript modules in browsers
  • What is `this` value in JavaScript?

    Comparison table of `this` value. Show the result of your browser. Method version: What is `this` value in method

  • Parcel 入門 ~Parcelはwebpackの代わりになるのか~ - Qiita

    2018/05/08追記 記事内容をv1.1.0からv1.8.1に対応したものに更新しました。 はじめに Parcelというモジュールバンドラを触ってみたので、その備忘録になります。 webpack時代の終わりとparcel時代のはじまり 結論から言いますと、機能がシンプルすぎて自分の実務での利用は難しいと感じました。~~~~そのため、2017/12/10時点(v1.1.0)ではwebpackの代わりにはならないです。 2018/05/08時点でv1.8.1になり、様々な機能が追加されました。しかし現在もwebpackで利用している機能がParcelにはないため、実務での利用は難しいです。 とは言えども設定ファイルなしでReactVue、ES2015などをビルドできるようになっているため、個人でちょっとしたコードを書いてビルドしたい時はこちらを使っていくと便利だと思いました。 そのため

    Parcel 入門 ~Parcelはwebpackの代わりになるのか~ - Qiita
  • babel-preset-envを簡単にさわってみた。 - Qiita

    最近、babel-preset-envなる物を知ったので、どんな物なのかを調べてみました。 知ったきっかけは、 babel-preset-env楽 — よこた (@yokotak0527) 2016年11月25日 です。あと、 babel-preset-env is 1.0! New `useBuiltIns` option as suggested by @keyanzhang + electron support by @paulcbettshttps://t.co/L3ygdLljVT pic.twitter.com/XCjaVkHLps — Henry Zhu (@left_pad) 2016年12月9日 babel-preset-env is 1.0!とアナウンスが流れてきたので、使ってみたいなーと思ったしだいです。 Babelとは ES2015,ES2016などの新しいJava

    babel-preset-envを簡単にさわってみた。 - Qiita
  • # CommonJS と ES6の import/export で迷うなら - Qiita

    はじめに いつもはes6のモジュール管理方式であるimport/export(ES modules)を使って、npmで手に入れたライブラリや自分で作成したモジュールをロードしているが、たまに思った挙動にならないことがある。また、export defaultしたモジュールをテストしようとしてkarmaでrequire()するとエラーになったりした。そういう場合は、とりあえずmodule.exportsを使ってみるとうまくいったりすることが多いのだが、なぜなのかはあまり考えていなかった。 ということで、実際にはどうなっているのか、またモジュールシステムとは何なのかという点で基的なことから理解を深めて、es6のimport/exportとの違いを知り、より正しく実装できるようになれば良いと思っている。 結論としては 方針としては基的にはES6形式で記述するが、CommonJS形式の読み書きが

    # CommonJS と ES6の import/export で迷うなら - Qiita
  • イマドキのJavaScriptの書き方2018

    PySpa統合思念体です。これからJavaScriptを覚えるなら、「この書き方はもう覚えなくていい」(よりよい代替がある)というものを集めてみました。 ES6以降の難しさは、旧来の書き方にプラスが増えただけではなく、大量の「旧来の書き方は間違いを誘発しやすいから非推奨」というものを作り出した点にあります。5年前、10年前のやウェブがあまり役に立たちません。なお、書き方が複数あるものは、好き嫌いは当然あると思いますが、あえて過激に1つに絞っているところもあります。なお、これはこれから新規に学ぶ人が、過去のドキュメントやコードを見た時に古い情報を選別するためのまとめです。残念ながら、今時の書き方のみで構成された書籍などが存在しないからです。 たぶん明示的に書いていても読み飛ばす人はいると思いますが、すでに書いている人向けではありません。これから書くコードをこのスタイルにしていくのは別にいい

    イマドキのJavaScriptの書き方2018
  • V8 javascript engineについての細かい話 (Node.js Advent Calendar 2017) - abcdefGets

    Node.js Advent Calendar 2017 25日目の記事です。トリとなります。 さて先日11/26・27日に行われたNode学園祭でv8について発表させて頂いたが、 30分という制約上色々カットせざるを得なかった。 またv8のコードを読む・コントリビュートする上で伝えられる事も色々と溜まったので一度アウトプットすることにした。 というわけでまとまりのない記事になる可能性が高いがご容赦いただけると助かります。 事前資料 以下のスライドがNode学園祭の発表資料なので読んどいていただけると理解がはやいかも speakerdeck.com 前準備 チェックアウト v8はGitHubに直接はホスティングされていない。 GitHub上にあるv8リポジトリはミラーで実際にはchromium.googlesource.comにホスティングされている。 ただし開発の際にはGitHubのリポ

    V8 javascript engineについての細かい話 (Node.js Advent Calendar 2017) - abcdefGets
  • 旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門 Section5 ~ES2015文法を覚えよう(前編)~ - Qiita

    はじめに この記事は「旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門」の5つ目の記事です。 シリーズの最初から読みたい方は 旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門 Section1 ~すぐにでも現代っぽく出来るワンポイントまとめ~ へどうぞ。 また、このシリーズではECMAScript5を概ね対応するブラウザを対象としています。 もっと平たくいうと、IE8以下は切り捨てます。ご了承ください。 このシリーズを通して、原則として厳密さよりも分かりやすさを優先するためこのようにします。予めご了承ください。 目次 Section1 ~すぐにでも現代っぽく出来るワンポイントまとめ~ Section2 ~CommonJSモジュールと仲良くなろう~ Section3 ~Browserifyをマスターしよう~ Se

    旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門 Section5 ~ES2015文法を覚えよう(前編)~ - Qiita
  • ES2015(ES6):次世代JavaScriptはもう実戦投入出来るか?|もっこりJavaScript|ANALOGIC(アナロジック)

    この記事の目的 「ES6 or ES2015」次のJavaScriptの正しい名称について 各ブラウザの対応状況 「トランスパイラ」を使うという選択肢 トランスパイラを使う場合の注意 まとめ この記事の目的 この記事は2015年10月に公開されました 次世代JavaScriptとして長らく策定中であったES2015(旧名称=ES6:以下ES2015で統一します)ですが、2015年6月にようやく言語仕様が正式公開されました。フロントエンジニアとしては早く新しいJavaScriptを試してみたいところですよね。 現在はまだES5が主流ですが、将来的には確実にES2015が主流になるはずです。なのでフロントエンジニアにとってES2015の学習は必修科目ではあると思うのですが、どうせなら実戦投入を見据えて仕事を兼ねて学んでいきたいところです。ですがその場合は当然ながらブラウザの対応状況を考慮しなけ

  • 【連載記事】JavaScriptでプログラミングを学ぶ その1:基礎と文法

    JavaScriptは昔からあるプログラミング言語ですが、特に近年ではウェブ技術の盛り上がりにともない、JavaScriptの人気も上昇しています。 JavaScriptを学ぼうとすると、数多くの書籍・記事を見つけることができます。しかしながら、それらの多くはすでに他の言語でプログラミングを学習している人向けであったり、JavaScriptをもうすでに使っている人向けの小さなアドバイスであったりします。よってプログラミング初心者がJavaScriptを学ぼうとすると、様々な困難に直面します。特に、体系的にまとまった初心者向けの文献を探すのは、骨が折れます。 そこで、この連載記事では、いままでプログラミングを学んだことがない人を対象に、JavaScriptによるプログラミングを習得してもらうことを目標にしています。プログラミングの楽しさを、ぜひ体験してください。 連載目次 基礎と文法(この記

    【連載記事】JavaScriptでプログラミングを学ぶ その1:基礎と文法
  • クリーンなJavaScriptコードを書くためのガイド - Qiita

    Clean Code PHP / Clean Code JavaScript 以下はClean Code JavaScriptの日語訳です。 clean-code-javascript Introduction Robert C. Martinの著書Clean Codeは、JavaScriptにも当てはまることばかりです。 これはスタイルガイドではありません。 JavaScriptで3R(Readable、Reusable、Refactorable)なコードを推進するためのガイドです。 ここに書いてあることの全てに従わねばならないわけではなく、普遍的に合意されているわけでもありません。 ただのガイドラインであり、それ以上のものではありません。 しかしこれらは、Clean Codeの著者らが長年の集合知の結果をまとめたものです。 ソフトウェアエンジニアリングの歴史は僅か50年程度のものでし

    クリーンなJavaScriptコードを書くためのガイド - Qiita
    n2s
    n2s 2017/12/19
    「戸田奈津子訳」ww / 後ろでもリンクされてる別の訳→https://github.com/mitsuruog/clean-code-javascript/
  • functionの呼び出し方でthisが変わる時代は終わったんだよ(ブチギレ) - Panda Noir

    もう二度と「JavaScriptは呼び出し方によってthisが変わるという奇怪な言語なんですよ~(ドヤ顔)」とかするでないぞ?? この記事を書いた動機 Qiitaに定期的に(当に定期的に!)この手の記事が投稿されるから。 ではさっそくfunctionをこの世から葬り始めましょう! アロー関数とクラスの導入 この二つがES2015で追加されたのは既知の事実です。そして、この二つの登場でfunctionが表舞台に出てくることがほぼなくなりました。 JavaScriptにおいてfunctionの呼び出し方は次の4通りあります。 関数として メソッドとして コンストラクタとして apply、callを使って それぞれがアロー関数とクラスによってどう置き換わっていくのか見てみましょう。 関数としてのfunction 関数としてのfucntionで(普通の人なら)thisを参照したくなるケースなんて

    functionの呼び出し方でthisが変わる時代は終わったんだよ(ブチギレ) - Panda Noir
    n2s
    n2s 2017/12/18
    アロー関数とclassがあるから、ということ
  • LP高速化のために5つの画像の遅延読み込みライブラリを比較した - Qiita

    ベーシックアドベントカレンダー22日目です。 8日ぶり3回目の@tkhrです。 画像の遅延読み込みライブラリ比較の話です。 LPの高速化のために遅延読み込みを導入します。 対象になるLPは広告からの流入で表示するページになります。 なのでユーザの熱を冷まさせない工夫が必要ですね。 そのための工夫の一つとして今回は画像の遅延読み込みに対応します。 画像ならキャッシュがあるじゃん。と言えるかもしれませんが、広告LPなので初めてのユーザが大半なのでアテにできませんね。 なので遅延読み込みによってファーストビューが表示されるまでの時間を短縮することが狙いとなります。 遅延読み込みとは ページにアクセスした時には画像の読み込みはせず、必要になった時に画像を読み込みます。 必要になった時というのは、その画像が表示される時ですね。 それによってページにアクセスした時の読み込み時間を短縮できるので、ユーザ

    LP高速化のために5つの画像の遅延読み込みライブラリを比較した - Qiita