元スレ+ JavaScript の質問用スレッド vol.106 +
JavaScript覧 / PC版 /みんなの評価 :
601 = :
>>588
var a = new String('a');
var b = new String('a');
alert ( a === b );
これはfalseになるぞ?
603 = :
StringはNumberを文字列に変換するだけのただの関数なのか
だったら頭文字を大文字にすんなよ(`o´)
604 = :
>>603
いいかげん、思い込みを喚き散らす前にECMAScriptの仕様書読んでこい
605 = :
というか、Stringオブジェクトのコンストラクタなのに
文字列を返す関数でもあるというチグハグ感がありえないですね
606 = :
>>605
JavaScriptのコンストラクタはすべて関数
607 = :
コンストラクタでもあり同時に普通の関数でもあるオブジェクトって
JavaScriptに特有のものなのでしょうか?
他のオブジェクト指向言語では、関数でもあるクラスなんてありえませんよね
608 = :
>>606
それは分かっています
609 = :
>>607
JavaScriptはクラスじゃねえし
610 = :
>>609
それも分かっています
611 = :
コンストラクタに関数の機能を持たせるのなら、
せめてオブジェクトを生産するファクトリにするべきでは。
というかそもそも文字列も全部オブジェクトにすればいいだけですが。
612 = :
>>611
コンストラクタに関数の機能をもたせてるわけじゃなくて
new演算子が関数をコンストラクタとして使ってるだけ
613 = :
>>611
そんなにJavaScriptの仕様が嫌いなら、使わなければ良いじゃん
それかES.nextの議論にでも加わって仕様改定してくれば?
614 = :
>>612
それも分かって言っています
615 = :
わかってます(棒)
616 = :
>>614
>>588を書いたときにはわかってなかったんだね
良かったな賢くなって
もうちょっとがんばればチンパンジーになれるかも?
617 = :
614は偽者ですよ
サイ本を買ってみました。
「文字列はオブジェクトではありません。では、なぜプロパティがあるのでしょうか。文字列 s の
プロパティを参照すると、 JavaScript は文字列値をオブジェクトに変換します」
なんと、文字列はメソッドを実行する際にStringオブジェクトに変換されていた!
それならますます最初からStringオブジェクトでいいですね
618 = :
サイボンってもっとリファレンス的なものかと思いきや、リファレンスはリファレンスで別冊にして、
本書にはコアな部分を書いてていいですね
ありがとうございました
619 = :
>>617
いまどきその仕組みが無いオブジェクト指向言語の方が少数派なんだけどねw
なんでそんな仕組みが必要なのかがんばって考えてみようw
620 = :
>>619
ラッパーオブジェクトのある言語って他に何がありますか?
いずれにしろラッパーオブジェクトを必要とするのは、
基本型がオブジェクトじゃない非モダン言語ってことになるので
「いまどき」というのはどうでしょうか
621 = :
>>620
>ラッパーオブジェクトのある言語って他に何がありますか?
いっぱいありますよw
623 = :
Object.keysを使いまくっていましたが、これはES5から実装されたとのことで
http://ja.wikipedia.org/wiki/ECMAScript
ここを見ると、operaやsafariがまだES3だそうです
ES5の機能は非常に魅力的ですが
safariはiosにも載っているし捨てるわけにはいかないのでは・・。
どうなのでしょうか?
624 = :
>>623
Wikipedia は情報も遅いし出典なくて不正確だから信頼しないほうがいいよ
ECMAScript 5 compatibility table
http://kangax.github.io/es5-compat-table/
ES5 features on iOS/Android's default browser
http://d.hatena.ne.jp/zentoo/20120819/1345378440
625 = :
>>623
http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/keys#.E4.BA.92.E6.8F.9B.E6.80.A7
他にもっと使いやすいのがあるかも
626 = :
今ではほとんど普通に使えるんですね
ありがとうございました
627 = :
今までsetHoge,getHoge式のアクセサメソッドを用意していたのですが、
JavaScriptにはアクセサをオブジェクトの内側に隠蔽できるアクセサプロパティを用意しているようです
こっちを使った方がいいですか?
見た目が少しシンプルになるのがメリットかなぁ
628 = :
javascriptで下駄雪駄いる?
大規模開発ではあったほうがいいのかな
629 = :
>>600
good parts、Amazonの評価もいいし良さそうですね
ありがとうございました
630 = :
strictモードではarguments.calleeが使えなくなっていますが
無名関数の再帰呼出しをするにはどうすればいいですか?
631 = :
>>630
無名関数じゃなくする
632 = :
ありがとうございました
633 = :
「bind() メソッドは、
オブジェクトに関数をバインド( bind )します。
オブジェクト o を引数にして、関数 f の bind() メソッド
を呼び出すと、 bind() メソッドは新しい関数を返します。」
と「JavaScript第六版」にありますが、
感覚的には、「関数にオブジェクトをバインド」しているように見えます
オブジェクトに関数をバインドするというのなら、返り値はオブジェクトであるべきでは?
bindは関数オブジェクトのメソッドなのだから、あくまで主体は関数だと思えます
634 = :
>>554
この件についてですが、
JavaScript第六版によると、
「一般的に、オブジェクトは、コンストラクタを参照する constructor プロパティを継承します。コン
ストラクタによってクラスが同一かどうかを判断するので、オブジェクトのクラスを表すものとして、この
constructor プロパティが使えます。」
とのことで、
一体prototype.constructorを誰が何のために使うのだろうと思っていたのですが、
オブジェクトのクラス判定に使えるのでした
ロギング処理に組み込んだらいいかな
635 = :
初心者です
if(form1.test.value ==("1","2","3"))
form1.test.valueが1か2か3だったら実行って感じのを作りたいのですが
どうしたらいいのでしょうか?
↑の間違いを教えてください
お願いします
637 = :
(["1","2","3"].indexOf(form1.test.value)>-1)
だった
638 = :
>>637
ありがとうございます!
動きました
639 = :
JSLintって使った方がいいですか?
641 = :
タブではなくスペースを使えってことか
それこそ余計なお世話だな
642 = :
手動でインデントしてた時代ならともかく、今はスペースでいいと思うな
643 = :
>>639
JSHintの方がマシ。JSLintは関数の頭で変数を全部宣言しろとかアホなことを言われる。
644 = :
可読性に優れるスペースが推奨されるのは当然
今どきトラフィック節約がどうたら言う奴はアホ
645 = :
タブなら削除したい時にタブを削除すればいいだけだけど
スペースだと何度もデリートしないといけない
コードの見た目上の同一性なんてコーディングする人間がタブの桁数を合わせればいいだけのこと
最重要なことではないのにコーディング上の不便が増している
タブをスペースにしろ厨にだけは同意できんわ
647 = :
try{
var data = JSON.parse(val);
} catch (e){
return;
}
var len = data.length;
このようなコードで、'data' used out of scope.とJSHintに言われましたが
tryの中で宣言しているのだから問題ないと思うのですが
どうなのでしょうか
648 = :
>>647
JavaScript の変数のスコープは関数単位じゃなかったっけ。
if や for の中で宣言しても関数内のどこからでも見える。
650 = :
言語仕様上どこからでも見えるとしても、コードを読む側にとっては内側ブロックで
宣言された変数を外で参照してると読みにくくない?
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.126 + (952) - [97%] - 2015/11/18 13:15
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.126 + (348) - [97%] - 2023/1/12 17:00
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.136 + (1001) - [97%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.105 + (1001) - [97%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.100 + (1001) - [97%] - 2012/6/13 22:46
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.125 + (1001) - [95%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [95%] - 2015/4/27 23:30
トップメニューへ / →のくす牧場書庫について