「JavaScript/Global」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
M {{Nav}}
Ef3 (トーク | 投稿記録)
M document.write(1) VM92:643 Use of "document.write" is deprecated. Use jQuery or mw.loader.load instead.
48 行
さらに一歩推し進めて考えると、次の様に、計算式等もeval関数は処理をして、変数を呼び出す事も出来る。
<syntaxhighlight lang="javascript">
documentconsole.writelog( eval('100+100'), '<br />' ); // 200を表示
var s='Hello';
eval('s +=",World!"');
documentconsole.writelog( s, '<br />' ); // Hello,World!を表示
</syntaxhighlight>
 
61 行
var s = '{ "住所":"東京都", "年齢":28, "性別":"男" }'; // 仮に外部から取り出したとしたデータ
var o = eval('('+s+')'); // データを評価してJavaScriptデータに変換
documentconsole.writelog( o['年齢'] );
</syntaxhighlight>
 
99 行
Number.parseInt()の別名。
<syntaxhighlight lang="javascript">
documentconsole.writelog( parseInt('10') ); // 10を表示
documentconsole.writelog( parseInt('10', 8 ) ); // 8を表示; 8進法として解釈、
documentconsole.writelog( parseInt('0x10') ); // 16を表示; 0xで始まる場合は16進数として解釈。
documentconsole.writelog( parseInt('0177') ); // 177を表示; 0で始まる場合も10進数として解釈。 ※ES5 0を前置する8進数表現は ES3 で非推奨、ES5で廃止
documentconsole.writelog( parseInt('0o77') ); // 0を表示; 0oで始まる場合も10進数として解釈。
documentconsole.writelog( parseInt('0b10') ); // 0を表示; 0bで始まる場合も10進数として解釈。
documentconsole.writelog( parseInt('ZERO') ); // 例外にならず NaN を表示; 1文字も数値として解釈できない。
documentconsole.writelog( parseInt('3_14') ); // 3 を表示; _ を区切り文字とする記法には対応しない。
documentconsole.writelog( Number.parseInt === parseInt ); // Number.parseInt の別名。true を表示
</syntaxhighlight>
 
114 行
Number.parseFloat() の別名。
<syntaxhighlight lang="javascript">
documentconsole.writelog( parseFloat('10') ); // 10が表示
documentconsole.writelog( parseFloat('10.00') ); // 10が表示
documentconsole.writelog( parseFloat('0x10') ); // 16進数としては評価されない。最初の数字の「0」まで表示
documentconsole.writelog( parseFloat('10e+4') ); // 1000を表示
documentconsole.writelog( parseFloat('10E-3') ); // 0.01を表示
documentconsole.writelog( parseFloat('Infinity') ); // Infinityを表示
documentconsole.writelog( parseFloat('-Infinity') );// -Infinityを表示
documentconsole.writelog( parseFloat('NaN') ); // NaNを表示
documentconsole.writelog( parseFloat('Text') ); // NaNを表示
documentconsole.writelog( parseFloat('9n') );   // 99を表示
documentconsole.writelog( typeof parseFloat('9n') );// bigint でなく number を表示
documentconsole.writelog( typeof eval('9n') ); // bigint を表示
documentconsole.writelog( Number.parseFloat === parseFloat ); // Number.parseFloat の別名。true を表示
</syntaxhighlight>
 
133 行
Number.isNaN() とは動作が異なる。
<syntaxhighlight lang="javascript">
documentconsole.writelog( isNaN(NaN) ); // trueを表示
documentconsole.writelog( isNaN(Math.sqrt(-1)) ); // trueを表示
documentconsole.writelog( isNaN(Math.sqrt( Infinity/Infinity )) ); // trueを表示
documentconsole.writelog( Number.isNaN === isNaN ); // falseを表示; Number.isNaN ではない
documentconsole.writelog( isNaN("NaN") ); // trueを表示; Stringからnumberに型変換され評価
documentconsole.writelog( Number.isNaN("NaN") ); // falseを表示; number でなければ false と即断
</syntaxhighlight>
 
146 行
Number.isFinite() とは動作が異なる。
<syntaxhighlight lang="javascript">
documentconsole.writelog( isFinite(Infinity) ); // falseを表示
documentconsole.writelog( isFinite(100) ); // trueを表示
documentconsole.writelog( Number.isFinite === isFinite );// falseを表示 isFinite は Number.isFinite の別名ではない
documentconsole.writelog( isFinite(null) ); // trueを表示; Stringからnumberに型変換され評価
documentconsole.writelog( Number.isFinite(null) );// falseを表示; number でなければ false と即断
documentconsole.writelog( isFinite("Infinity") ); // falseを表示; Stringからnumberに型変換され評価
</syntaxhighlight>
 
171 行
実際に先ほどのURLをそれぞれの関数で変換してみる。
 
<source lang="javascript">
<nowiki>
documentconsole.writelog( 'http://ja.wikipedia.org/wiki/ネットスケープコミュニケーションズ' );
documentconsole.writelog( encodeURI('http://ja.wikipedia.org/wiki/ネットスケープコミュニケーションズ') );
documentconsole.writelog( encodeURIComponent('http://ja.wikipedia.org/wiki/ネットスケープコミュニケーションズ') );</nowiki>
 
実行結果は次の様に表示された。
 
<source lang="javascript">
<nowiki>
http://ja.wikipedia.org/wiki/ネットスケープコミュニケーションズ
http://ja.wikipedia.org/wiki/%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%BA
http%3A%2F%2Fja.wikipedia.org%2Fwiki%2F%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%BA </nowikisource">
 
日本語文字列以外にも、スラッシュ(/)等の一部の文字がencodeURIComponentでは変換されているのが分かる。
305 行
==== encodeURI(uri) ====
URL(URI)として有効な範囲で、文字列をURLエンコードする。
<source lang="javascript">
<nowiki>
// 変換して「JavaScript%E6%A8%99%E6%BA%96%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA」
encodeURI('JavaScript標準ライブラリ'); </nowikisource">
 
==== encodeURIComponent(uriComponent) ====
文字列をURLエンコードする。
<source lang="javascript">
<nowiki>
// 変換して「JavaScript%E6%A8%99%E6%BA%96%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA」
encodeURIComponent('JavaScript標準ライブラリ'); </nowikisource">
 
==== decodeURI(encodedURI) ====
encodeURIで行った変換を元に戻す。
<source lang="javascript">
<nowiki>
// 「JavaScript標準ライブラリ」に戻す
encodeURI('JavaScript%E6%A8%99%E6%BA%96%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA'); </nowikisource">
 
==== decodeURIComponent(encodedURIComponent) ====
encodeURIComponentで行った変換を元に戻す
<source lang="javascript">
<nowiki>
// 「JavaScript標準ライブラリ」に戻す
encodeURI('JavaScript%E6%A8%99%E6%BA%96%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA'); </nowikisource">
 
[[Category:JavaScript|ひようしゆんらいふらり Global]]