- 0.0.1. CORSにハマった…(Laravel, JavaScript)
- 0.0.2. 【JavaScript関数ドリル】中級編のunion関数の実装アウトプット
- 0.0.3. 【JavaScript関数ドリル】初級編のcompact関数の実装アウトプット
- 0.0.4. 【JavaScript関数ドリル】初級編のdrop関数の実装アウトプット
- 0.0.5. 【JavaScript関数ドリル】初級編のdropRight関数の実装アウトプット
- 0.0.6. 【JavaScript関数ドリル】初級編のfill関数の実装アウトプット
- 0.0.7. 【JavaScript関数ドリル】初級編のflatten関数の実装アウトプット
- 0.0.8. 【JavaScript関数ドリル】初級編のhead関数の実装アウトプット
- 0.0.9. 【JavaScript関数ドリル】初級編のindexOf関数の実装アウトプット
- 0.0.10. 【JavaScript関数ドリル】初級編のinitial関数の実装アウトプット
- 0.0.11. 【JavaScript関数ドリル】初級編のjoin関数の実装アウトプット
- 0.0.12. React始めました
- 0.0.13. Svelteに入門してみた
- 0.0.14. JavaScriptでゲームを作る? その3
- 0.0.15. [JavaScript] 非同期処理Promiseサンプル多めで丁寧にわかりやすく
- 0.0.16. LaravelとJavaScript(FetchAPI)でQiitaのタグ登録機能を実装してみる。
- 0.0.17. qiita apiを叩く。その4
- 0.0.18. 【Jquery】Jqueryのdetach(デタッチ)の使い方
- 1. あああ
- 2. いいい
- 3. ううう
CORSにハマった…(Laravel, JavaScript)
CORSにハマったので、備忘録として記載します。。
## CORSとは、
> オリジン間リソース共有 (Cross-Origin Resource Sharing, CORS) は、追加の HTTP ヘッダーを使用して、あるオリジンで動作しているウェブアプリケーションに、異なるオリジンにある選択されたリソースへのアクセス権を与えるようブラウザーに指示するための仕組みです。引用元: https://developer.mozilla.org/ja/docs/Web/HTTP/CORS
ハマった原因としては、GETリクエスト用のAPIだけ用意してCORS対策のレスポンスヘッダーを設定していたのですが、プリフライトリクエストを考慮しておらず、JavaScriptでCORSのエラーが発生していました。
## プリフライト(preflight)リクエストとは
> 単純リクエストとは異なり、「プリフライト」リクエストは始めに OPTIONS メソッドによる HTTP リクエストを他のドメインにあるリソースに向けて送り、実際のリクエストを送信しても安全かどうかを確かめます。サイト間リク
【JavaScript関数ドリル】中級編のunion関数の実装アウトプット
## union関数の課題内容
_.union関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#union「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできそうと思った。
## 課題に取り組んだ後の状態
– 解答例では引数を受け取る際に、…で展開されているのが、参考になった。
## union関数の実装コード(答えを見る前)
“`javascript
function union(arrays) {
const unionArray = [];for (let i = 0; i < arguments.length; i++) { for (let j = 0; j < arguments[i].length; j++) { if (!unionArray.includes(arguments[i]
【JavaScript関数ドリル】初級編のcompact関数の実装アウトプット
## compact関数の課題内容
_.compact関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#compact「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできそうと思った。
– 前回まで、変数名をわかりやすいものにしていなかったので、今回は気をつけようと思った。## 課題に取り組んだ後の状態
– 解答例とまったく同じ(変数名も含めて!)にできたので、嬉しかった。
## compact関数の実装コード(答えを見る前)
“`javascript
function compact(array) {
const compactedArray = [];for (let i = 0; i < array.length; i++) { if (array[i]) { compactedArray.p
【JavaScript関数ドリル】初級編のdrop関数の実装アウトプット
## drop関数の課題内容
_.drop関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#drop「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできそうと思った。
## 課題に取り組んだ後の状態
– 解答例では、第2引数が0の場合や配列の長さより長い場合をあえて分けて処理するなど、自分のコードと違う部分があるが、自分の実装コードのforループで、第2引数が0の場合は処理されないように記述し、第2引数が配列の長さより長い場合も含め、サンプルの処理結果が同じように出ているため、このままで良いかと判断。
– もし、極端に大きすぎる第2引数が渡された場合に備える場合は、むだにforループを続けてしまうので、やはり解答例と同じようにif文を使いたいと思う。## drop関数の実装コード(答えを見る前)
“`javascriptfunction drop(array,
【JavaScript関数ドリル】初級編のdropRight関数の実装アウトプット
## dropRight関数の課題内容
_.dropRight関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#dropRight「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできそうだと思った。
## 課題に取り組んだ後の状態
– 解答例では、第2引数が0の場合をあえて分けて処理するなど、自分のコードと違う部分があるが、自分の実装コードのforループで、第2引数が0の場合は処理されないように記述し、サンプルの処理結果が同じように出ているため、このままで良いかと判断。
## dropRight関数の実装コード(答えを見る前)
“`javascript
function dropRight(array, n = 1) {
const newArray = […array];for (let i = 0; i < n; i++) {
【JavaScript関数ドリル】初級編のfill関数の実装アウトプット
## fill関数の課題内容
_.fill関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#fill「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできるか自信がなかった。
## 課題に取り組んだ後の状態
– 解答例とは違う部分があるが、このままで良いかと判断。
## fill関数の実装コード(答えを見る前)
“`javascript
function fill(array, value, start = 0, end = array.length) {
for (let i = start; i < end; i++) { array[i] = value; } return array; } ``` ## fill関数の実装コード(答えを見た後) ```javascript // 同じ ```
【JavaScript関数ドリル】初級編のflatten関数の実装アウトプット
## flatten関数の課題内容
_.flatten関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#flatten「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできるか自信がなかった。
## 課題に取り組んだ後の状態
– なんとか処理結果がサンプル処理結果と同じにはなるように実装したものの自分のコードが腑に落ちない状態だった。
– Array.isArray()という便利なものがあることを改めて認識した。## flatten関数の実装コード(答えを見る前)
“`javascript
function flatten(array) {
const newArray = [];
for (let i = 0; i < array.length; i++) { if (typeof (array[i]) === "object"
【JavaScript関数ドリル】初級編のhead関数の実装アウトプット
## head関数の課題内容
_.head関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#head「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできそうだと思った。
## 課題に取り組んだ後の状態
– シンプルすぎて、関数を書くほどの処理でもないので、何かしら見逃しているのかと気になったが、解答例と同じなので安心した。
## head関数の実装コード(答えを見る前)
“`javascript
function head(array) {
return array[0];
}
“`## head関数の実装コード(答えを見た後)
“`javascript
// 同じ
“`
【JavaScript関数ドリル】初級編のindexOf関数の実装アウトプット
## indexOf関数の課題内容
_.indexOf関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#indexOf「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできそうだと思った。
## 課題に取り組んだ後の状態
– 解答例はfromIndexが負の数の場合の処理を別途書いていないようなので、その辺り、自分の書いたコードでよいのか判断に悩みました。(※Lodashのページには、”If fromIndex is negative, it’s used as the offset from the end of array.”とあったため)
## indexOf関数の実装コード(答えを見る前)
“`javascript
function indexOf(array, value, fromIndex = 0) {
if (fromIndex < 0)
【JavaScript関数ドリル】初級編のinitial関数の実装アウトプット
## initial関数の課題内容
_.initial関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#initial「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできそうだと思った。
## 課題に取り組んだ後の状態
– 解答例は引数の配列を一旦新しい配列にコピーし、その新しい配列からpop関数で最後の値を取り除いている点が、自分の解答と主に異なる点で、その方が早く処理できそうなので参考になった。
## initial関数の実装コード(答えを見る前)
“`javascript
function initial(array) {
const newArray = [];
for (let i = 0; i < array.length - 1; i++) { newArray.push(array[i]); } r
【JavaScript関数ドリル】初級編のjoin関数の実装アウトプット
## join関数の課題内容
_.join関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#join「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
## 課題に取り組む前の状態
– 解答例を見なくてもできそうだと思った。
## 課題に取り組んだ後の状態
– 解答例は引数の配列を一旦新しい配列にコピーし、配列の最初の値を変数宣言時に入れているのが、自分の解答と主に異なる点で、そういう方法は思いつかなかったので、参考になった。
## join関数の実装コード(答えを見る前)
“`javascript
function join(array, separator = ‘,’) {
let str = “”;
for (let i = 0; i < array.length; i++) { str += array[i]; if (i < array.length - 1) {
React始めました
Reactで何か作ろうと思ってずっと先延ばしになっていたんですが、
ようやく勉強を始めることができました!で、学んだことをゆるーく備忘録として残していこうと思います。
お手柔らかにお願いします!
## ファイル準備
ディレクトリ構成はこんな感じ“`
app
└─ public
└─ scripts
“`“`html:app/public/index.html
React Lesson
Svelteに入門してみた
かなり前だけど社内で最強クラスのエンジニアが紹介していたのを聞いて面白そうだったので。
SSRは試してません。# Svelteとは
Rich Harrisにより開発されたJavaScript Webフレームワーク。
ReactやVueなどはランタイムライブラリで仮想DOMを扱うが、Svelteを利用したアプリケーションは直接DOMを操作するコードに「コンパイル」される。https://svelte.jp/
コンポーネントはVueのようにSFC(Single File Component)で構成する(拡張子は`.svelte`)。
Vueと異なり``タグではなくSFC内のトップレベルにHTMLを記述する。TypeScriptもサポート。
# Svelteいいね
- 単にコンポーネント内の変数に代入するだけでDOMが更新される
`useState`みたいなものはいらない
- ある値に依存して更新が必要な情報(いわゆるcomputed property)も`$`を用いて
`$: doubled = count * 2`
のように書くだけで`co
JavaScriptでゲームを作る? その3
# はじめに
続きをやっていきます。
- 前回の記事は[コチラ](https://qiita.com/sfjwr/items/0392dc0cc5b114f0ff81)
今回は、当たり判定を処理することが主な目的になります。
# 今回の目次 ?
1. 敵を簡易的に動くようにする ?
1. 弾が敵に当たるようにする ?
1. 弾が当たった時にエフェクトを表示する ?
1. 敵が攻撃するようにする ?# 敵を簡易的に動くようにする ?
## 概要
敵が全く動かないのは寂しいので、とりあえず簡易的に動くようにしたいと思います。
敵の操作処理は、コントローラーの入力を自動で生成するようにし、それに応じて、機体の挙動はプレイヤーのものと全く同じにしたいです。
そのための準備としてひとまず、プレイヤー用の処理関数の引数にコントローラー入力用の変数を追加して、そちらから入力の判定を行うようにします。
また、キャラクタの色をデータとして持たせて、データから描画させるようにします。
``` JS
let gameObjects = [
{
type: 'player
[JavaScript] 非同期処理Promiseサンプル多めで丁寧にわかりやすく
# Promiseとか非同期処理が意味不明
普段プログラミングで書くのは同期処理です。
コードを順番に上から下に実行していって、途中時間のかかる処理の間は動作・画面が途中で止まることになります。
例えば時間かかる処理としてはサーバーと通信して画像とか動画とかのサイズ大きいデータを取得する処理とかですね。
画像を表示しようとするたびに画面が固まって操作を受け付けないページとかあったら、イライラしてさっさと戻るボタン押しますよね。
LaravelとJavaScript(FetchAPI)でQiitaのタグ登録機能を実装してみる。
# 目次
[1.Qiitaのタグ登録機能](#1-qiitaのタグ登録機能)
[2.対象読者](#2-対象読者)
[3. 完成品とコード](#3-完成品とコード)
[4. 仕組み](#4-仕組み) :point_left:ここだけ理解できればいいと思います。
[5. コード解説](#5-コード解説) :point_left:わかりにくい# 1. Qiitaのタグ登録機能
↓これです。画面遷移無しでタグの登録をする機能です。

HTML,CSS,PHPしか書けなかった私が憧れていた「画面遷移無しでのデータベースの操作」です。実装方法を解説していきます。
※ ぶっちゃけ[4. 仕組み](#4-仕組み) のところだけ理解して、fetchAPIの使い方を学べば実装できると思います。
[Fetch の使用 - W
qiita apiを叩く。その4
# 概要
javascriptで、qiita apiを叩いてみた。
searchで、取得してみた。# サンプルコード
```
var app = new Vue({
el: '#app',
data: {
items: null,
keyword: '',
message: ''
},
watch: {
keyword: function(newKeyword, oldKeyword) {
this.message = 'waiting for you stop typing...'
this.debouncedGetAnswer()
}
},
created: function() {
this.debouncedGetAnswer = _.debounce(this.getAnswer, 1000)
},
methods: {
getAnswer: function() {
if (this.keyword ===
【Jquery】Jqueryのdetach(デタッチ)の使い方
# コード
```htmlあああ
いいい
ううう
``````javascript
let detached;
$('#button1').on('click', function() {
if($('h1').hasClass('aaa')){
detached = $('.aaa').detach();
}
})
$('#button2').on('click', function() {
detached.prependTo('body');
})
```# 実行前
のコンポーネントを作ってみた(React)
はじめに
モバイル用のwebアプリを作成していまして、
リロードされると色々と困ると思ったのでせめてスクロールリロードは禁止にしようと思い作りました。
その時に画面全部のスクロール禁止は簡単だけど、一部分のスクロール許可は大変だなと思ったのでメモです。
※一部分のスクロール許可コンポーネントはコンボボックスには対応していません。完成したコンポーネント・CSS
画面全部のスクロール禁止処理コンポーネント
```react:AllScrollLock.jsx
import React, { useEffect, useCallback } from "react";const AllScrollLock= React.memo(() => {
/**
* イベントリスナーの設定
*/
useEffect(() => {
// モバイルスクロール禁止処理
document.addEventListener("touchmove", scrollNo, { passive: false
【Rails/JavaScript】アクティブストレージの画像をプレビュー表示させる方法
## 初めに
アクティブストレージの画像をプレビュー表示させる方法をまとめました。
実装の備忘録としてJavaScript1つ1つの記述の意味も一緒に記録しています。## プレビュー表示の方法
### ①プレビュー用のjsファイルを作成
今回は「preview.js」という名前で作成しました。
```app/javascript/preview.js
? app
∟ ? javascript
∟ ? channels
∟ ? packs
∟ application.js
∟ preview.js #こちらを作成
```### ②application.jsを編集
行うことは2点です。
1.turbolinks(高速化)をコメントアウトする
→理由はJavaScriptの動作に影響を及ぼす可能性があるためです。
2. require('../preview') を追記し、jsファイルを使えるようにする```app/javascript/packs/