質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

5回答

1046閲覧

Java Scriptの処理を何も見ずに書けるようになる方法を教えてください。

amanha

総合スコア11

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/06/06 08:19

こんにちは。今回、if文を使ってJavaScriptの勉強としておみくじを作りました。
if文については分かるのですが、functionやuse strict、addEventListnerといった関数は初めて聞いたのでqiitaに載ってあったコードのvar関数をlet関数に置き換えるくらいしかできませんでした。
そこでなのですが、先述の関数を覚えながら脳内だけでもコードを書けるようになる方法を教えてください。
よろしくお願いします。

(function(){
'use strict';

let btn = document.getElementById('btn');

btn.addEventListener('click', function(){
var n = Math.random()
if(n < 0.3){
this.textContent = '大吉'; // 30%
}else if (n < 0.45){
this.textContent = '吉'; // 15%
}else if (n < 0.60){
this.textContent = '中吉'; // 15%
}else if (n < 0.85){
this.textContent = '小吉'; // 15%
}else{
this.textContent = '凶'; // 15%
}

});
btn.addEventListener('mousedown', function(){
this.className = 'pushed';
});
btn.addEventListener('mouseup', function(){
this.className = '';
});
})();

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

何も見ず、ツールのアシストも使わず書く必要はないと思いますが、それでも記憶したいということであれば、効率よく覚える技術というのはあります。

苦労したものは記憶に残る

人間、いや動物の機能です。苦労していないものより、苦労したものに脳の能力を割くことにより、生存のための効率化をはかっています。わからなかったらすぐに人に聞くのではなく、多少時間をかけて考えよう思い出そうと努力することによって記憶に残りやすくなります。また、人の書いたものを何も考えずコピペしたり写経したりするより、自分で考えてコードを書いた方が効果的です。

繰り返したものは記憶に残る

これもそうです。めったに出会わないものより、頻繁に出会うものに能力を割くのが生存のために合理的です。

短期記憶と長期記憶

雑に言うと、動物の記憶装置には二種類あります。短期記憶をつかさどる海馬と、長期記憶を司る大脳皮質です。

海馬から大脳皮質への記憶の転送の新しい仕組みの発見 | 理化学研究所

新しく学習したものは海馬に記憶されますが、これは時間が経つと簡単に消えてしまいます。したがって、これを大脳皮質に移さなくてはいけません。上記リンクによると、記憶は学習した時点で大脳皮質に刻まれていますが、回路が切り替わるのに時間がかかります。そして、海馬からの刺激がそこで大きな役割を果たします。そのため、短時間で何度も繰り返すより、一定の期間をおいて繰り返す方が有利ではないかと推測されます。またこれは経験則とも合致します。

加えて、睡眠は記憶を整理し、脳をメンテナンスする大事な作業を行う時間と言われています。学習をした日は夜更かしをせず、きちんと睡眠をとることで定着しやすくなります

複数の方法で記憶する

目で見、声に出し、手を動かすことにより、集中力が増し、脳の広範囲な部分を使うために記憶が定着しやすくなります。意外とお思いでしょうが、手だけではなく、足を動かすことも効果的で、部屋をうろうろと歩き回りながら覚えるのは良いことです。

論理的に記憶する

addEventListner と漫然と記憶するのではなく、add = 加える、event = イベント、listener = イベントを受け取るものと言うことを意識し、それがどのように動作するのかを様々な方法で確かめることによって記憶しやすくなります。

語呂合わせを使う

listen の綴りが怪しい場合、「リスとエンジニアでイベントを待つ」のように語呂合わせを追加することにより、記憶の回路がその分増え、思い出しやすくなります。

投稿2020/06/06 09:03

編集2020/06/06 09:42
Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/06/06 10:16

「何も見ず、ツールのアシストも使わず書く必要はないと思います」とプログラミングする上での前提について述べた上で、人間(≒動物)の特性からくるであろう記憶術を挙げられたことに、高評価を入れさせていただきました。
amanha

2020/06/09 20:39

ありがとうございます。 「何もみず、ツールのアシストも使わず書く必要はないと思います」と前提を置かれた上で人間の特性を使った記憶術を教えていただけて、嬉しい限りです。
guest

0

先述の関数を覚えながら脳内だけでもコードを書けるようになる方法

これだけだと「確実な方法はありません」です。

だいぶ前の質問の「Q2」に対する返答で語られてますが、完全に覚えてる人っていないです。
「こういう機能があったな」くらいで、あとは機能そのものの仕様や類似機能を調べて使い方を模索します。

というより、何も目的のないアプリケーションってないので、設計ありきだと思っています。
何かの目的を達成するためにプログラムが組まれるので、提示のようなコードでも、元々の目的や要件があったはずで、その要件を満たすために組まれたものです。

それにそもそもですが、1つの目的を達成するための手段は1つではありません。
「覚える」という認識は間違いで、「目的を達成するために何が必要か考えて組み立てる」という認識でいてください。
目的を達成できて、バグなく(時に遅延なく)動いていれば「正しい」のです。

なので、トレーニングとしてやるべきは、「考えること」です。
「1つの目的や課題を設定して色んなやり方を考えて組んでみること」でしょうか。
ひとえに「”Hello,World”と出力せよ」という課題であっても何種類も書き方があります。実行手段も問わなければそれこそ無数に書けると言って良いでしょう。


あと細かいところ

var関数をlet関数

この2つは「関数」ではないのでは?

var

var 文は変数を宣言し、任意でそれをある値に初期化します。
let

強いてなら「文」ですね。

投稿2020/06/06 08:34

編集2020/06/06 10:05
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

手打ちしてれば覚えます

自分は基本的にどの言語も補完機能を使いません。
初めての触った言語はjavaでその時だけ使いましたが。

投稿2020/06/06 08:29

hentaiman

総合スコア6421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

何もみずに書けるようになる方法はひたすらプログラムのコードを書いていくしかないです。
何度も書いていくうちに処理の気付き等が出てきます。
こればかりは近道はないので地道にやっていくしかないと思います。

投稿2020/06/06 10:00

hiroo_mokumoku

総合スコア128

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

すでにソースがあるなら、一から自分で書いてどこが違うか見比べ
違う場所があれば、覚えてまた自分で一から書く・・・
を繰り返せば、すでにあるソースと同等のものが書けます。

投稿2020/06/06 08:26

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問