変数とは
JavaScript(に限らず多くのプログラミング)の変数は、何度も使うものを簡略化したり、記憶しておくために使うもの
関数や、関数の引数などもそれ自体は変数と同じような挙動をするので、とりあえずここではまとめて変数として扱う
基本的にJS自体の機能などで提供されているものなどの一部を除いて( require
など)、変数と呼ばれるものは全て定義する必要があり、定義したりなんとか準備する必要がある。そしてほとんどの場合は使用するよりも前に定義したりする必要がある
下のDiscord.jsで最も一般的な処理にも変数は何箇所も出てくる
jsclient.on('message', message => {
console.log(message.content)
})
まず1行目の最初で client
という変数を使っている。しかしこのコードの中では定義されていないので、これだけ実行すると ReferenceError: client is not defined
というエラーが発生する
Discord.jsを使うプログラムでの client
変数は多くの場合、Discord.jsのclientを指しているので以下のように定義する。ただしDiscord.jsを使う上では毎回同じものを書く必要があるので、深く考えず「決り文句」として理解すればいい
しかし他人が書いたコードを使用する場合は、 client
ではなく bot
など別の変数名にすることもあるので、推測して修正する必要がある
そして実際にボットを動かすには login
する必要もあるので、それも書き足して完全なコードにする
jsconst Discord = require('discord.js')
const client = new Discord.Client()
client.on('message', message => {
console.log(message.content)
})
client.login('token')
これで実際に動作する完全なコードになったので、出てきた変数を列挙してみる。Discord.jsを使うための「決り文句」に含まれる Discord
や client
、送信されてきたメッセージを表す message
などが主な変数である
ちなみに require
や console
も(完全に変数とは言えないが)変数の1種として捉えることができる。
ここで出てきたこの2つは、最初の方にも触れたNode.jsが提供しているものとなる。なので自分で定義していないにも関わらず使用できる
これらは一般的に「定義せずともどこからでも使えるもの」という意味でグローバルオブジェクトなどと呼ばれたりする