私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.105 +

みんなの評価 :
レスフィルター : (試験中)
質問させてください。
とある事情から、JavaScriptのデータ(配列やらオブジェクトやら)を、
「文字列として」出力する必要がでてきました。
つまり、
var data = {id:1, text:'Hello'};
var array = [1, "Hi"];
// data = ごにょごにょ...
// array = ごにょごにょ...
console.log(data); // => {id:1, text:'Hello'} と出力
console.log(array); // => [1, "Hi"] と出力
としたいのですが、可能でしょうか?
ちなみに、
var data = "{id:1, text:'Hello'}";
とするのはもちろんナシでお願いします。
とある事情から、JavaScriptのデータ(配列やらオブジェクトやら)を、
「文字列として」出力する必要がでてきました。
つまり、
var data = {id:1, text:'Hello'};
var array = [1, "Hi"];
// data = ごにょごにょ...
// array = ごにょごにょ...
console.log(data); // => {id:1, text:'Hello'} と出力
console.log(array); // => [1, "Hi"] と出力
としたいのですが、可能でしょうか?
ちなみに、
var data = "{id:1, text:'Hello'}";
とするのはもちろんナシでお願いします。
>>503
JSON.stringify
JSON.stringify
>>503
JSON.stringify
JSON.stringify
>>501-503
こんな便利なものが! ありがとうございます!
あと、たびたびすみません。類似の問題なのですが、
console.log(function(){var foo = 'boo';});
とした場合、Chromeではコンソールに
function(){var foo = 'boo';}
と表示されるのですが、
$('#input').val(function(){var foo = 'boo';}); // inputタグに出力
とした場合は、inputタグの値として表示させることができません。
(空文字? なのか、変化がありません)
こちらは何か方法はありませんでしょうか?
こんな便利なものが! ありがとうございます!
あと、たびたびすみません。類似の問題なのですが、
console.log(function(){var foo = 'boo';});
とした場合、Chromeではコンソールに
function(){var foo = 'boo';}
と表示されるのですが、
$('#input').val(function(){var foo = 'boo';}); // inputタグに出力
とした場合は、inputタグの値として表示させることができません。
(空文字? なのか、変化がありません)
こちらは何か方法はありませんでしょうか?
>>507
Function#toString()
Function#toString()
>>507
console.log は渡された引数を内部で toString などをして表示しているけど、
$('...').val() は引数に文字列型しか取らないので、
自分で toString なり JSON.stringify なりして文字列にすればいい
console.log は渡された引数を内部で toString などをして表示しているけど、
$('...').val() は引数に文字列型しか取らないので、
自分で toString なり JSON.stringify なりして文字列にすればいい
>>507
$('#input')[0].value = function(){var foo = 'boo';};
$('#input')[0].value = function(){var foo = 'boo';};
>>510
ごめん、いろいろ間違ってた
・JSON.stringify は Function オブジェクトについては使えない
・$('...').val() は関数も引数に取れる(けど使い方が違う)
.val() | jQuery API Documentation
api.jquery.com/val/
ごめん、いろいろ間違ってた
・JSON.stringify は Function オブジェクトについては使えない
・$('...').val() は関数も引数に取れる(けど使い方が違う)
.val() | jQuery API Documentation
api.jquery.com/val/
>>513
> とくに >>508 の方の方法は不思議ですね。なぜ[0].valueだと表示できるのか不思議でなりません^^;
String 型にキャストされる仕様だから。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/dom-ref/HTML/HTMLInputElement.html#HTMLInputElement-value
jQuery で引数のデータ型によって処理を変更する方法は、標準仕様と大分違うから惑わされないほうがいい。
> とくに >>508 の方の方法は不思議ですね。なぜ[0].valueだと表示できるのか不思議でなりません^^;
String 型にキャストされる仕様だから。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/dom-ref/HTML/HTMLInputElement.html#HTMLInputElement-value
jQuery で引数のデータ型によって処理を変更する方法は、標準仕様と大分違うから惑わされないほうがいい。
友人が
「これからはCoffeeScriptだ」
見たいなこといっててサーバサイドのスクリプトとかいじってるけどさぁ……。
世の中の多くはレガシーシステムだってことわかってんのかね。
そいつのCoffeeScriptとやらより、俺のJavaScriptの方が100倍は表現力・オブジェクト指向性たかいわ。
言語が先進的だからそれ使ってる自分も先進的。
んなことほざくガキとは絶対一緒に仕事したくねぇな。
「JavaScriptって汚くねぇか?」
とか言っちゃってさ。
その自分はCoffeeScriptでグローバル変数アホみたいに使ってて。
はぁ、もう勝手にやってろって感じ。
「これからはCoffeeScriptだ」
見たいなこといっててサーバサイドのスクリプトとかいじってるけどさぁ……。
世の中の多くはレガシーシステムだってことわかってんのかね。
そいつのCoffeeScriptとやらより、俺のJavaScriptの方が100倍は表現力・オブジェクト指向性たかいわ。
言語が先進的だからそれ使ってる自分も先進的。
んなことほざくガキとは絶対一緒に仕事したくねぇな。
「JavaScriptって汚くねぇか?」
とか言っちゃってさ。
その自分はCoffeeScriptでグローバル変数アホみたいに使ってて。
はぁ、もう勝手にやってろって感じ。
>>519
var 付けてなければグローバル変数のままでは?
var 付けてなければグローバル変数のままでは?
>>521みたいな奴がいるわけがない、と思ったら居た。
>>522みたいな奴がいるわけがない、と思ったら居た。
>>523みたいな奴がいるわけがない、と思ったら居た。
試験問題
次のうちクリックされたときに呼ばれるのはどれか
理由も述べなさい
var onclick = function(){alert('hoge')}
onclick = function(){alert('piyo')}
function onclick(){alert('fuga')}
次のうちクリックされたときに呼ばれるのはどれか
理由も述べなさい
var onclick = function(){alert('hoge')}
onclick = function(){alert('piyo')}
function onclick(){alert('fuga')}
>>528
イベントハンドラ未定義なのでどれも呼ばれません
イベントハンドラ未定義なのでどれも呼ばれません
>>529
そこは脳内変換で
そこは脳内変換で
これonclick = function(){alert('piyo')}だけなら動くんだな
onclickを新しく作っちまうとダメか
でも新しくつくったonclickもwindow.onclickなんだね?
window.onclickを作り変えるとダメ?どゆこと?
onclickを新しく作っちまうとダメか
でも新しくつくったonclickもwindow.onclickなんだね?
window.onclickを作り変えるとダメ?どゆこと?
Firefoxはonclickにgetter/setter設定されてるように見えるけど、
Chromeはちょっと違う感じだな
まあ動作的には似たようなもんだけど
Chromeはちょっと違う感じだな
まあ動作的には似たようなもんだけど
【環境】mac OS10.5.8 firefox16
【html ソース】
<html><div id="test">〜〜〜〜〜</div></html>
【Javascript】
var count = 1;
$(function() { $("#test").hover(function(){
count = 0;
console.log('reset:' + count);
setTimeout(countUp,3000,count);
});
function countUp(num) { num++;
console.log('count up:' + num);
setTimeout(countUp,3000,num);
}
というのをつくりました。基本的に何もしなければ3秒毎にcountの値を増やしていき、ログに出力、
divにマウスが乗ったらcountの値を0にリセットして出力、その後0からカウントアップ再開したいと考えました。
2→3→0(リセット)→1→2→・・・
という挙動を期待しているのですが、
2→3→0(リセット)→4→5→・・・
となってしまいます。関数countUpに変数countの値が渡らず、別系統でカウントアップがされているようなのですが、
何がどう間違ってるのか見当がつきません。
jQueryを使っているものの、中でやってることはjQuery的ではないので、こちらで質問しました。
スレチならすみませんが、宜しくお願いします。
【html ソース】
<html><div id="test">〜〜〜〜〜</div></html>
【Javascript】
var count = 1;
$(function() { $("#test").hover(function(){
count = 0;
console.log('reset:' + count);
setTimeout(countUp,3000,count);
});
function countUp(num) { num++;
console.log('count up:' + num);
setTimeout(countUp,3000,num);
}
というのをつくりました。基本的に何もしなければ3秒毎にcountの値を増やしていき、ログに出力、
divにマウスが乗ったらcountの値を0にリセットして出力、その後0からカウントアップ再開したいと考えました。
2→3→0(リセット)→1→2→・・・
という挙動を期待しているのですが、
2→3→0(リセット)→4→5→・・・
となってしまいます。関数countUpに変数countの値が渡らず、別系統でカウントアップがされているようなのですが、
何がどう間違ってるのか見当がつきません。
jQueryを使っているものの、中でやってることはjQuery的ではないので、こちらで質問しました。
スレチならすみませんが、宜しくお願いします。
それだと hover(function(){... が呼び出される度に
setTimeout の連鎖が追加されていく(clearTimeout してない)ので
2→3→4→5→・・・
と
0(リセット)→1→2→3→・・・
が同時並行的に出力される筈だが?
ちなみにそのコードだと
setInterval 使う方が管理は楽だろう
setTimeout の連鎖が追加されていく(clearTimeout してない)ので
2→3→4→5→・・・
と
0(リセット)→1→2→3→・・・
が同時並行的に出力される筈だが?
ちなみにそのコードだと
setInterval 使う方が管理は楽だろう
ありがとうございます。
取り急ぎclearTimeoutを入れ、関数に引数を渡さないようにすると意図どおりの動きになりました。
どうも引数の扱いも誤解してたみたいです。
setIntervalについてはこれから調べてみたいと思います。
取り急ぎclearTimeoutを入れ、関数に引数を渡さないようにすると意図どおりの動きになりました。
どうも引数の扱いも誤解してたみたいです。
setIntervalについてはこれから調べてみたいと思います。
カードゲームを作りたいのですがデータを記述する方法がわかりません
どうすればデータを作る事ができますか?
myData = new Array(41);
for (i=0; i<41; i++) myData[i] = i+1;
for (i=0; i<500; i++){
myA = Math.floor( Math.random() * 41 )
myB = Math.floor( Math.random() * 41 )
myBackup = myData[myA];
myData[myA] = myData[myB];
myData[myB] = myBackup;
}
myCard = new Array(5);
for (i=0; i<5; i++) myCard[i] = myData[i];
for(i=0; i<5; i++){
document.write("[",myCard[i],"]");
if (i < 4) document.write("-");}
これでランダムの数値を持ってきても、それをカードのデータに変換する方法が見つかりません
どうすればカードのデータに変換できますか?
どうすればデータを作る事ができますか?
myData = new Array(41);
for (i=0; i<41; i++) myData[i] = i+1;
for (i=0; i<500; i++){
myA = Math.floor( Math.random() * 41 )
myB = Math.floor( Math.random() * 41 )
myBackup = myData[myA];
myData[myA] = myData[myB];
myData[myB] = myBackup;
}
myCard = new Array(5);
for (i=0; i<5; i++) myCard[i] = myData[i];
for(i=0; i<5; i++){
document.write("[",myCard[i],"]");
if (i < 4) document.write("-");}
これでランダムの数値を持ってきても、それをカードのデータに変換する方法が見つかりません
どうすればカードのデータに変換できますか?
ちょっとした小技知りたいんですが
var hoge =[];
if(hoge['a']{'b'}=='unko')ほにゃらら
ってやるとhoge['a']は生成されてないからバグが発生しちゃいますが
皆さんこういう対処はどうやってますか?
i
f(hoge['a']){
if(hoge['a']['b']=='unko')ほにゃらら
}
というのは何か汚いように見えるんですが
var hoge =[];
if(hoge['a']{'b'}=='unko')ほにゃらら
ってやるとhoge['a']は生成されてないからバグが発生しちゃいますが
皆さんこういう対処はどうやってますか?
i
f(hoge['a']){
if(hoge['a']['b']=='unko')ほにゃらら
}
というのは何か汚いように見えるんですが
まっとうな方法
if (hoge['a'] && hoge['a']['b'] == 'huga') {}
少しトリッキー
var hage;
if ((hage = hoge['a']) && hage['b'] == 'hufa') {}
if (hoge['a'] && hoge['a']['b'] == 'huga') {}
少しトリッキー
var hage;
if ((hage = hoge['a']) && hage['b'] == 'hufa') {}
小技の前に、hogeを配列として使うわけじゃなければ初期化は var hoge = {}; のほうがいいだろ
hoge['a']{'b'}はまあタイプミスなんだろうけど
hoge['a']{'b'}はまあタイプミスなんだろうけど
トリッキーな方が通っぽくて職場でモテそうですね!
ありがとうございます!
はい、{'b'}はタイプミスで['b']です
ありがとうございます!
はい、{'b'}はタイプミスで['b']です
var hoge = hoge || {};
職場でモテる記述ならコレ
なんか雑誌で週刊モテるjavascript講座とかやってくんないのかね
職場でモテる記述ならコレ
なんか雑誌で週刊モテるjavascript講座とかやってくんないのかね



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.100 + (1001) - [97%] - 2012/6/13 22:46
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.106 + (1001) - [97%] - 2013/7/20 9:30
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.125 + (1001) - [97%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.141 + (881) - [95%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.122 + (116) - [95%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [95%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.126 + (348) - [95%] - 2023/1/12 17:00
トップメニューへ / →のくす牧場書庫について