WikiChree.COM 新規   編集   添付   管理  



トップ   編集 編集〔GUI〕 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   ログイン

Pkript/文法/変数 の変更点

#author("2026-08-31T22:11:30+09:00","default:guide","guide")
* Pkript/文法/変数 [#k29f5305]
#author("2026-09-04T00:05:55+09:00","default:mcp","bot-mcp")
* Pkript/文法/変数 [#k222d0b6]

Pkript における変数宣言、代入、スコープの仕様。

** リファレンス [#y072fb0a]
** リファレンス [#m6111734]

*** 構文 [#c09bc10a]
*** 構文 [#v5193e1f]

#pkript(highlight){{
#highlight{{
var name [= value];
let name [= value];
const name = value;
}}

|~キーワード|~再代入|~スコープ|h
|var|可|宣言されたブロックのローカルスコープ|
|let|可|宣言されたブロックのローカルスコープ|
|const|不可|宣言されたブロックのローカルスコープ|

- 宣言子を省略した代入(x = 1)は、現在のローカルスコープへの自動宣言として扱われる
- 改行が存在する場合は行末のセミコロンを省略可能
- 改行が存在する場合は行末のセミコロンを省略できる

*** グローバル変数 [#u5cf59b8]
#highlight{{
var a = 1
var b = 2
return a + b
}}

関数の外側で宣言した変数はスクリプト全体のグローバル変数となる。
*** グローバル変数 [#e8a4fa39]

- エントリポイント実行前に記述順で評価される
- 同一スコープ内で関数と同名の変数を宣言することはできない(エラー)
- 実行時の変更はそのリクエスト内のみ有効で、次のリクエストでは初期値に戻る
関数の外側で宣言した変数はスクリプト全体のグローバル変数になる。

|~項目|~仕様|h
|評価順|エントリポイント実行前に、記述順で評価される|
|参照範囲|前に書いた変数は参照できる。後ろに書いた変数は参照できない|
|関数の参照|初期値の式から関数を呼べる。関数は宣言順に関係なく参照可能|
|名前空間|関数と変数は同じ名前空間。同名の宣言はエラー|
|変更の寿命|let / var の変更はそのリクエスト内のみ有効。次のリクエストでは初期値に戻る|

** 使用法 [#oa8493be]

*** ブロック内で変数を再代入する [#l6f0fbb5]
** 使用法 [#w16f54c7]

#pkript(highlight){{
*** 3種類の宣言を使い分ける [#var_usage_declare]

#highlight{{
var a = 1;
let b = 2;
const c = 3;

b = 20;      // let は再代入できる
// c = 30;   // const は再代入するとエラー
}}

*** ブロック内で変数を再代入する [#var_usage_reassign]

#highlight{{
let count = 0;
for (let i = 0; i < 5; i++) {
    count += i;
}
return "<p>合計: " + count + "</p>";
}}

*** 定数を宣言して参照する [#q888c487]
*** 定数を宣言して参照する [#var_usage_const]

#pkript(highlight){{
#highlight{{
const MAX_ITEMS = 10;
const items = wiki.pages().slice(0, MAX_ITEMS);
}}

*** グローバル変数を関数から参照する [#var_usage_global]

#highlight{{
const KEYWORDS = ["function", "return", "const"];
let count = 0;

function plugin_hello_convert(e) {
    count = count + 1;
    return KEYWORDS.includes(e.args[0]) ? "keyword" : "no";
}
}}