1read 100read
2012年4月Windows207: お前ら、wsh使ってますか? Part8 (415) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Sleipnir/Grani 初心者質問スレ Part24 (907)
Microsoft Updateしたらageるスレ 72 (143)
XPのサポートが切れるまでにLinuxに乗りかえるスレ (582)
【打ち切り確定】 西川和久【赤っ恥王】 (705)
プロダクトキーを置いとくスレ5 (223)
ファイル比較ツール (314)

お前ら、wsh使ってますか? Part8


1 :10/12/19 〜 最終レス :12/04/08
こんなことコンピュータにやらせろよ。そう思ったことはありませんか?
簡易的な実行環境も含めて普通のOSだったら当たり前に備わっている自動実行。
Windowsの標準に備わっているそれがWSH(Windows Script Host)です。
また、ここではWSHだけに限らずWMI、ADSIなどのネタもOKです。
・煽りや荒らしは無視の方針で。基本的にsage進行です。
・ここでヒントを得て完成したスクリプトは、出来れば皆さんにお披露目してください。
 同じことで悩んでいる人のためになります。
・質問する際は、OS及び使用するコンポーネントのバージョンもお忘れなく。
前スレ
お前ら、wsh使ってますか? Part7
http://hibari.2ch.net/test/read.cgi/win/1190548945/

2 :
2 名前:名無し~3.EXE[sage] 投稿日:2007/09/23(日) 21:03:13 ID:2RosR0QK
●便利なリンク
Windows Script
http://www.microsoft.com/japan/msdn/scripting/default.asp
MSDN Library (オンラインドキュメント)
http://msdn.microsoft.com/library/ja/
Windows Script 5.6 ドキュメント ダウンロード (exe 形式; 1.67 MB)
http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/JA/scd56jp.exe
OLE/COM Object Viewer ダウンロード (exe 形式; 656 KB)
http://download.microsoft.com/download/win2000platform/oleview/1.00.0.1/NT5/EN-US/oleview_setup.exe
Sesame Script (スクリプト作成初心者向けコラム)
http://www.microsoft.com/japan/technet/scriptcenter/resources/begin/default.mspx
Hey, Scripting Guy! (スクリプトのQ&A・ハウトゥ集)
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/default.mspx
Windows管理者のためのWindows Script Host入門 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/operation/wsh01/wsh01_01.html
Windows XP に含まれるコマンドラインツールの紹介 (@IT内記事)
http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool.html
ADSI (Active Directory Service Interfaces) の特集記事全文
http://web.archive.org/web/20050309045811/http://www.galliver.co.jp/writing/nikkei_tokushu/wad002/index.html
●個人サイト
Windows Script Wiki
ttp://winscript.s41.xrea.com/wiki/index.php
趣味のJavaScriptなページ
ttp://homepage3.nifty.com/aya_js/
Windows Scripting Host Laboratory
ttp://www.roy.hi-ho.ne.jp/mutaguchi/wsh/
Tips - (小技にも満たない)微ワザ集
ttp://www1.u-netsurf.ne.jp/~tomo_c/tips/Scr002.html

3 :
●コンポーネント関連リンク
○Microsoft 製外部コンポーネント
DCOM
(98/Me ※リンク切れ) http://www.microsoft.com/japan/com/dcom/dcom98/dcom13.asp
(95)  http://www.microsoft.com/japan/com/dcom/dcom95/dcom13.asp
MDAC - データベース・メールボックス・WebDAV・バイナリの操作
http://msdn2.microsoft.com/ja-jp/data/aa937730.aspx
WMI(95/98/NT4.0) - 統一されたコンピュータオブジェクト化モデルを提供するスクリプティングAPI、リモート管理
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=AFE41F46-E213-4CBF-9C5B-FBF236E0E875
ADSI - Active Dictoryの機能を操作
http://www.microsoft.com/downloads/details.aspx?FamilyID=f4bf2bf6-ed15-4789-9c63-e849d530a6df&DisplayLang=ja
MSXML - XMLパーサ、SAX・DOM API、XSLT変換、POST/HTTPダウンロード
http://www.microsoft.com/downloads/details.aspx?familyid=993c0bcf-3bcf-4009-be21-27e85e1857b1
○サードパーティ製外部コンポーネント
BASP21 - メール、ファイルエンコード、文字コード変換、FTP/HTTPアップ、その他
http://www.hi-ho.ne.jp/babaq/basp21.html
Doodle2 - グラフィック変換、操作、描画
http://www.vector.co.jp/soft/winnt/prog/se219120.html
DynaCall - Win32APIコール
http://people.freenet.de/gborn/WSHBazaar/WSHDynaCall.htm
AutoItX - マウス・キーボード・クリップボード操作
http://www.hiddensoft.com/AutoIt/

4 :
●WSH(COM)参考書籍
「はじめてのWindows Scripting Host」 (株)アンク著 技術評論社
http://www.amazon.co.jp/gp/product/477410650X/
「[改訂版] VBScriptポケットリファレンス」
http://www.amazon.co.jp/gp/product/4774127930/
「使いながら覚えるWindows Scripting Hostプログラミング入門」 竹田英雄著 エーアイ出版
http://www.amazon.co.jp/gp/product/4871936678/
「Windows Scripting Host入門 with VBScript」 毎日コミュニケーションズ
http://www.amazon.co.jp/gp/product/4839900906/
「WSHで楽しむWindows95/98/NT4.0版 ウィンドウズ・スクリプティング入門 VBScript編」 メディアテック出版
http://www.amazon.co.jp/gp/product/4896270207/
「WSHクイックリファレンス」 羽山博著 オライリー・ジャパン
http://www.amazon.co.jp/gp/product/4873110068/
「Rubyを256倍使う本 邪道編」 arton著 ASCII
http://www.amazon.co.jp/gp/product/4756136036/
「ADSIスクリプトによるWindows2000システム管理 Windows2000管理者ガイドブック」ピアソン・エデュケーション トーマス・エック 著
http://www.amazon.co.jp/gp/product/4894712881/ (どちらかというとVBによる操作本?)
「標準ASPテクニカルリファレンス」山田祥寛著 SOFTBANK
http://www.amazon.co.jp/gp/product/4797314001/

5 :
●JavaScript、VBScript 以外のWSHで使える言語
TCLScript
http://tclscript.sourceforge.net/
Perl
http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl
Ruby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/
Python
http://www.python.jp/Zope/download
PHP
http://www.php.net/downloads.php
REXX
http://www.borg.com/~jglatt/rexx/win32/rxusrw32.htm

6 :
言いたいことも言えないこんな世の中じゃ


7 :
テンプレ乙

8 :
>>11 に無駄口さんが来るかな、来ないかな。

9 :
hosyu

10 :
Wscript.Echo("保守");

11 :
---------------------------
Windows Script Host
---------------------------
スクリプト: C:\Users\10\Desktop\10.js
行: 1
文字: 1
エラー: 'Wscript' は宣言されていません。
コード: 800A1391
ソース: Microsoft JScript 実行時エラー
---------------------------
OK
---------------------------

12 :
WSHで1番汎用的なのって結局vbsなんですか?

13 :
wsfだろ

14 :
>>13
一般的なデフォルトだと使えるのはVBSとJSCRIPTですよね?

15 :
wsfが何か解ってての発言ならそう
解ってなくての発言なら「wsfもデフォルト、しかもwsf内でVBSとJS、更に他のActiveScript対応言語が混在できる」と言っておく

16 :
日本語でおk

17 :
えっ

18 :
汎用的なんつー曖昧なことをいうからだ。
どれも何かの処理に特化したもんでもないし*それなりに*汎用的だ。

19 :
wsfはvbsより専用的?
jsはvbsより専用的?
一般的なデフォルト?
特殊なデフォルト?

20 :
vbsはvbscript専用。jsはjscript専用。wsfはvbscript、jscript両用なので汎用

21 :
>>20
rubyとかだと物足りないの?

22 :
>>21
使ってないから

23 :
rubyは一般的なデフォルトで使えないから汎用的でないんだよ

24 :
>>23
デフォルトだとJSCRIPTとVBSCRIPTは使えるけど、って事?

25 :
汎用的なデフォルトは一般的でないんだよ

26 :
>>25
うん
質問が悪かった
窓APIとかWMIいじるならrubyよりVBSのがいいって事だよね?

27 :
rubyはスレチガイ
http://hibari.2ch.net/test/read.cgi/tech/1170047838/l50

28 :
>>27
>>4は?

29 :
>>28
27ではないけど、書名にあるようにRuby側から見たらあくまで「邪道」
ただRubyやPerlそのものでは無くて
ActiveScriptRubyや、PerlScriptに依存した話なら
ここで良いのではと思う

30 :
窓APIとかWMIいじるならrubyよりPowerShellがいいって事だよ

31 :
わざわざwshでrubyしていいことあるのか?

32 :
HTAでActiveScriptRubyやPerlScriptやりたいならわからんでもないが

33 :
Temporary Internet Files に溜まっている容量を食う画像ファイルの削除方
var fs = new ActiveXObject( "Scripting.FileSystemObject" );
function d1(aaa)
{
if(fs.FileExists(aaa)) fs.DeleteFile( aaa );
}
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/07HBQI7X/*.jpg" );
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/07HBQI7X/*.gif" );
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/09CZH168/*.jpg" );
d1( "J:/Documents and Settings/inet2004user.ZISAKUPCAT1.001/Local Settings/Temporary Internet Files/Content.IE5/09CZH168/*.gif" );
たらたら
スマートではないな。

34 :
環境変数くらい使えw

35 :
そんなもんバッチファイルでやれや

36 :
バッチファイルとかDOS窓ひらくじゃん

37 :
それくらい最小化すればええがな

38 :
むしろ俺はWSHもcscriptでやるし、wscriptでもmsgbox表示するぞ
何かしらの表示があったほうが進行状況が分かって個人的に安心できる

39 :
いみふ 日本語使え

40 :
わかるだろw

41 :
color f0
ってやれば気にならねーよ

42 :
ついでに
title Temporary Internet Files に溜まっている容量を食う画像ファイルを削除中です...

43 :
>>38
バッチファイルからCSCRIPT.EXEで.vbsファイルを呼び出す手法は、私も良く使うほうだな。

44 :
個人的にはバッチファイルならJSかな
@if (0)==(0) @echo off
cscript.exe "%~f0" //Nologo //J:JScript %*
goto :EOF
@end
var args = new Enumerator(WScript.Arguments)
この辺まで個人的にテンプレ文だわ

45 :
>>44
//Jてなんだよ
やっぱバッチもVBSが楽だな
rem; & @cscript.exe "%~f0" //Nologo //E:VBScript %* & @goto :EOF

46 :
俺は拡張子でwscript.exeとcscript.exeを使い分けてる
.vbs、.js、.wshはwscript.exe、.vbc、.jcs、.cshはcscript.exeってね
C Shell等、別な物と被るなら他の拡張子でもいいし
エディタが拡張子で言語見分けてるから、.bat拡張子だと
中身がJSやVBSでもバッチファイルの強調表示や入力補完になっちゃうし

47 :
>>45
ごめん間違えたw Eで合ってる
VBSだとそういう書き方になるんだな

48 :
// jscriptでも1行でいけるね
@if (0)==(0) (@cscript.exe "%~f0" //nologo //e:jscript %*) & (@goto :eof) & @end
for(var iii=0;iii<WScript.Arguments.length;iii++){ WScript.Echo(iii + '-'+ WScript.Arguments(iii));};
new ActiveXObject('WScript.Shell').popup(WScript.Arguments.length);

49 :
>>45
コマンドエコーが玉に瑕だね

50 :
それほどの事でもないだろ

51 :
>>45
remの後って、セミコロン?
; だと上手く行かなくて、^ に変えたら上手く行ったんだけど…

52 :
昔はVBSのほうがドキュメントもそろってたけど、もう立場は逆転した感じ。

53 :
コロンだっちゃ

54 :
>>52
JavaScriptだとWEB関連でJSだとあやしいのがひっかかり検索しにくい困ったところ

55 :
ちょっと教えてください。
時刻の文字列から、合計の秒数を計算して表示しようとしてるのだけれど、数字によって表示がおかしくなります。
何か大事なことを忘れてるんでしょうか?
わけがわからないです。
oshl=new ActiveXObject('WScript.Shell');
var nsec=33.48 ;
nsec=nsec + 60;
oshl.popup(nsec);/ * なにも文字を付け足さないと表示は問題ない * /;
oshl.popup(nsec +''+ " 60を足した結果に、文字を付け足すと数字がおかしくなる");
var nsec=33.48 ;
nsec=nsec + 100;
oshl.popup(nsec);/ * なにも文字を付け足さないと表示は問題ない * /;
oshl.popup(nsec +''+ " 100を足した結果に、文字を付け足しても数字がおかしくならない");

56 :
わかりにくいかもしれないんで、書き直します。たとえば、関数の戻り値がおかしくなっちゃうのです。
test=function(n){
return( "合計 "+ (33.48 + n)+ "" + " 秒です");
};
oshl=new ActiveXObject('WScript.Shell');
n=60;
oshl.popup( test(n));// この場合は、数字がおかしい。
n=100;
oshl.popup( test(n));// この場合は、数字は問題ない。

57 :
ぐぐったら、これがjavascriptの仕様なんだとw そ、そんな馬鹿なと思ったけど。
少数を含む数値を1000倍にしといて整数にしてから計算して、1000で割ることにしました。まんどくせえw
test=function(n){
return( "合計 "+ (33.48 + n)+ "" + " 秒です");
};
test2=function(n){
return( "合計 "+ (((33.48)*1000 + (n*1000))/1000)+ "" + " 秒です");
};
oshl=new ActiveXObject('WScript.Shell');
n=60;
oshl.popup( test(n));// 数字がおかしい。
n=60;
oshl.popup( test2(n));// 数字は問題ない。

58 :
nが文字列になる瞬間に数字が変わってるね。
「return n;」だと異常ないのに、「return n+"";」だと循環小数になる。
こっちでもっと良い解決方法が無いか15分くらい探してみたけど、見付からなかった……。
あと、returnは関数ではなくて文なので、「return(n);」でなくて「return n;」の方が良いと思う。

59 :
「return n;」の前に「n+=33.48;」って書いて説明するの忘れてた……。
function test(n){
n+=33.48;
//return n;/*93.48*/
//return n+"";/*93.47999999999999*/
return "合計"+n+"秒です";
};
var oshl=new ActiveXObject('WScript.Shell');
oshl.Popup(test(60));

60 :
俺はVBSがメインでJSは多少しか使わないんだけど
MsgBox関数に相当するようなのはJSでは何?
デバッグ用によく使うんだけど、JS使うときいつも困る。

61 :
WScript.Echo()

62 :
>>59
return "合計"+Math.ceil(n*1000)/1000+"秒です";

63 :
// スクリプトコントロールのVbscriptで逃げられるかと思ったら、引き算がアウトだった。
// nilscriptもjscriptと同じく駄目。dmscriptで試すと、引き算を除いて、問題なしだった。
oshl=new ActiveXObject('WScript.Shell');
ovbscript=new ActiveXObject('ScriptControl');
ovbscript.Language = 'VBScript';
ovbscript.AddCode("Function vbscriptexecute(scommand):dim sret:Execute scommand:vbscriptexecute=sret:End Function");
sreteval=function(scommand){return ovbscript.Run('vbscriptexecute',scommand);};

64 :
n=33.48; nplus=60;
oshl.popup( (n + nplus)); oshl.popup( (n + nplus) + "どうですかjs");
oshl.popup( sreteval('n=33.48:nplus=60:sret=(n + nplus) & "どうですかvbs"'));
oshl.popup( sreteval('sret= (33.48 + 60) & "どうですかvbs"'));
n=1.01; nplus=1.1;
oshl.popup( (n + nplus)); oshl.popup( (n + nplus) + "どうですかjs");
oshl.popup( sreteval('n=1.01:nplus=1.1:sret=(n + nplus) & "どうですかvbs"'));
oshl.popup( sreteval('sret= (1.01 + 1.1) & "どうですかvbs"'));
n=1.01; nplus=-1.1;
oshl.popup( (n + nplus)); oshl.popup( (n + nplus) + "どうですかjs");
oshl.popup( sreteval('n=1.01:nplus=-1.1:sret=(n + nplus) & "どうですかvbs"'));
oshl.popup( sreteval('sret= ((1.01 - 1.1)+0.01) & "どうですかvbs"'));

65 :
@set @SHORT_CIRCUIT = true/* & (@title batdm:%~nx0) & (@dm.exe "%~f0" %*) & (@goto :eof) & @end */
// d-monkeyのdmscriptでも一行バッチが動いたわ。jscriptでも起動の部分だけ変えると動くね。

66 :
>>60
cscriptからだとダイアログ絡みはオブジェクトの管轄になっちゃう
俺はダイアログ使うようなのはVBS、テキストフィルタみたいなのはJSでやってるかな

67 :
>>60
関数作ればいいじゃん。
function msgbox(s,n){new ActiveXObject('WScript.Shell').Popup(s,n);};
msgbox("www");

68 :
スクリプトコンポーネント(WSC)内部から
呼び出し元のコンテキスト(グローバルオブジェクト)を取得することってできるかな。
WSC内のグローバルオブジェクトと
呼び出し元(例えばWSH)のグローバルオブジェクトは異なるんだよね。
現状WSH側から明示的にthisを渡しているけど、
できればこれを暗黙的にやりたいんだ。

69 :
>>55
小数点の桁合わせには toFixed メソッド使うといいよ。
return "合計 "+ (33.48 + n).toFixed(2) + " 秒です";

70 :
>>68
executeglobalつかえばできるんじゃね

71 :
>>70
WSC側でexecuteglobalを呼び出す限り
WSCのグローバルコンテキストで実行されるだけなんだよね(eval系は全部同じ)。
ちなみにJScript使っているんだけど
WSC側でevalするとWSCのグローバルコンテキストで評価される。
WSHのグローバルを受け取って(仮に変数wshに入れておくとする)
WSC側でwsh.evalとするとWSH側のグローバルコンテキストで評価される。
これをしたいがためにWSH側のグローバルオブジェクトが必要だった。
WSH側から明示的には渡せるけど、
WSC側から暗黙的に取得することは可能なのかなと思った次第っす。

72 :
通りすがりです
>>71
>WSH側から明示的には渡せるけど、
>WSC側から暗黙的に取得することは可能なのかなと思った次第っす。
これいろいろ探したけどダメだったな
>WSC側でwsh.evalとするとWSH側のグローバルコンテキストで評価される。
オレもこれやったな
wsh 側のメソッドを wsc 側で再定義して利用したとき気がついた

73 :
classはexecuteglobalできたがwscはだめみたいね

74 :
それってWSC側で、たとえばWSHのJscriptを使ってるときには、WSCの関数の中で勝手にWScriptオブジェクトを使い、
HTAから呼び出す場合は、locationを、エディタのマクロからだとEditorオブジェクトを使えるよう出来るって話でもある?
それが出来たらシンプルになるなぁ。
でも一回は外からオブジェクトを渡さないと無理なんでしょ?

75 :
>>69
もうちょっと教えてくれない? こういう処理でも問題ないのかな?
oshl=new ActiveXObject('WScript.Shell');
n=60;
s = "合計 "+ ((33.48 + n)-0) + " 秒です。 小数がだらだら続く・・・orz";
oshl.popup(s);
s = "合計 "+ ((33.48 + n).toFixed(13) -0) + " 秒です。.toFixed(13);トレビア〜ン!";
oshl.popup(s);
s = "合計 "+ ((33.48 + n).toFixed(14) -0) + " 秒です。.toFixed(14);・・・orz";
oshl.popup(s);
13桁にしとくと問題ないみたいだが。14桁だとまた出てくる。この境目に重大な謎が潜んでるですかね?
とりあえず((33.48 + n).toFixed(13) -0) って感じに書き換えて動かしていきます。ありがとう。

76 :
人間の考える小数とは違うんよ。
「浮動小数点数」ってのを知っとくといいよ。

77 :
>>76 いまぐぐってます。ありがとう。
とりあえず計算のあとには、 .toFixed(13)-0 をつけることにします。

78 :
>>74
現状、既定のメソッドを定義して
new ActiveXObject('foo.bar')(this)
という一行で済ましているよ。
とりあえず呼び出し側のグローバルさえ渡せば
WSC内である程度自由にできるから。
呼び出し側とWSCの連係で厄介なのは
グローバルオブジェクトの交換はできても
両者のスコープは完全に独立しているってこと
関数をどちらのコンテキストで実行するかで
スコープチェーンが異なってくるんだよね。
arguments.callerとか使うとハマるwww

79 :
>>78
WSCへthisで渡すってか。またひとつ勉強になった。ノシ

80 :
@set @s=1;/* & (@title batjs:%~nx0) & (@"cscript.exe" //nologo //e:jscript "%~f0" %*) & (@goto :eof) & @end */;g=GetObject("script:"+"C:\\g.wsc").init(this);
g.popup("cscriptでwscを使うバッチを1行でまとめてみた。");
/* g.wscの中身
<?xml version="1.0" encoding="shift_jis" ?>
<component><?component error="true" debug="true"?><public>
<method name="popup"/>
<method name="init"/>
</public><implements type="Behavior" id="Behavior"/>
<script language="JScript"><![CDATA[
var oshl=new ActiveXObject('WScript.Shell');
function popup(smes,nsec){return oshl.popup(smes,nsec);};
function init(othis){
if(typeof(othis.WScript)=='object'){WScript=othis.WScript;
}else if(typeof(othis.location)=='object'){location=othis.location;
};return this;
};
]]></script></component>
*/

81 :
大したことではないけど
popup メソッドのディスパッチIDを0にしておけば、
メソッド名も省略して呼び出せるよ。
これはJScriptではなくCOMコンポーネントの規約。

82 :
wscのほうで、 <method name="init" dispid="0"/>
にしておけば、スクリプトのほうで
g=GetObject("script:"+"C:\\g.wsc")(this);
でいいってことなんだ。
それが >>78
new ActiveXObject('foo.bar')(this)
の話なわけだ。
やっと理解できたw
やっぱり晒して添削を受けてみるもんだね。ありがとう。
さっきぐぐったら英語の記事で、dispid=0 in .WSC does not work in Vista がうんたらかんたらと出てきたがワケワカメ・・・

83 :
三陸産カットワカメ・・・

84 :
おまえはどこのワカメじゃ!

85 :
素人の質問ですみません。以下の記述で
〜〜〜
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
FilePATH = "C:\WINDOWS\system32\drivers\etc\hosts"
set PNTR_fullPATH = objFSO.GetAbsolutePathName( FilePath )
〜〜〜
オブジェクトがありません。: '[string: "C:\WINDOWS\system32\"]'
とエラーが返ってくるのですが、いまいち原因が分かりません。
すみませんが教えて下さい。

86 :
set要らない

87 :
あ・・・ありがとうございます!!

88 :
@echo off
ruby -x "%~0"
goto :exit
#!ruby
puts "hello"
で.batとrubyを混在させることができますが
同様に.vbsファイル中にbatのコードを記述するやり方があったら教えてください。

89 :
はぁ?逆じゃね?

90 :
>>89
そうだよな
>>88
batファイルの中に vbs のコードを記述するんだろ?
>>45 とかじゃね

91 :
100レスもないこのスレを読めばいいよ

92 :
逆ではないです。>>88の質問の通りです。

93 :
同様にって言うならrubyの中にbatを混在させてなきゃいけないだろ。
出来るのかどうか知らんが。
bat中にruby書いてる>>88の例から言うなら「逆に」等の接続詞が妥当。

94 :
どっちでも>>45でええんじゃね

95 :
中の概念崩壊?

96 :
var str = "abc";
typeof str は "string"
str instanceof Object は False
なのに str.constructor はエラーにならず String と出る
constructor プロパティは Object のメンバーのはず。
暗黙的な new String はどこで行われている?

97 :
適当な考えだが、
バリアント型なんで評価時にクラスが決定されるんでないのかね。
var x ="123"; // これだと string
さらに
x++; // こうすると number になる

98 :
>>96
ttp://msdn.microsoft.com/ja-jp/library/0y7dd8cx.aspx
> JScript の Object は特殊です。
> オブジェクトは Object コンストラクターで作成された場合にだけ
> Object のインスタンスであると見なされます。
つまり、StringはObjectの派生であるからObjectのメソッドが使えるのだが
incetanceofがObjectの直接のインスタンス以外を
Objectのインスタンスとして認めない、という話
JSではObjectを連想配列(ハッシュ、辞書)のように使うことがあるから
そのための配慮だと思われるが、ややこしいな

99 :
>>97,98
サンクスです。
仕様ということで頭に入れておけばいいのでしょうけれど
typeof や instanceof を使った条件分岐の際、
あいまいな理解だと予期せぬ動作を引き起こしそうですねw。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
次のOS 【 Windows8 】 に望むこと (938)
フォントを自分好みに調整するソフト ver4 (902)
Windows2000 SP5まだ(・ε・)?×7 (866)
【打ち切り確定】 西川和久【赤っ恥王】 (705)
Sleipnir/Grani 初心者質問スレ Part24 (907)
Windows7starter専用スレ (254)
--log9.info------------------
【2016年】オリンピック新種目議論スレ【に向けて】 (330)
【ソフトボール】江本奈穂6【みんな大好き】 (101)
「夜の」をつけて卑猥な雰囲気を醸し出すスレ@カナダ (135)
2008年オリンピックを北京から日本へ! (188)
オリンピックに野球とサッカーいるか?? (251)
長野オリンピック最高だったよな (509)
【 Θ _ Θ 】棟田スレ☆7っ (780)
ここだけバンクーバー五輪開催中のスレ (409)
【マリリン】カーリング☆本橋麻里応援スレ Part10【プリリン】 (503)
剣道をオリンピック種目にしよう (106)
【愛とメグ】福原愛と栗原恵【B型】 (205)
韓国野球、ついにオリンピックで金メダル!!! (385)
【世代交代】上村愛子→藤森由香【五輪のアイドル】 (662)
上村の凄さだけが印象に残った五輪だった3 (248)
【まんまる】目黒萌絵タン【おかめちゃん】 (524)
サッカー競技スレ (236)
--log55.com------------------
【サイト・SNS】感想を送る人専用スレ5【pixiv・Twitter】
同人友達に('A`)となるとき121
嫌いな文章や言葉34
上腕三頭筋を鍛えるスレ part12
同人友達がいない人20
暴走する公式サイドに嫌気の差した同人者27
◇◆メロンブックス・フロマージュ◆◇ 30店舗目【ワッチョイ無し】
なんでも相談&質問していいスレ5