WikiChree.COM 新規   編集   添付   管理  



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

Pkript/トランスパイラ/対応構文 の変更点

#author("2026-09-04T00:15:43+09:00","default:guide","guide")
#author("2026-09-04T00:15:53+09:00","default:guide","guide")
* Pkript/トランスパイラ/対応構文 [#q8ff9e15]
トランスパイラが対応するJavaScript構文と、PHPへの変換規則一覧です。

#contents

** リファレンス [#da549452]

*** 構文対応一覧 [#q00cd455]
|~構文分類|~JavaScript記法|~PHP変換内容|
|演算子|** , **=|べき乗演算子 (** , **=)|
|論理演算|??|Null合体演算子 (??)|
|論理代入|??= , &&= , ││=|対応する代入式へ展開|
|ビット演算|& , | , ^ , ~ , << , >> , >>>|PHPのビット演算子へ変換|
|ビット演算|& , &#9474; , ^ , ~ , << , >> , >>>|PHPのビット演算子へ変換|
|オプショナル連鎖|a?.b , a?.[i] , a?.()|nullチェックを含む三項演算または中間評価へ展開|
|スプレッド構文|[...a] , {...a} , f(...a)|array_merge / unpack 構文へ展開|
|テンプレートリテラル|`Hello ${name}`|文字列連結 ( . ) へ変換|
|分割代入|let [a, b] = arr;<br>let {x, y} = obj;|リスト代入または個別プロパティ代入へ展開|
|関数引数|デフォルト引数 (a = 1)<br>残余引数 (...rest)|PHPのデフォルト引数・可変長引数へ変換|
|アロー関数|(x) => x * 2|function($x) use (...) { return $x * 2; } クロージャへ変換|
|オブジェクト|{ x, [key]: val }|連想配列構文へ展開|
|例外処理|try { ... } catch (e) { ... } finally { ... }|PHPの try-catch-finally 構文へ変換|
|正規表現|/pattern/flags|preg_match 等に対応するPCREパターン文字列へ変換|

*** 制御構文のラベル [#fa67233c]
JavaScriptのラベル付き break / continue は、PHPの多重ループ脱出仕様に合わせて階層数指定(break 2; 等)へ変換されます。

** 型の挙動 [#q91c8703]

*** 真偽値判定 (Truthy / Falsy) [#y8cc4fd4]
JavaScriptの真偽値ルール(空配列 [] や空オブジェクト {} は true、0 や 空文字 "" は false)に準拠した判定コードを生成します。

*** 文字列と数値の加算 [#d8932f9d]
+ 演算子は、両オペランドの型に応じて文字列結合( . )または数値加算( + )として適切に評価されます。

----
[[Pkript/トランスパイラ]] | [[Pkript]]