JavaScript JScriptってどうよ
■ このスレッドは過去ログ倉庫に格納されています
0001Mr. J
NGNGhttp://pc.2ch.net/test/read.cgi/win/1021566844/l50
JScript.Netなんてのもありますよね。
JScriptはブラウザのあるところならどこにでもあるので軽く知ってお
くと便利な気もするんですけど。
↓Windows スクリプト テクノロジのヘルプから引用
JScript
インターネット向けに特別に開発された Microsoft の強力な
スクリプト言語です。JScript.NET は Microsoft の ECMA
262 規格に準拠した次世代の言語です。ECMAScript Edition
4 と併せて現在開発が進められている JScript.NET では、完
全コンパイル済みコード、型付き変数および型なし変数、クラ
ス (継承、関数のオーバーロード、プロパティ アクセサなど)、
パッケージ、クロス言語のサポート、.NET Frameworks へのア
クセスなど、さまざまな改良が組み込まれています。
JavaScript関係の勉強ができる所
ttp://member.nifty.ne.jp/aya/
ttp://www.tokumaru.org/JavaScript/index.htm
Script Encoderの落とせる所
http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/msdn-files/027/001/789/msdncompositedoc.xml
Script Decoderの落とせる所(使ったことないです)
http://www.astalavista.com/hacking/win/scrdec.shtml
0002デフォルトの名無しさん
NGNG<SHINE>
,,,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡< Delphiばんざーい
UU"""" U U \_________
</SHINE>
</XML>
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGブラウザで動作させられるし。
ファイルへのアクセスが出来ればもっと便利なんだけどな・・・
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGないよね...
0007デフォルトの名無しさん
NGNG0008Mr. J
NGNGご存じないのかもしれませんけどJavaScriptはclassを定義で
きるんです。
例えばどこにいてもWeb上にclass群を置いておけば再利用きる
んです。(インターネットを利用できれば)
外部読みこみの"*.js"のファイルは関数を投げ込んでおくのに
しか使えないわけではないです。
0009デルパイ氏ね ◆VB6.V49.
NGNG0010Mr. J
NGNGちゃんとできます。
ここにも書いてあるんですけど。
http://pc.2ch.net/test/read.cgi/win/1021566844/l50
//class Horse
function Horse(name, age, isMale){
this.name = name;
this.age = age;
this.isMale = isMale;
this.toString = HorseToString;
}
function HorseToString(){//Horse classのメンバ関数toString
var str = this.name + "は" + this.age + "歳(" + ((this.isMale) ? "オス" : "メス") + ")";
return str;
}
//class Zebra extends Horse
function Zebra(name, age, isMale, stripeCount){
//スーパークラスのコンストラクタ呼び出し
Horse.call(this, name, age, isMale);
//追加されたメンバ変数の初期化
this.stripeCount = stripeCount;
}
var h = new Horse("Bill", 4, true);
var z = new Zebra("Jane", 3, false, 382);
var fso, file, fileName;
fileName = "utuda.txt";
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.createTextFile(fileName, true, false);
file.writeLine(h);
file.writeLine(z);
file.close();
new ActiveXObject("WScript.Shell").run(fileName);
//参照を解除してごみにする。
fso = file = null;
0011デフォルトの名無しさん
NGNG単体ではファイルもビデオメモリも操作できない言語は
やはりマウスストーカーで終わり
0012Mr. J
NGNGclassとか継承とか言い出すと範疇を外れてしまうんです。
JScriptはWebだけじゃなくてWSHとかHTAとかFLASHとかいろんな所で使えますから。
0013デフォルトの名無しさん
NGNG走らせるのってあんまメリットない気がする
(ある意味mozillaはすごい。). 実行系を
事実上標準装備しているのはWindowsだけだし、
Windows上でOSの各種サービスを使うならVBScriptの
ほうがしっくりくる。構文とかはVBScriptより
JScriptのほうが好きだけど。
0014Mr. J
NGNGVBScriptについて詳しくないですし、私の知っている範囲で
はVBScriptは変数とかオブジェクトの宣言と同時に初期化で
きないので面倒なことになります。
0015デフォルトの名無しさん
NGNGそれどっちかというとWSHの力だよな。
JavaScript、JScript、JScript.NETを
WEBブラウザで使うのかWSHで使うのか.NET Framework上で使うのか
とかはっきりしないと中途半端なスレで終わるような気がするけど。
しかもWEBブラウザを対象にするなら板違いだし、
WSHなら他にスレあるけど盛り上がってないし。
0016デフォルトの名無しさん
NGNGでもsage
0017デフォルトの名無しさん
NGNG0018hc2 morf ◆8XVajy8s
NGNGなぜHSPスレでJScript・・・?
0019デフォルトの名無しさん
NGNGなくて、プロトタイプ方式じゃないの?
>>10 のコードもぱっと見でそんな感じするんだけど。
JScriptでなんか構文の拡張とかあったの?
0020デフォルトの名無しさん
NGNGJScript+WSH > 将来性なし+制限多し
JScript.NET > ウマー
0021Mr. J
NGNGWebとは関係なく走らせるんじゃなくてWebでもWSHでも
FLASHでもHTAでも再利用可能なオブジェクトを作成で
きるといいたいわけです。
0022デフォルトの名無しさん
NGNGJavaに近い構文のクラス定義が出来るようになったよ
0023デフォルトの名無しさん
NGNG無理だろ。
0024デフォルトの名無しさん
NGNG「プログラムできました」とかいって全コードを載せるのは控えて欲しい。
http://pc.2ch.net/test/read.cgi/win/1009175619/964-965
0025デフォルトの名無しさん
NGNGソース全く上げずに他言語攻撃するよりはまったりしていてよし。
0026Mr. J
NGNGWSHでなくてもclassは再利用できるんです。
ファイルの出入力を強調したいわけじゃなくてclassの再利用について強調したいんです。
>>10
を見てもらえばわかるようにクラスを作成してWeb上に置いておけば誰でも
いつでも再利用できるんです。
0027デフォルトの名無しさん
NGNG「全コード」って言ってるやん。
要は他の言語スレと同じ。要点まとめろと。
0028デフォルトの名無しさん
NGNGActiveXコントロールのがまだいいや
(´∀` )
002919
NGNGうーん、でも >>10 のコードを見る限り ECMA262 のプロトタイプ
の範疇だと思うんだけど、JScriptで追加されたクラス定義の
やりかたを誰か教えてくれないでしょうか。
0030Mr. J
NGNG申し訳ないです。プロトタイプ方式というのを知りません。
0031デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/columns/scripting/scripting07142000.asp
近いかな?ちゃんと読んでないけど。
0032デフォルトの名無しさん
NGNGclass Car
{
// クラス メンバを宣言します。この例では型を使用しましたが、
// 使用しなくてもかまいません。クラスを 'expando' としてマークすれば、
// これらのメンバを宣言する必要はありません。
var make : String;
var color : String;
var year : int;
// 古いコンストラクタ関数はそのまま。
function Car(make, color, year)
{
this.make = make;
this.color = color;
this.year = year;
}
// 関数をクラス内に移動します。
function GetDescription()
{
return this.year + " " + this.color + " " + this.make;
}
}
// 新しい Car オブジェクトを作成して使用します。
var myCar = new Car("Accord", "Maroon", 1984);
print(myCar.GetDescription());
http://www.microsoft.com/japan/msdn/columns/scripting/scripting07142000.aspより
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG割と望まれてる子だし。JS.NET。
0035デフォルトの名無しさん
NGNG0036Mr. J
NGNGはじめはどうなるかとドキドキして必死でがんばりました。
0037デフォルトの名無しさん
NGNGこれまでもあったのか?
0038デフォルトの名無しさん
NGNGVBScriptはMS製品の共通言語でしょ?
WordでもExcelでもASPでも使うし。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG中途半端に普及して・・・。
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG旧VBプログラム(Notプログラマ)コンバータ。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGSet Object=object
ああこれぞオブジェクト
0046デフォルトの名無しさん
NGNGJavaScriptとJScript、JScript.NETの共通部分なんて微々たる物だし、
JavaScriptならWeb、JScriptならWSH、JScript.NETなら.NETそれぞれのスレに話が行くし
0047デフォルトの名無しさん
NGNG>JScript.NETなら.NET
逝かないから困ってるんですが?
0048デフォルトの名無しさん
NGNGせっかく良スレになってきてるのに沸いてくるなよ。
004919
NGNGありがとう、そうか、classって識別子を導入したんだね。
>>30
クラス方式ってのはclass定義をあらかじめ行ってから
オブジェクトを生成するやり方。プロトタイプ方式は
オブジェクトを生成してから、あと付けでプロパティや
メソッドをがんがん追加していくやり方。
prototypeプロパティを使い始めるとクラスを使っていた
わけじゃないのが理解できると思う。
005019
NGNGを読むとわかるかも。それか、この人が書いた
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3871-3.html
か。
0051デフォルトの名無しさん
NGNG0052Mr. J
NGNG丁寧な解説ありがとうございます。実は、JavaScriptの勉強
をするのにJavaの本を買ったりして勉強したんです。という
かJavaScriptの解説本を読んでJavaScriptを理解できる人は
天才だと思います。なにしろ、いきなり関数の再起呼び出し
をやってるコードを示してVBより簡単とかいってますから。
普通new演算子が出てきた時点でJava本に走ると思います。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGだからな、スレ違いなんだよ。
0055デフォルトの名無しさん
NGNG糞スレばかり上がってるな(´∀` )
0056Mr. J
NGNGオブジェクト指向の考え方は書いたコードをいかに効率的に再利
用するかという要請によって誕生したと理解しているので、
Web, WSH, FLASHなどで再利用できるとしたら結構素敵かと思って。
知ったらみんなちょっとうれしいかな。なんて考えただけです。
0057デフォルトの名無しさん
NGNGスレ違い。
>>52
JavaScriptの本ってほとんどWeb系の本ばっかりだから、
純粋に言語として扱っている本がないのは致命的。
誰か久野先生以外の本、知ってたら教えて下され。
0058デフォルトの名無しさん
NGNG> 知ったらみんなちょっとうれしいかな。なんて考えただけです。
やっぱうれしがるのはWEB板の人かなぁなんて思うのよね…
0059Mr. J
NGNGJava言語プログラミングレッスン(上)(下)
参考としては
明解C言語入門
0060デフォルトの名無しさん
NGNGブラウザをフォームに見立てれば、立派なプログラミング言語だと思うが。
0061Mr. J
NGNGJava言語プログラミングレッスン(上)(下)
結城 浩 (著)
参考としては
明解C言語 入門編
柴田 望洋 (著)
0062Mr. J
NGNGどこいきゃいいんだ?
0063デフォルトの名無しさん
NGNGフサギコと心中も一興
0064デフォルトの名無しさん
NGNG周りの空気読めてないし。スレ違いだってみんなが指摘
しているのになぜ続けるか。再利用の話もうわっつら
な理解だけで言葉を並べているだけ。とりあえず、落ち着け。
Javascriptのスレがあること自体には反対しません。はい。
0065デフォルトの名無しさん
NGNG需要があれば自ずから(略
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068Mr. J
NGNG気が短くて申し訳ありません。
別に知識をひけらかしたくて参考文献を示したわけではないです。
ちょっとした皮肉のつもりでした。
JScriptは正規表現をサポートしておりWindows環境のあるところな
らどこでもつかえる便利な言語であると認識しています。Perlでい
いという人もいるでしょうけど普通Perlはサーバーよりの環境にし
か突っ込まれていません。それに、普通UNIXのあるところにしかな
いですしね。JScriptのほうが設置ベースが大きいのです。それに
会社のパソコンの管理なんかやるにしても開発環境が無料というの
は結構お得だと考えます。
0069デフォルトの名無しさん
NGNGつーかご高説は聞きたくない。実になる話をしてオクレ。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGWSHにしてもmozilla(rhino)にしてもそれぞれ独自のやり方でしか
ファイルアクセスできない。手軽に正規表現でテキスト処理できる
って感じじゃないんだよなぁ。だから常用のスクリプトにはしてないや。
使うのは、特定のファイルのコピーのやり方をメールで指示するときに
.jsファイルをメールに添付して「ダブルクリックしろ!」とかいうときくらいだ。
0072Mr. J
NGNGですから、そういうことについて語ってほしかったわけです。
別に俺が教えてやるといっているわけじゃないんですから。
0073デフォルトの名無しさん
NGNGhttp://sash.alphaworks.ibm.com/
http://www-124.ibm.com/developerworks/oss/sashxb/
007471
NGNG解説してくれんか? 理解できん。
>>73
IBMも処理系ネタ好きだよね。alphaworksみていると、それ業務で
やってんのかってのがいろいろあって楽しい。
0075デフォルトの名無しさん
NGNG皆にそういった話題をして欲しかったってことじゃないの?
絡んでるわけじゃないと思われ。
スレ終了に持って逝きたがる輩が多いからね。
0076Mr. J
NGNG申し訳ないです。あなたは別に煽ってもいませんし私の落ち度です。
ちょっと気が立ってました。反省してます。
0077デフォルトの名無しさん
NGNGttp://www.geocities.co.jp/SiliconValley-PaloAlto/5042/
JavaScriptで圧縮とか暗号化とかしてみる
ttp://www.goice.co.jp/member/mo/amuse/javascript/expert/
0078デフォルトの名無しさん
NGNG>リローダーっす。(悪用厳禁)
>http://www.hoops.livedoor.com/~himajin_ch/reloader.htm
0079デフォルトの名無しさん
NGNGECMAScript Language Specification, 3rd edition
http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM
書籍で個人的によかったのは
「JavaScript第3版」David Flanagan(オライリー)
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGJavascript + JScriptはともかくとして、
JS.NETは混同してはいけないだろう。
VBとVB.NETを同じスレで扱うようなもの。
0082デフォルトの名無しさん
NGNG何が問題かわからん
途中から説明してくれ
0083デフォルトの名無しさん
NGNG本気でオブジェクト指向しようとすると記述がものすごく面倒なのがつらい。
tokumaru.netの継承サンプルとかすごいよ。
実用的なコードを出すとプラットフォーム依存になってしまうがそれでも良いか。
Flashは知らないし。
あとJScript.Net使うくらいならC#を使いたいところ。
VSAではC#使えないらしいので、JScript.Netも出番ありか。
0084デフォルトの名無しさん
NGNGニュースサーバ msnews.microsoft.com
グループ名
microsoft.public.dotnet.languages.jscript
microsoft.public.dotnet.vsa
microsoft.public.inetsdk.programming.scripting.jscript
microsoft.public.scripting.jscript
compならcomp.lang.javascript
fjならfj.comp.lang.javascriptだが、ほぼ死んでいる。
0085デフォルトの名無しさん
NGNGコピペして.jsで保存>cscript hoge.js
function hoge1(){
this.showName = showName;
function showName(){return "hoge1";}
function showName2(){return "hoge1_";}
}
function hoge2(){}
function hoge2_showName(){return "hoge2";}
hoge2.prototype.showName = hoge2_showName;
function hoge3(){}
function hoge3_showName(){return "hoge3";}
hoge3.showName = hoge3_showName;
WScript.Echo(new hoge1().showName());
WScript.Echo(new hoge2().showName());
WScript.Echo(hoge3.showName())
//以下はエラーになる
WScript.Echo(new hoge1().showName2());
WScript.Echo(new hoge3().showName());
0086Mr. J
NGNGclass Horse{
String name;
int age;
boolean isMale;
Horse(String name, int age, boolean isMale){
this.name = name;
this.age = age;
this.isMale = isMale;
}
public String toString(){
return this.name + "は" + this.age + "歳";
}
}
class Zebra extends Horse{
int stripeCount;
Zebra(String name, int age, boolean isMale, int stripeCount){
super(name, age, isMale);
this.stripeCount = stripeCount;
}
public static void main(String[] args){
Horse h = new Horse("Bill", 4, true);
Zebra z = new Zebra("Jane", 3, false, 382);
System.out.println(h);
System.out.println(z);
}
}
0087Mr. J
NGNGこのヘルプはJScriptとVBScriptのランゲージリファレンスを含みます。
http://www.microsoft.com/japan/msdn/scripting/default.asp
昨日ここらを紹介しなかったのはまずかったと反省しています。
紹介すればもっと有意義な議論になったかもしれないのに。
0088デフォルトの名無しさん
NGNGJavaとか関係ないやん。
0090デフォルトの名無しさん
NGNG0091Mr. J
NGNGJScriptはコンストラクタと関数の区別がはっきりしないんです。
>>10のコードでメンバ関数はfunction HorseToString()だけで
function Horseおよびfunction ZebraはJavaで言うところのコ
ンストラクタに相当するといいたいわけです。
0092デフォルトの名無しさん
NGNGそれって誰か質問したんか?
「JScriptにコンストラクタはあるんですか?」とか。
なんだか>>1が講釈たれたくてageてるだけのスレに見えるんだよなぁ。
0093デフォルトの名無しさん
NGNGいや、その通りでしょ。
0094デフォルトの名無しさん
NGNGやった方がいいと思うよ。
この板で新しく立てるなら「JScript.NET」に絞ったほうがいいと思う。
0095デフォルトの名無しさん
NGNGWEBやFLASHで使えるって利点をアピールするのは正論だとは思うのだけど
やっぱWEB板の方がユーザも多いと思うし盛り上がると思うんだよね。
需要が無いのにage続けてるとうざがられるだけだし、
少しでも需要がある場所に行った方がよいと思う。
JavaScript、JScript、同.NETを一緒にして純粋に言語だけを語るのは
難しいんじゃないかなぁ。
しかも2chて質問するときに自分の環境を書くことなんてまず無いから
「それってJavaScriptの話?JScript?.NET?WSH使う?WEB?」
みたいな質問返しの応酬の予感。
0096デフォルトの名無しさん
NGNG0097Mr. J
NGNGなんか利点を強調したくて焦点が絞れなかったみたい。
別に講釈をたれたかったわけじゃなくて、
JScriptで面白いことをやれたらいいなと思っただけ。
Javaを持ち出したのは、JavaScriptのオブジェクト指向的な部分は
Javaからのパクリだからというのと自分の説明の仕方が悪くてまと
もな議論になっていないように見えたので、ここの人にはJavaを持
ち出して説明したほうがよかったと反省したから。
自分がたまにJavaのライブラリから考え方をパクッて使ったりするので、
CLRからも考えをパクると面白いかと思って。
とりあえず、私の不徳のいたすところで皆さんに迷惑をかけました。
私的にはには終了ということにしたいです。
なにか苦情とかがあればお答えしますけど。
0098デフォルトの名無しさん
NGNG>JavaScriptのオブジェクト指向的な部分はJavaからのパクリだからというのと
ぜんぜん違うよ。上のほうでクラス方式とプロトタイプ方式
っていう分類を持ち出していた人いたように、Javascriptは
Javaに比べてもっと即興的なもの。Javaみたいなクラス方式?
は、オブジェクトの集団を分類するでしょ。つまりなにかの
オブジェクトは特定のクラスに属する。で、言語としても
それをサポートする構文規則が存在する。でもJavascriptには
それはないの。
たとえば、>>10 の
var h = new Horse("Bill", 4, true);
ってあるけど、結局これは、hというオブジェクトに対して
プロパティとメソッドを付け加えるためのfunctionにあとで
再利用できるためにHorseという名前が付いているだけ。
これをJavascriptでは、コンストラクタとよんでいるけど
Javaのそれとは意味が違う。だから、生成したあとの
h が、Horseクラスに属するとかそういう概念はないわけ。
共通のメソッドとプロパティを持っているオブジェクトの
集団は生成できるし、それをひっくるめることでJavascriptにおける
クラスの概念としても別にかまわんけど、構文規則として
それをサポートしているものはないの。だから、Horse functionと同じ
内容で違う名前のHorse1 functionってのが
あったとして、
new Horse("Bill", 4, true);
new Horse1("Bill", 4, true);
は見分けられない。Horse.call(this, name, age, isMale);
も単にHorseを使って新たなプロパティの追加を行っているだけ。
prototypeを使い始めるとわかるとおもうけど、あれも
クラスの継承とは違うんだよ。荒い言い方すると、
あるオブジェクトから、あるプロパティを取り出すときに
名前探索する範囲を他のオブジェクトが持っているプロパティ
まで広げられるってだけ。だからinstanceofみたいな
キーワードもあるけど、使い方はクラス方式とはぜんぜん違う。
#以上は、ECMA262 3ed.までの話だから、4ed.ではclassが...
#とかいう突っ込みはなしね。
みたいなことを理解しないと、Javascriptのオブジェクト指向
の話はできないよ。ってことでちょっと空回りしていた感も
あるんで、1はしばらく頭冷やすのがよいとおもわれ。1が自分で
いうように終了しろとまではいわんけどね。戻ってくるもよし、
そのまま立ち去るもよし。
0099デフォルトの名無しさん
NGNGWSHはhttp://pc.2ch.net/test/read.cgi/tech/1010400289/
があるから、ココはJScript.NETスレにして再利用すれば?
0100100
NGNG0101デフォルトの名無しさん
NGNG.NETだと4ed.ベースになるみたいだし、スレタイからJavascriptは外したいとこ
だなぁ。.NET以外に実装し始めた処理系ってないよね?
とりあえず、このまま方向性決めずに放っておいて、.NETの話が多いなら
スレ立て直す、沈んでいくならそれもよし、Webネタ、WSHネタ
ばっかりだったら板違いってことでこのスレは沈めるってのは?
■ このスレッドは過去ログ倉庫に格納されています