- 1. 【学習メモ】Vueインスタンスについて
- 2. 【JavaScript】関数とオブジェクト② コールバック関数
- 3. TypeScriptを用いてContentfulへ新規投稿する
- 4. JavaScript入門(関数と宣言)②
- 5. 【初心者】あなたがJavaScriptの基礎を習得できているか判断するための練習問題(随時更新)
- 6. Nuxt+fabric.jsで画像同士を重ね合わせるcanvasを作成
- 7. 算術符号よりめっちゃ高速だとの噂の「非対称符号系(ANS)」のコードを JavaScript で書いて、速度を測ってみた
- 8. 【学習メモ】Vue.jsの基礎的な構文の備忘録
- 9. C#とNode.jsを連携する
- 10. 【JavaScript活用】リベンジしてみた!!→QiitaAPIでバイクが好きがいるか調べてみた
- 11. javascript演習 1日目/30日
- 12. JSのコンテキストとスコープ
- 13. Azure Web PubSub と Node.js を組み合わせた軽いお試し
- 14. JavaScriptでHTML要素の高さを取得する方法
- 15. JavaScriptのコンテキストについて
- 16. 【初学者向け】JavaScriptのsplitについて
- 17. Javascriptの基本からおさらいしてみた
- 18. ES2022のArray.prototype.atは今の所遅い (2021/10/16時点)
- 19. 【JavaScript】Qiita デイリー LGTM 数ランキング【自動更新】
- 20. [React] React+TypeScript 実践
【学習メモ】Vueインスタンスについて
#はじめに
Vue.jsを最近勉強し始めたので学んだ文法などを備忘録としてメモしていこうと思います。##Vueインスタンスの生成
Vueインスタンスを生成する場合は以下のように`new Vue`とし、`el`プロパティにVueテンプレートのどの部分へ適用するVueインスタンスなのかを、セレクタを指定することで示します。https://jp.vuejs.org/v2/api/index.html#el
“`html:index.html
{{ message }}
“`
“`js:index.js
new Vue({
el: “#app”, // <--上記htmlファイル内のid要素appの部分に適用する data: { message: 'こんにちは' } }) ``` また、`el`要素を使わずに`$mountメソッド`を利用する方法もあります。 ```js:index.js new Vue({ data: { message: 'こんにちは' } }).$mou
【JavaScript】関数とオブジェクト② コールバック関数
#はじめに
Udemyの[【JS】ガチで学びたい人のためのJavaScriptメカニズム](https://www.udemy.com/course/javascript-essence/)の講座の振り返りです。
前回の記事
https://qiita.com/nao0725/items/338904737ed2849a1bd9
#目的
* 関数とオブジェクトについての理解を深める
#本題
###1.関数とオブジェクト関数は**実行可能なオブジェクト**である
この点が他のオブジェクトと異なる下記コードで確認すると
““`javascript
// helloと出力される関数を用意
function a() {
console.log(“hello”);
}
// propには0を、methodでは「メソッド」と出力されるように設定
a.prop = 0;
a.method = function(){
console.log(“メソッド”)
}// 実行すると下記のようにそれぞれ出力される
// hello
a();
// メソッド
a.meth
TypeScriptを用いてContentfulへ新規投稿する
他のサイトで書いた記事を取得し、contetfulへ保存する処理についてまとめています。
contentfulの基礎的な概念や扱いを把握していることを前提としてい記事を書いております。
間違いなどあれば、指摘していただけると幸いです。利用するサードパーティーのインストール([https://www.npmjs.com/package/contentful-management](https://www.npmjs.com/package/contentful-management))
“`tsx
yarn add contentful-management
“`記事を取得するだけならば、[こちら(contentful)](https://github.com/contentful/contentful.js) のサードパーティーだけで事足りますが、記事の保存などを行う場合は上の contentful-management を利用することをお勧めします。
### まずapi key や spaceの情報を用いてclientを作成する
APIKEY, SPACEID はそ
JavaScript入門(関数と宣言)②
# 概要
[…JavaScript入門(関数と宣言)①](https://qiita.com/andota05/items/a32d5fee352f17ea1361)の続きです。JavaScriptを学習、理解を深めるため「[JavaScript Primer 迷わないための入門書](https://jsprimer.net/)」を読み、
理解した内容等を記載していく。[JavaScript入門一覧](https://qiita.com/andota05/items/22fae452225b785fd405)に他の記事をまとめています。
※下記「動作環境情報」を参考にし、開発者コンソールで結果を確認してください
動作環境情報はコチラ
**【環境】**
PC:Mac
エディタ:Visual Studio Code
プラグイン:`Live Server`というVisual Studio Codeのプラグインを使用し、サーバ環境を用意。
開発者コンソール:GoogleChrome**【登場ファイル】**
f【初心者】あなたがJavaScriptの基礎を習得できているか判断するための練習問題(随時更新)
# はじめに
~~随分とおせっかいな煽りタイトルですが~~ プロゲートやドットインストールなどでJavaScriptの基礎を学ぶだけではReactやVueなどのライブラリ・フレームワークなどの学習で躓いてしまうことでしょう。これからReactやVueを学ぶ方向けにJavaScriptの基礎を確認できる問題を用意しました。[解答](#解答編)は一番下にまとめてあります!
# ターゲット
– 「JavaScriptの基礎を一通り学んだからReactやVueの勉強に移るか!」と考えている方
– React,Vueなどの勉強をしているが、「ReactやVueではなくJavaScriptが分かってないよ」と言われてしまった方# 問題編
## レベル1
### 1-1
下のコードを実行すると何が表示されるか?“`javascript
let name = “TBSten” ;
if(name === “TBSten”){
console.log(“ok”);
}else{
console.log(“no”);
}
“`### 1-2
下のコードを実行すると何が表示Nuxt+fabric.jsで画像同士を重ね合わせるcanvasを作成
pngなどの透過画像をcanvasで重ねたかったのですが、いい感じのまとまった記事がなかったのでこちらでまとめています。
しかも自分の重ねたい方法は、**操作している画像が固定されている画像の下に常に存在するようにする**、というもので見つけるのが大変でした。フレーム画像の下で画像編集をしたいときなどに使えると思います。
## 前提
– nuxt-composition-apiをインストールして準備していること
– fabric.jsをインストールして準備していること## 使った画像
透過画像はこちらで手に入れました。
https://zukan.pokemon.co.jp/detail/327
## コード
鍵となるのは `globalCompositeOperation` です。これを見つけるのにすごく時間がかかりました、、、
`destination-over`をつかうことによって、元からある図形の下に描画ができるようになります。また、一番上の画像は今回selectableを解除しています。“`index.vue
算術符号よりめっちゃ高速だとの噂の「非対称符号系(ANS)」のコードを JavaScript で書いて、速度を測ってみた
# 算術符号よりめっちゃ高速だとの噂の「非対称符号系(ANS)」のコードを JavaScript で書いて、速度を測ってみた
Zstandard という圧縮アルゴリズムが高速だとの噂で、採用している符号化アルゴリズムが、tANS だという。
どのようなアルゴリズムなのか気になって調べてみた。
調べていくうちに、tANS のようなテーブルを作るまでもなく、テーブル無しの rANS でも十分早いんじゃないかと思えるようになったので、コードを書いてみた。
結果、コードはとても短く、計算コストを必要とする割り算や掛け算の数も少ない。やはり、問題ないと思えるくらいに高速に思える。ただ、算術符号とか、レンジコーダの、実行速度と直接おなじ環境で比較してみないと、なんとも言えないので、比較可能な JavaScript なコードがありましたら教えていただけると幸いです。
## rANS encode
具体的には、文字列を Uint8Array に変換(符号化、圧縮)する。関数は、文字列を入力し、Object を返す。Object には Uint8Array の他に、頻度情報のテーブルが付いて
【学習メモ】Vue.jsの基礎的な構文の備忘録
#はじめに
Vue.jsを最近勉強し始めたので学んだ文法などを備忘録としてメモしていこうと思います。##Vue.jsとは
Vue.jsとはJavaScriptのフレームワークであり、国内ではよくReact.jsやAngular.jsと並んで比較されることが多いです。##テンプレート構文
Vueを勉強していると「テンプレート」というワードが出てきます。
Vue.jsではHtmlファイルに以下のように書いたりするのですが、これを「テンプレート」と言います。“`html:index.html
//以下のようにVue.jsによって操作される部分をテンプレートという{{message}}
“`
“`js:index.js
new Vue({
el: “#app”,
data: {
message: ‘Hello World’
}
})
“`https://jp.vuejs.org/v2/guide/syntax.html
##ディレクティブ
Vue.jsでは`v-`から始まる特別な属性C#とNode.jsを連携する
###C#とNode.jsを連携する
####EdgeJsを利用する
EdgeJsを利用しNode.jsからC#通信ができます。その逆もできます。.net4.6のみ。まだ.netCoreには未対応のようです。#####Node.js側
“`
const edge = require(‘edge-js’);const helloWorld = edge.func(‘cs’, function () {/*
async (input) => {
return “.NET Welcomes ” + input.ToString();
}
*/});helloWorld(‘Node.js’, function (error, result) {
if (error) throw error;
console.log(result);
});
“`
#####C#側
NodeJsからC#のメソッドを実行しデーターを渡します
【JavaScript活用】リベンジしてみた!!→QiitaAPIでバイクが好きがいるか調べてみたバイクが好きだ!と公言し、Qiita初投稿テーマとして「[【JavaScript活用】QiitaAPIを活用してバイク好きがいるか調べてみた](https://qiita.com/yui-kouy/items/ddcf699b743adedb32db)」を投稿しましたが、「さいごに」に記載したとおり、英語圏ではオートバイを指す言葉は[bike]ではなく **[Motorcycle]** なのだということがわかりました。
それならやることはひとつよね~。ということで **[Motorcycle]** で**リベンジ** しますッ:muscle::triumph:#リベンジ内容:fire::fire::fire:
せっかくのリベンジなので、少しチャレンジングな内容もやってやろうじゃないか!
ということで、前回からの処理条件の追加・変更箇所を赤字として記載したとおりに実行します。
なお、処理の順番も変更していますがjavascript演習 1日目/30日
覚えたことたち
“`javascript
window.addEventListener(‘keydown’,function(e){
キーを押した時の動作
})
“`htmlのaudioタグについて
“`javascript
const audio = document.querySelector(`audio[data-key=”${e.keyCode}”]`);
audio.currentTime = 0;
audio.play();
“`トランジションが終わったらクラスを外したりする
“`javascript
keys.forEach(key => key.addEventListener(‘transitionend’,function))
“`e.keyCodeとかも知らなかった
“`javascript
window.addEventListener(‘keydown’,function(e){
キーを押した時の動作
})
“`JSのコンテキストとスコープ
#JSの実行環境ってどうなっているの?
JSは主にブラウザで動作しています。
そのブラウザの中にJavaScript Engineが入っており、その中で動作するようになっています。##JavaScript Engine
JSエンジンにはいくつか種類がありますが今シェアが多いのはV8というエンジンみたいです。
###そのJSエンジンの中には何があるのか?
*ECMAScript*と*WebAPIs*が含まれています。
・**ECMAScript**
JSの言語仕様
・**WebAPIs**
DOMAPIやFetchAPIなどのJSの便利な機能が提供されている
このWebAPIsを通してブラウザを操作している#実行前にJSが用意するもの
・**コード**
あなたが書いたもの
・**グローバルオブジェクト(Windowオブジェクト**)
この中にWebAPIが含まれる
・**this**
オブジェクトへの参照を保持しているもの(コンテキストによって変化する)#JSの実行コンテキスト
**コードを実行する際の文脈や状況**のこと
要するにブラウザで実行する際のコードAzure Web PubSub と Node.js を組み合わせた軽いお試し
この記事は、以下の続きにあたる内容です。
●Azure Web PubSub を試してみるための下調べ(JavaScript を利用する方向で) – Qiita
https://qiita.com/youtoy/items/c1c9c2893e0e0fe29703記事執筆時点でプレビュー版の「[Azure Web PubSub](https://azure.microsoft.com/ja-jp/services/web-pubsub/)」を使ってみる話で、Node.js のプログラムと組み合わせてみたという内容になっています。
![Azure Web PubSub.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/9d397ce3-de6f-84d6-4d7d-b459927d1d48.jpeg)## サンプルプログラムを使ったお試し
[前の記事](https://qiita.com/youtoy/items/c1c9c2893e0e0fe29703)でも引用していた以下の記事のJavaScriptでHTML要素の高さを取得する方法
JavaScript で HTMLの要素の高さ / 幅を取得しようと思った時、outer やら avail やら offset やら、オブジェクトにやたらとプロパティが生えていて混乱したのでまとめました。
## 検証環境
iMac / iPad / iPhone にて 2021年10月時点での Google Chrome 最新版で検証しました。デスクトップ版の Chrome は v94 でした。
プロパティを全列挙するとごちゃごちゃして見づらくなるため、高さに絞って説明しています。幅を得る時は Height を Width に読み替えてください。
## ディスプレイのサイズ – screen オブジェクト
デバイスのディスプレイのサイズを得るには [screen オブジェクト](https://developer.mozilla.org/ja/docs/Web/API/Window/screen) を参照します。
#コンテキスト
まずは言葉の定義から説明すると、あるコードが実行される際の文脈や状況のことを実行コンテキストといいます。
例えばブラウザ上でコードを実行した場合は、windowオブジェクトとthisがJavaScriptエンジンによって準備されるのでこれらが実行可能となります。
実行コンテキストには3つの種類があります。
1. グローバルコンテキスト
2. 関数コンテキスト
3. evalコンテキスト
しかし、3のeval関数はES6から非推奨になっています。###グローバルコンテキスト
![スクリーンショット 2021-10-16 17.27.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1265227/edc58bd0-76d9-ad3c-663a-308667a6713a.png)グローバルコンテキストでは宣言した変数と関数、グローバルオブジェクト、thisの3つが利用できます。
お使いのエディタで適当なindex.htmlとmain.jsを作成した時main.jsの直下に書かれ【初学者向け】JavaScriptのsplitについて
今回はJavaScriptのsplitについて初学者の方向けに解説して行こうと思います。
##①splitについて
前回解説した**[join( )](https://qiita.com/yasu-hoshi/items/f1189fd78e86dd402c6c)**とは逆に文字列を区切り文字のところで分割して、それを配列できるメソッドになります**重要**
**point①文字列→配列に変換**
**point②指定した(任意の)”区切り文字”の箇所でバラバラに**区切り文字では「:」(コロン)や「-」(ハイフン) や「 」(空文字)なんかがよく使われます。
**☆区切り文字をsplit( )の引数として渡す際は「”」で囲いましょう**##②コードで解説
(1) 区切り文字に**「-」(ハイフン)**を指定
“`javascript
// 本日の日付を文字列で用意
const today = ‘2021-10-16’;// ハイフンの箇所で分割して配列に
coJavascriptの基本からおさらいしてみた
#変数
変数とは繰り返し使う値を格納しておく便利な入れ物です。プログラミングにおいて同じ事を繰り返す行為はバッドケースです。そのようなコードの冗長性を回避するためにも変数は避けては通れません。
変数を定義することを変数を宣言すると言います。変数の宣言方法は下記の3つになります。“`JS:JS
let a = 0;
const b = 1;
var c = 2;
“`
現在のES6からはvarの使用は非推奨になっております。
使い分けの詳細は別記事にて紹介します。#関数
関数とは、複数の処理をひとまとまりにしたものです。メソッドと呼ばれることもあります(後述のオブジェクトにて説明します)。
下記のコードで説明すると、helloという関数を実行すると{}の中身が実行されブラウザのログに「hello」という文字列が出力されます。
変数と同様に関数を定義することを関数を宣言すると言います。“`JS:JS
function hello() {
console.log(“hello”);
}
“`関数には「引数」というものが設定できます。また関数の呼び出し元に返す値を「戻
ES2022のArray.prototype.atは今の所遅い (2021/10/16時点)
# Array.prototype.atは何ができるの
Pythonのように, 負数を指定すると配列の後ろから取得できます. 特に最後尾の数個や, 文字列での末尾からの指定など, 待ち望まれていた機能です. (String.prototype.atもあります)
“`js
const arr = [1, 2, 3]
console.log(arr.at(-1)); // 3
“`## 速度
普通の添字で指定と速度を比べてみます.
バージョンは
“`text
> node -v
v16.9.0
“`ソース
“`js
const arr = […Array(1000*1000)].map((_, i) => i);
// for内の余分な計算は取っ払いたいので先に
const len = arr.length;
const len2 = len – 1;
const nlen = -len;// [] 昇順
{
const startTime = (new Date()).getTime();
for (let n = 0; n < 10【JavaScript】Qiita デイリー LGTM 数ランキング【自動更新】
# 他のタグ
[`AWS`](https://qiita.com/items/8c4aeec4fc98e4b1ba0e) [`Android`](https://qiita.com/items/9c6bf21a9880e242a0d6) [`Docker`](https://qiita.com/items/70aa655b580ed4f91756) [`Git`](https://qiita.com/items/36cfb2318aabe8b3f8df) [`Go`](https://qiita.com/items/16809f8444e0329bed8a) [`iOS`](https://qiita.com/items/da7fabcf41ed103528ae) [`Java`](https://qiita.com/items/9003b8beb47a46292028) [`JavaScript`](https://qiita.com/items/31e7365a838b890f7cc3) [`Linux`](https://qiita.com/items/7bcae94b268b
[React] React+TypeScript 実践
React初心者がReact+TypeScriptについて勉強した時のメモです。
# 型がないせいでバグっている例
ボタンを押したらJSONPlaceholderのTodoのデータをaxiosを使ってデータ取得するプログラム。
https://jsonplaceholder.typicode.com/todos“`typescript:App.tsx
import axios from “axios”;
import { useState } from “react”;
import { Todo } from “./Todo”;export default function App() {
const [todos, setTodos] = useState([]);
const onClickFetchData = () => {
axios.get(“https://jsonplaceholder.typicode.com/todos”).then((res) => {
setTodos(res.data);
cons関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた