0

Javascript インタープリターによって返された最後の値をプログラムで取得する方法を見つけようとしています。例を挙げると、Ruby のインタープリターには「_」があります。

1 + 2 #=> 3
_ #=> 3

同じことがJavascriptに存在するかどうか知りたいです。

編集:

おそらくこれを達成する別の方法。改行での式の継続をサポートする構文はありますか? このようなもの:

var a = \&
    1 + 2;
a #=> 3

式が改行で続くことをインタープリターに伝える、ある種の文字の組み合わせ (文字列連結の + など)。

目的:

この調査の目的は、スクリプト タグを使用して JSON データ構造をロードし、そのスコープ外から正常に割り当てることができるかどうかを確認することです。たとえば、次のようになります。

<script> var json_struct = </script>
<script src="http://domain.com/myjsonfile.json" type='application/json' ></script>

ちなみに、これは機能しません。驚くべきことに:)

4

1 に答える 1

0

目的:

この調査の目的は、スクリプト タグを使用して JSON データ構造をロードし、そのスコープ外から正常に割り当てることができるかどうかを確認することです。

ブラウザ ベースの JavaScript には、これを実行できる構造はありません。

その理由は、Netscape の初期の頃から、ブラウザは script タグを閉じると常にスクリプト コンパイラを開始していたためです。javascript、VBscript (IE のみ)、Tcl (適切なプラグインを使用) のいずれであってもかまいません。

つまり、不完全なステートメントは単に構文エラーとして扱われます。各<script>タグは、基本的に 1 つのファイルとして扱われます。

あなたがやろうとしていることは、Ruby でこれに似ています:

a = require 'one_plus_two.rb'

Rubyでは機能しないと思います。


ただし、Node.js などのモジュールをサポートする非ブラウザー環境では、モジュールをインポートするメソッドは実際には値 (通常はオブジェクト) を返します。したがって、node.js で次のようなことができます。

var a = require('my_data_file.js');

残念ながら、このrequire機能はローカル ファイルでしか機能しません。しかし、Node.js はオープン ソースであるため、いつでもフォークして、PHP などrequireからソースできるように変更できます。http://

残念ながら、あなたがしようとしているのがブラウザ スクリプトである場合、上記の点は意味がありません。

于 2012-11-23T15:06:08.657 に答える