概要 Object.assignはオブジェクト同士をマージするJSerの誰もが長年追い求めた夢のメソッドである。 使い方 Object.assign( target, ...sources ) 第一引数で渡したオブジェクトに、第二引数以降のオブジェクトが直接持つ、 全ての列挙可能なStringまたはSymbolプロパティを加え、結果として返す。 例: var sym = Symbol() var obj1 = { "str": 1, } var obj2 = { "str": 2, [sym]: 2 } var obj3 = Object.assign( obj1, obj2 ) console.log( obj1 == obj3 ) // true console.log( obj1["str"] == 2 ) // true console.log( obj1[ sym ] == 2
Dedicated to JavaScript and its awesome community since 2015
この記事は Node.js Advent Calendar 2014 の 1日目の記事です。 こんにちは、代表です。 Stream大好きなみんなのためにStreamの過去と現在、そして未来についてお話するよ!! Streamを何故使うのかっていう話と歴史的な話をします!! Streamとは データの流れを扱うための抽象化されたモジュールです。もうみんな耳にタコかもしれませんが、Streamを使うとデータの流れを綺麗に書くことができます。ちなみに今に始まった概念ではなくて、C++にもC#にもStreamがありますし、Java8の新機能にもStreamがあります。「データを扱うときの抽象化された流れ」を指す広義のStreamという意味では今日の言語ではだいたい実装されています。 Node.jsでは、以下のリンクが参考になるでしょう。 Node.js の Stream API で「データの流れ」
JSer.info #225 - CLDRベースの国際化対応ライブラリであるjquery/globalize 1.0がリリースされました。 Announcing Globalize 1.0 | Official jQuery Blog 日付や数値、通貨の国際化対応やICU message formatのサポートがされています。 類似するライブラリとしてはFormatJSなどがあります。 React.js meetup #1やO'Reilly FluentなどのイベントがありReactやFluxについての話が色々でていたのでまとめて紹介。 10分で実装するFlux Fluxを一から実装してみて、データがホントに一方通行に流れてるのかを確認するという趣旨のスライド EventEmitterから実装してViewを除くと50行程度で書けるものであるという話 実装: azu/mini-flux Re
[速報]マイクロソフト、HTML5/JavaScriptアプリをiOS/Android/Windows対応に一括変換する「ManifoldJS」をオープンソースで発表。Build 2015 マイクロソフトが米サンフランシスコで開催中のイベント「Build 2015」。2日目の基調講演では、iOSやAndroid、Windows 10などクロスプラットフォーム対応のアプリケーションを一括で生成するツール「ManifoldJS」を発表しました。 マイクロソフト チーフエヴァンジェリストのスティーブ・グッゲンハイマー氏。「Windows対応だけではなく、クロスプラットフォーム対応のアプリケーションをどう作ればいいのかとよく聞かれる。2年前、われわれはゲーム向けにUnityを発表し、昨年はiOSとAndroid対応でXamarinの採用を発表した。今年はWebアプリケーションにフォーカスしよう」
概要 copyWithinは配列の一部の区間を任意の位置から貼り付ける破壊的メソッドである。 使い方 Array.prototype.copyWithin( target, start, end? ) startからendの直前までの要素をtargetの位置から貼り付ける。 例: var ary = [ 0, 1, 2, 3, 4, 5 ] ary.copyWithin( 2, 4 ) console.log(ary) // [ 0, 1, 4, 5, 4, 5 ] var ary = [ -6, -5, -4, -3, -2, -1 ] ary.copyWithin( -3, -4, -2 ) console.log(ary) // [ -6, -5, -4, -4, -3, -1 ] 実装されるバージョン V8 4.4.29 4.5.73(デフォルト有効)
JSer.info #224 - 次期ECMAScriptであるES6 Rev 38 Final Draftがリリースされました。 Final Draft of the ECMAScript 2015 Language Specification (ES6) is now available at http://t.co/pcHkz1muWu Next step: Ecma GA approval vote — Allen Wirfs-Brock (@awbjs) April 16, 2015 ECMAへ提出されて2015年の6月のECMAのミーティングにて承認されれば、ECMA標準として公開される予定になっています。 2014-06-09のJSの際にES6のリリース次期が変更されていましたが、この変更した通りに進んでいるようです。 (図は2014-06-09時点のもの) *画像が横に長い
Chrome 40 から ServiceWorker が使えるようになりました。Opera もバージョン 27 から対応し、Firefox でも現在実装が進められています (参考「Is ServiceWorker ready?」)。ServiceWorker はページのライフタイムとは独立した JavaScript の実行コンテキストを提供する機能で、ページからのリクエストをフックしてキャッシュからレスポンスを返したり、サーバからのプッシュイベントを受けてそれをページに通知するといったことが可能になります。 ServiceWorker のコンセプトや基本的な使い方、ユースケースなどは下記のページが参考になります。 Service worker が拓く mobile web の新しいかたち Service Worker の紹介: Service Worker の使い方 - HTML5 Ro
Chromeブラウザ、「Script streaming」と「Code caching」の2つのテクニックで、さらにWebページ読み込み時間を短縮へ Chromium Blogで、「New JavaScript techniques for rapid page loads」(迅速なページロードのための新たなJavaScriptテクニック)というポストが投稿され、Webページのロードをさらに高速化する「Script streaming」と「Code caching」という2つのテクニックが紹介されています。 この2つのテクニックは、最新バージョンとなる41と次のバージョンの42でそれぞれ導入されるとのことです。 別スレッドでのパースにより高速化 「Script streaming」は、async/defer属性が付いたJavaScriptについてはダウンロードと並行して別スレッドでパースを
フロントエンドを楽にするために Qiitaを支えたい技術 at 時雨祭 About HN: mizchi Qiitaの方からきました(入社半年たったらしい) Reactオジサンはそろそろ飽きてきた Angularに興味が無いのでこっちにきた 最近の業務 Kobito for Windows Closedβ中: もうちょい待ってろ お前らウェブエンジニアはWindows使わないのでβユーザー集めにくいんじゃ 省力モード 一昨日がClosedβリリースだったんで察してくれ!!! ついさっきまでバグフィックス用のビルド作ってた Qiitaを支える技術? 4ヶ月ほどほぼソロ作業 正直カウボーイぎみ OSSでドキュメントガンガン書いてカバー(したい) 業務から派生したOSS mizchi/arda Flux フレームワーク mizchi/stone-skin IndexedDb ラッパー mizch
概要 「new.target」とは、ES2015で導入されたビルトインクラスのサブクラスを作る上で欠かせない存在である[[newTarget]]を取得するためのメタプロパティである。 従来の問題点 ES5まではArrayのようなビルトインクラスを適切に継承したサブクラスを作ることができなかった。 ES2015からのプロトタイプ設定機能を使うと可能であり、このようになる。 class Stack extends Array { constructor( ...args ) { var stack = new Array( ...args ) return Object.setPrototypeOf( stack, Stack.prototype ) } clear() { this.length = 0 } } しかし毎回このように書かないといけないのはスマートではない。 できればこの様に書
概要 Reflectオブジェクトはグローバルに存在し、演算子がするような作用や、内部的に行われているような作用をメソッドの形で提供する。 記事更新履歴 [2016/03/23] ES2016でenumerateトラップが削除されるのに対応 [2015/03/24] 公開 実装されたメソッド Reflect.has ( target, key ) [4.8.9] 「 key in target 」とほぼ同じ*1。 Reflect.get ( target, key, receiver? ) [4.8.9] 「 target[ key ] 」とほぼ同じ*1だが、オプションでゲッターのthisとなるreceiverを指定できる。 Reflect.set ( target, key, value, receiver? ) [4.8.187] 「 target[ key = value ] 」
IndexedDbをActiveRecord+Promiseっぽく扱えてJSONSchemaでバリデーションできてnodeでもオンメモリで動いてくORMみたいな何か作ってみたJavaScriptStoneSkin タイトル盛りすぎた。 mizchi/stone-skin です。 npm install stone-skin で入るんでbrowserifyと一緒に使ってください。 命名は、時間があったらFF14やるんだけどなという気持ちを込めて。(ナイトだけLv50にしてから1年以上触ってない) この前紹介したArdaと一緒で、本番環境でドッグフーディングしつつ開発したので、使い物になるはず。今さっきドキュメント書いてv0.1.0にしたので紹介。 サンプルコード 非同期APIはPromiseを返すので、この前書いた JavaScript - Babelのasync/await試してみた(+中
JSer.info #219 - React v0.13がリリースされました。 React.ComponentがES6 Classesに対応したことやcomponent.getDOMNode()の代わりにReact.findDOMNode(component)の利用を推奨としたり、setStateが非同期になるなど色々な変更が含まれています。 詳しくは以下を参照して下さい。 React.js v0.13 changes - blog.koba04.com Chrome 42 Betaがリリースされました。 Service Workerを使ったPush APIが実装され、Google Cloud Messagingなどからプッシュ通知を送れるようになりました。 Push Notifications on the Open Web また、ES6 Classesの実装やFetchがwindowコ
If you ask a room of developers what mobile device features are missing from the web, push notifications are always high on the list. Push notifications allow your users to opt-in to timely updates from sites they love and allow you to effectively re-engage them with customized, engaging content. As of Chrome version 42, the Push API and Notification API are available to developers. The Push API i
Introduction to fetch() Stay organized with collections Save and categorize content based on your preferences. So long XMLHttpRequest fetch() allows you to make network requests similar to XMLHttpRequest (XHR). The main difference is that the Fetch API uses Promises, which enables a simpler and cleaner API, avoiding callback hell and having to remember the complex API of XMLHttpRequest. The Fetch
やんなくちゃなー、と思っていたので Lint Like It’s 2015 — Medium を眺めながら、ahomu/es6-Kameita の JavaScript Linter を ESLint に乗り換えました。 Lint の設定つくるのがダルイ問題 本当にだるい。この投稿を書いている時点では .eslintrc を以下のようにしました。 スペースの入れ方については、強い意志をもって堅めの設定になっているはず。 max-params はちょい甘めです。consistent-this を全力で否定しているので、流用したい方は気をつけた方がよろしいかと。 { "parser": "babel-eslint", "env": { "browser": true, "node": true }, "rules": { "strict": 2, "default-case": 2, "no-
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く