私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.84 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
もはや再帰関係なくなった。
var fibonacci = function () {
var memo = [0, 1];
var fib = function (n) {
var result = memo[n];
if (typeof result !== 'number') {
for (var i = memo.length; i < n; i++) memo[i] = memo[i - 2] + memo[i - 1];
result = memo[n] = memo[n - 2] + memo[n - 1];
}
return result;
};
return fib;
}();
fibonacciには後ろの関数が実行されてreturn のfibが入る。
var a = function(){/*1*/};
var b = function(){/*2*/};
var c = a;
こういうこと?
var fibonacci = function () {
var memo = [0, 1];
var fib = function (n) {
var result = memo[n];
if (typeof result !== 'number') {
for (var i = memo.length; i < n; i++) memo[i] = memo[i - 2] + memo[i - 1];
result = memo[n] = memo[n - 2] + memo[n - 1];
}
return result;
};
return fib;
}();
fibonacciには後ろの関数が実行されてreturn のfibが入る。
var a = function(){/*1*/};
var b = function(){/*2*/};
var c = a;
こういうこと?
これ実行すればわかるはず
var a = function(){ return true }();
var b = function(){ return true };
alert(a);
alert(b);
alert( b() );
//alert( a() ); ←実行するとエラーになる
var a = function(){ return true }();
var b = function(){ return true };
alert(a);
alert(b);
alert( b() );
//alert( a() ); ←実行するとエラーになる
ていうか再帰は使うべきでない
勉強にはいいかもしれないけど実践では使えない
for (i=0, j=1, k=0, fib=0; i<50; i++, fib=j+k, j=k, k=fib){
document.write("Fibonacci ("+i+") = "+fib+"<br>");
}
勉強にはいいかもしれないけど実践では使えない
for (i=0, j=1, k=0, fib=0; i<50; i++, fib=j+k, j=k, k=fib){
document.write("Fibonacci ("+i+") = "+fib+"<br>");
}
フィボナッチ数列は再帰を説明するときに使われるだけで
実際にフィボナッチ数列が必要な人なんかいないし、いても一般項使うだろうな
実際に使うのは
ファイルシステムやマトリューシカみたいな構造体へのアクセスが一番多いと思うわ
フラクタル画像を描くときなんかは再帰がないとちょっときつい
実際にフィボナッチ数列が必要な人なんかいないし、いても一般項使うだろうな
実際に使うのは
ファイルシステムやマトリューシカみたいな構造体へのアクセスが一番多いと思うわ
フラクタル画像を描くときなんかは再帰がないとちょっときつい
子孫ノードから特定のnodeTypeを持つノードを得るときにも再帰使うかな。
再帰使わない方法も出来ると思うけど即座に思いつかない。
再帰使わない方法も出来ると思うけど即座に思いつかない。
末尾再帰はループで除去できる
階乗とかフィボナッチ数列とかはこれ
中間の再帰はスタックを使う
でもライブラリ実装者とかでもない限り
再帰のパフォーマンスが問題になるケースなんて滅多にないと思うなぁ
階乗とかフィボナッチ数列とかはこれ
中間の再帰はスタックを使う
でもライブラリ実装者とかでもない限り
再帰のパフォーマンスが問題になるケースなんて滅多にないと思うなぁ
少なくとも俺は聞いたこと無いな。
自前で作るならこんな感じ。
function StringBuilder(A){
this.str = String(A);
}
StringBuilder.prototype = {
append: function(A){
return this.str += String(A);
},
toUpperCase: function(){
return this.str = this.str.toUpperCase();
},
toString: function(){
return this.str.toString();
}
}
a=new StringBuilder("abc");
a.toUpperCase();
// まとめて移植。問題あるかも。.nameとか。
// いや、すべて返り値になるのが問題だなw
for (var method in String.prototype){
if (typeof method === "function"){
StringBuilder.prototype[method.name] = function(){
return this.str = method.apply(this.str, arguments);
};
}
}
自前で作るならこんな感じ。
function StringBuilder(A){
this.str = String(A);
}
StringBuilder.prototype = {
append: function(A){
return this.str += String(A);
},
toUpperCase: function(){
return this.str = this.str.toUpperCase();
},
toString: function(){
return this.str.toString();
}
}
a=new StringBuilder("abc");
a.toUpperCase();
// まとめて移植。問題あるかも。.nameとか。
// いや、すべて返り値になるのが問題だなw
for (var method in String.prototype){
if (typeof method === "function"){
StringBuilder.prototype[method.name] = function(){
return this.str = method.apply(this.str, arguments);
};
}
}
まとめて移植は動かんかったわ。ごめん。
このスレか前スレぐらいにArrayのラップクラスのコードがあったからそれ見れば出来るはず。
おやすみ。
このスレか前スレぐらいにArrayのラップクラスのコードがあったからそれ見れば出来るはず。
おやすみ。
document.writeln(str.toUpperCase());
document.writeln(num.toFixed(3));
としないといけないというだけで十分じゃないのか?
仕様書読めば確実
document.writeln(num.toFixed(3));
としないといけないというだけで十分じゃないのか?
仕様書読めば確実
JAVASCRIPTクイックリファレンスのStringの項みたら不変って書いてあるな
英語でかっこつけてる癖に基本的な参考書も持ってないとか恥ずかしい
英語でかっこつけてる癖に基本的な参考書も持ってないとか恥ずかしい
そもそも数値型がmutableな言語なんて存在したっけ?
あるのならぜひ知りたい。
あるのならぜひ知りたい。
変数は書き換え可能だけど数値という値は書き換え可能じゃないよね。
num.toFixed(3) みたいなことはC言語でどうできるって?
文字列にしてしまえばmutableだからできるのは分かっているけど。
num.toFixed(3) みたいなことはC言語でどうできるって?
文字列にしてしまえばmutableだからできるのは分かっているけど。
>何て言うか、imutableかどうかが一番知りたい質問かな。
JavaScriptはクラスベースの言語じゃないと何度言えば…
それ以前にtoUpperCase();の使い方がおかしい事ぐらい調べればわかるだろ
http://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/String/toUpperCase
>toUpperCase メソッドは、大文字に変換された文字列の値を返します。
toUpperCase メソッドは、文字列の値、それ自身には影響を与えません。
JavaScriptはクラスベースの言語じゃないと何度言えば…
それ以前にtoUpperCase();の使い方がおかしい事ぐらい調べればわかるだろ
http://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/String/toUpperCase
>toUpperCase メソッドは、大文字に変換された文字列の値を返します。
toUpperCase メソッドは、文字列の値、それ自身には影響を与えません。
ECMAScriptにImmutableクラスなんて概念あった?
String.prototype.toUpperCaseは非破壊的でFAだと思うけど。
String.prototype.toUpperCaseは非破壊的でFAだと思うけど。
だからクラスという概念が無いから。もっとも書き換え可能/不能は
クラスとは独立した概念なので、オブジェクトの種類ごとに
どのような仕様になっているかをチェックすることはできると思う。
クラスとは独立した概念なので、オブジェクトの種類ごとに
どのような仕様になっているかをチェックすることはできると思う。
すみません
>503の質問どうかよろしくお願いします
>503の質問どうかよろしくお願いします
>>624
仕様ですが、実装がまちまちなので使うべきではありません。
http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#named-access-on-the-window-object
仕様ですが、実装がまちまちなので使うべきではありません。
http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#named-access-on-the-window-object
生ダコがくいてえええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ
2つの変数を文字列として連結するために、
str = "" + a + b + "です";
というように、先頭に "" を付けた式を JSLintにかけると以下のような警告が出ます。
Problem : Expected 'String' and instead saw ''''.
警告される意味が理解できないのですが、
何が問題であって、どう書けばいいと言ってるのでしょうか。
str = "" + a + b + "です";
というように、先頭に "" を付けた式を JSLintにかけると以下のような警告が出ます。
Problem : Expected 'String' and instead saw ''''.
警告される意味が理解できないのですが、
何が問題であって、どう書けばいいと言ってるのでしょうか。
>>631
それはやってみましたが、違いは無かったです。
それはやってみましたが、違いは無かったです。
空文字列で怒られてるんじゃね
String(a) + String(b) + "です"
とかできなかったっけ?
String(a) + String(b) + "です"
とかできなかったっけ?
<form method="post">
<input type='submit' name='hoge' value='1' accesskey='1'>
<input type='submit' name='hoge' value='2' accesskey='2'>
<input type='submit' name='hoge' value='3' accesskey='3'>
</form>
上記のようなボタンが3つある時、「1」のボタンをクリックする書式を教えてください
この並び方なら
document.getElementsByTagName("input").item(0).click()
で大丈夫なのですが、順番が入れ替わった時にどうすればわかりません
itemにvalue='1'を入れると押すことは押すのですが正しいボタンを押してるわけではないようです
もしくはこの書式に詳しい解説サイトありませんか?
<input type='submit' name='hoge' value='1' accesskey='1'>
<input type='submit' name='hoge' value='2' accesskey='2'>
<input type='submit' name='hoge' value='3' accesskey='3'>
</form>
上記のようなボタンが3つある時、「1」のボタンをクリックする書式を教えてください
この並び方なら
document.getElementsByTagName("input").item(0).click()
で大丈夫なのですが、順番が入れ替わった時にどうすればわかりません
itemにvalue='1'を入れると押すことは押すのですが正しいボタンを押してるわけではないようです
もしくはこの書式に詳しい解説サイトありませんか?
>>635
> シングルクォーテーション4つに見える
それってどういう意味(どういうロジックでそう見えるの)でしょうか?
こうすれば、エラーが出なくなりましたが
str= String("") + a + b;
奇妙に見えますが、これでも正しいですか?
> シングルクォーテーション4つに見える
それってどういう意味(どういうロジックでそう見えるの)でしょうか?
こうすれば、エラーが出なくなりましたが
str= String("") + a + b;
奇妙に見えますが、これでも正しいですか?
>>639
わかりやすくて見やすい書き方って何?
わかりやすくて見やすい書き方って何?
>>641
>たぶんjslintは文法的な事だけじゃなく、
>スタイリング(インデントや=とか+演算子の前後にはスペースを入れたり)
>とかのコードの見た目のチェックしていると思う。
そういうチェックはやってないと思うよ。
>たぶんjslintは文法的な事だけじゃなく、
>スタイリング(インデントや=とか+演算子の前後にはスペースを入れたり)
>とかのコードの見た目のチェックしていると思う。
そういうチェックはやってないと思うよ。
>>644
ああ、意図的にオプション設定すれば警告するようになるのか。
==や!=演算子を使うなとか、parseIntの第2引数を省略するなとかの警告メッセージも
オブション設定で外せるようにしてくれたらいいのに。
ああ、意図的にオプション設定すれば警告するようになるのか。
==や!=演算子を使うなとか、parseIntの第2引数を省略するなとかの警告メッセージも
オブション設定で外せるようにしてくれたらいいのに。
>>645
逆逆
標準はほとんど警告出る
> ==や!=演算子を使うなとか、parseIntの第2引数を省略するなとかの警告メッセージも
> オブション設定で外せるようにしてくれたらいいのに。
まさにそういうとこにこだわりまくった人が作ってるわけで
javascript the good partsとか読んで共感した人だけが使うためのツールと思った方がいい。
そうじゃなきゃ重箱の隅つつくような指摘されてかなりストレスたまると思う
逆逆
標準はほとんど警告出る
> ==や!=演算子を使うなとか、parseIntの第2引数を省略するなとかの警告メッセージも
> オブション設定で外せるようにしてくれたらいいのに。
まさにそういうとこにこだわりまくった人が作ってるわけで
javascript the good partsとか読んで共感した人だけが使うためのツールと思った方がいい。
そうじゃなきゃ重箱の隅つつくような指摘されてかなりストレスたまると思う
lintの目的わかってないんじゃねーの
堅牢なソースコードを作るためのこだわりを無駄というなら最初から使うなよ
堅牢なソースコードを作るためのこだわりを無駄というなら最初から使うなよ
堅牢なソースコードを作るためには、++ も -- も continue も使ったらいかんのですかいな
++, --は他の要素と組み合わさったとき副作用が生じる可能性がある
continueは意図しない制御の流れを作る
return文だって関数の末尾以外で呼び出すことはよくないとされている
堅牢なソースコードの意味わかってないんじゃないか
生産性よりも保守性を重視するってことだぞ
continueは意図しない制御の流れを作る
return文だって関数の末尾以外で呼び出すことはよくないとされている
堅牢なソースコードの意味わかってないんじゃないか
生産性よりも保守性を重視するってことだぞ
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.94 + (1001) - [97%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.88 + (1001) - [97%] - 2011/7/20 7:03
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.87 + (1001) - [97%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.86 + (1001) - [97%] - 2011/5/27 21:50
- + JavaScript の質問用スレッド vol.85 + (1001) - [97%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.83 + (1001) - [97%] - 2011/2/24 8:02
- + JavaScript の質問用スレッド vol.82 + (1001) - [97%] - 2011/1/19 7:54
- + JavaScript の質問用スレッド vol.81 + (1001) - [97%] - 2010/12/10 20:01
- + JavaScript の質問用スレッド vol.80 + (1001) - [97%] - 2010/11/9 2:17
- + JavaScript の質問用スレッド vol.141 + (881) - [95%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.134 + (1001) - [95%] - 2018/8/3 23:15
- + JavaScript の質問用スレッド vol.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.142 + (984) - [95%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.114 + (1001) - [95%] - 2014/5/3 10:45
トップメニューへ / →のくす牧場書庫について