JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください
■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
+ JavaScript の質問用スレッド vol.135 +
■ このスレッドは過去ログ倉庫に格納されています
2018/07/31(火) 12:30:52.90ID:???
2018/10/19(金) 12:55:51.60ID:???
2018/10/19(金) 13:26:46.04ID:???
君たちどっか他のところ行ってくれませんかね…わざとなんだろうけど
2018/10/19(金) 13:35:11.85ID:???
喧嘩してるように見せかけて
両者とも何か共通の目的のためにやっているのだとしたら…
両者とも何か共通の目的のためにやっているのだとしたら…
2018/10/19(金) 14:24:05.50ID:???
jQuery厨は相変わらずうざいな。いよいよ余裕なくなってきたかw
2018/10/19(金) 14:48:22.63ID:???
> 俺は俺の思ったことを
事実ではなくて、希望を書いたらしいなw
事実ではなくて、希望を書いたらしいなw
2018/10/19(金) 15:34:31.64ID:???
だから「思う」って書いてるでしょ?
しつこいね君は
そもそも悪魔が事実だったら大事じゃん
最近勝手に煽られたと思い込む煽り耐性マイナスのやつ多いね
短期で余裕がないっつうか
しつこいね君は
そもそも悪魔が事実だったら大事じゃん
最近勝手に煽られたと思い込む煽り耐性マイナスのやつ多いね
短期で余裕がないっつうか
2018/10/19(金) 16:26:30.46ID:???
そっちじゃねーよw
> 親切な顔をして実際はポリフィルも自分で組めない
> jQueryの範囲でしか何もできない無能を作り出して
> 自分より優秀な人材が育たないようにしてる
↑これが事実ではなく、お前の希望だっていってんの
> 親切な顔をして実際はポリフィルも自分で組めない
> jQueryの範囲でしか何もできない無能を作り出して
> 自分より優秀な人材が育たないようにしてる
↑これが事実ではなく、お前の希望だっていってんの
2018/10/19(金) 16:45:06.99ID:???
お前らスレ違い
ここは品評スレじゃなくて、質問用スレ
回答者の価値観を問うところではない
いい加減に成仏しろよ
ここは品評スレじゃなくて、質問用スレ
回答者の価値観を問うところではない
いい加減に成仏しろよ
2018/10/19(金) 18:37:18.09ID:???
無理です
jQuery君は数年前からこのスレを見張っており生き甲斐なのです
jQuery君は数年前からこのスレを見張っており生き甲斐なのです
2018/10/19(金) 21:08:48.14ID:???
早いとこ1000まで埋めてくれ
2018/10/19(金) 21:37:13.65ID:???
.cssのファイル内の値を動的にできないでしょうか
HTML側はjsもphpも使用不可なのですが、
cssファイルは別サーバーに置ける為、使用可能です
HTML側はjsもphpも使用不可なのですが、
cssファイルは別サーバーに置ける為、使用可能です
611610
2018/10/19(金) 21:42:38.78ID:??? 具体的には、
タイマーで、ある特定の期間だけcssファイルで指定しているheightの値が変わるように仕組みを作りたいんです。
バッチファイル+タスクスケジューラでアップロードする方が現実的でしょうか?
タイマーで、ある特定の期間だけcssファイルで指定しているheightの値が変わるように仕組みを作りたいんです。
バッチファイル+タスクスケジューラでアップロードする方が現実的でしょうか?
2018/10/19(金) 22:59:11.14ID:???
>>611
サーバ側でクロンでも書けばいいじゃない
サーバ側でクロンでも書けばいいじゃない
2018/10/20(土) 00:28:12.31ID:???
2018/10/20(土) 01:09:53.02ID:???
2018/10/20(土) 02:53:32.82ID:???
>>614
> それが一般的な方法ぽいですね・・
いやいや、一般的ではないよ。
特定の期間以外はCSSファイル見てもわからないようにしたいっていうのなら話は違うが
cssファイルを動的に生成するのは一般的にはアンチパターンだよ
(ついでにいうとJavaScriptファイルも動的に生成しないほうが良い
必要ならばJSONデータを動的に生成してしようする)
>>611
> タイマーで、ある特定の期間だけcssファイルで指定しているheightの値が変わるように仕組みを作りたいんです。
「ある期間」っていうのが午前、午後やタイムセール、キャンペーン期間中みたいに
特定の言葉で表せるのであれば、以下のようなCSSを書く
div { height: 100px }
.sale div { height: 200px }
HTMLの<html>や<body>なんかのclassで現在の期間を表現する
例えば <body class=""> or <body class="sale"> みたいな感じ
ここまではCSSの範疇だからJavaScriptしらない人でも画面デザインだけ担当できる。
でJavaScriptで特定の期間を判断して<html>や<body>のclassを書き換える
用途は違うがModernizr (https://modernizr.com/) でも用いられているテクニック
見ての通りJavaScriptもCSSも静的で作れる
これが一般的な方法
> それが一般的な方法ぽいですね・・
いやいや、一般的ではないよ。
特定の期間以外はCSSファイル見てもわからないようにしたいっていうのなら話は違うが
cssファイルを動的に生成するのは一般的にはアンチパターンだよ
(ついでにいうとJavaScriptファイルも動的に生成しないほうが良い
必要ならばJSONデータを動的に生成してしようする)
>>611
> タイマーで、ある特定の期間だけcssファイルで指定しているheightの値が変わるように仕組みを作りたいんです。
「ある期間」っていうのが午前、午後やタイムセール、キャンペーン期間中みたいに
特定の言葉で表せるのであれば、以下のようなCSSを書く
div { height: 100px }
.sale div { height: 200px }
HTMLの<html>や<body>なんかのclassで現在の期間を表現する
例えば <body class=""> or <body class="sale"> みたいな感じ
ここまではCSSの範疇だからJavaScriptしらない人でも画面デザインだけ担当できる。
でJavaScriptで特定の期間を判断して<html>や<body>のclassを書き換える
用途は違うがModernizr (https://modernizr.com/) でも用いられているテクニック
見ての通りJavaScriptもCSSも静的で作れる
これが一般的な方法
2018/10/20(土) 07:00:23.39ID:???
2018/10/20(土) 07:29:14.73ID:???
俺は事実を素直に書いてるだけだから
>>579が間違いだから、間違いって書いただけ
>>579が間違いだから、間違いって書いただけ
2018/10/20(土) 10:12:37.03ID:???
>>615
なるほど。
>でJavaScriptで特定の期間を判断して<html>や<body>のclassを書き換える
しかし、セキュリティ的な問題か何かしりませんが
html側のサーバーにはjsを効かせる事はできません。
cssのみ可能なのと、そのcssの外部サーバーにはjsを置く事はできます。
なるほど。
>でJavaScriptで特定の期間を判断して<html>や<body>のclassを書き換える
しかし、セキュリティ的な問題か何かしりませんが
html側のサーバーにはjsを効かせる事はできません。
cssのみ可能なのと、そのcssの外部サーバーにはjsを置く事はできます。
2018/10/20(土) 10:29:58.68ID:???
>>618
その外部jsをhtml側から読むことはできない設定(?)なんだよね?
その外部jsをhtml側から読むことはできない設定(?)なんだよね?
2018/10/20(土) 10:41:21.10ID:???
2018/10/20(土) 12:45:09.49ID:???
>>618
じゃあCSSをPHPで書けば?
じゃあCSSをPHPで書けば?
2018/10/20(土) 12:58:19.01ID:???
2018/10/20(土) 12:59:39.61ID:???
2018/10/20(土) 18:10:38.35ID:???
意見も希望も主観には変わらないわけで、その定義に拘って議論するのは馬鹿馬鹿しい
2018/10/20(土) 18:19:53.51ID:???
2018/10/20(土) 22:51:18.80ID:???
>>625
もしくは.htaccessとかで-.cssが呼ばれた時-.phpを呼ぶようにcssを置くサーバーで偽装する
もしくは.htaccessとかで-.cssが呼ばれた時-.phpを呼ぶようにcssを置くサーバーで偽装する
2018/10/21(日) 01:24:35.87ID:???
628Name_Not_Found
2018/10/21(日) 19:12:28.26ID:PfpMCgsw 初心者です。
if (!args.length) { 処理 } の条件を日本語訳してもらえませんか?
argsは変数なんですが、lengthは変数じゃないです。
変数argsの長さじゃなかったら? でしょうか。。おねがいします
if (!args.length) { 処理 } の条件を日本語訳してもらえませんか?
argsは変数なんですが、lengthは変数じゃないです。
変数argsの長さじゃなかったら? でしょうか。。おねがいします
2018/10/21(日) 19:21:20.56ID:???
2018/10/21(日) 19:25:53.72ID:???
lengthは長さを数値で返す
数値をそのまま条件にすると
0は否、0以外は正。
それを!で逆転してるので
長さが0であれば、の意。
※argsが存在して配列や文字列などlengthメソッドが働く前提
数値をそのまま条件にすると
0は否、0以外は正。
それを!で逆転してるので
長さが0であれば、の意。
※argsが存在して配列や文字列などlengthメソッドが働く前提
2018/10/21(日) 19:31:48.58ID:???
>>630
ごめんlengthはプロパティだわ
ごめんlengthはプロパティだわ
632628
2018/10/21(日) 19:34:16.74ID:+KGIAcbR ありがとうございます!よくわかりました。これで先に進めそうです。またお願いします
2018/10/22(月) 16:24:37.89ID:???
適当に書くときはいいけど
慣れちゃうとちょっと怖いよね
args.lengthがundefinedでもnullでもfalseでも通っちゃうし
慣れちゃうとちょっと怖いよね
args.lengthがundefinedでもnullでもfalseでも通っちゃうし
2018/10/23(火) 20:39:26.75ID:???
>>633
それが排列であることを確定させているなら、問題はないかと
それが排列であることを確定させているなら、問題はないかと
2018/10/23(火) 21:09:50.10ID:???
排泄
2018/10/23(火) 21:20:03.47ID:???
NodeRedって流行ってるの?
知識ない自分の力量不足だけど使いにくい…
知識ない自分の力量不足だけど使いにくい…
2018/10/23(火) 21:23:36.40ID:???
2018/10/23(火) 22:49:46.08ID:???
2018/10/23(火) 23:39:33.33ID:???
>>638
簡単なUI作ったりするのは便利なんだけどDBとのやりとりとかExcelに出力したりさせようとしたら訳わからなくなって詰まった
こういうのをNodeRedでやろうとするのが間違ってるのかなぁと思ったり
簡単なUI作ったりするのは便利なんだけどDBとのやりとりとかExcelに出力したりさせようとしたら訳わからなくなって詰まった
こういうのをNodeRedでやろうとするのが間違ってるのかなぁと思ったり
2018/10/25(木) 12:47:18.40ID:???
2018/10/25(木) 14:43:57.61ID:???
Pythonを学習中です。
Webの事は全くの素人です。
スクレイピングや可視化する際、CSS XPath JavaScriptなどの事が分からなくて行き詰まってしまいました。
PythonとJavaScriptではじめるデータビジュアライゼーションという本で詰まりました。
知人にJavaScript第5版という古い本をもらいましたが、言語仕様が延々と書いてあるような感じで、自分には早過ぎました。
CSS、XPath、JavaScriptこの辺りを体系的に学べるおすすめの本あったら教えて欲しいです。
Webの事は全くの素人です。
スクレイピングや可視化する際、CSS XPath JavaScriptなどの事が分からなくて行き詰まってしまいました。
PythonとJavaScriptではじめるデータビジュアライゼーションという本で詰まりました。
知人にJavaScript第5版という古い本をもらいましたが、言語仕様が延々と書いてあるような感じで、自分には早過ぎました。
CSS、XPath、JavaScriptこの辺りを体系的に学べるおすすめの本あったら教えて欲しいです。
2018/10/25(木) 14:49:57.07ID:???
>>640
今でも読まれるたびに数えてんですかね?
今でも読まれるたびに数えてんですかね?
2018/10/26(金) 07:06:26.78ID:???
うろ覚えだが呼ばれるたびに数えてたことはなかっただろう
更新のたびに内部プロパティを更新してそれを読み出すような仕組みじゃなかった?
更新のたびに内部プロパティを更新してそれを読み出すような仕組みじゃなかった?
2018/10/26(金) 07:43:19.89ID:???
>>642
getterではなく、setter
getterではなく、setter
2018/10/26(金) 12:56:08.60ID:???
getterでもsetterでもなくね
2018/10/26(金) 13:05:10.89ID:???
>>641
HTML, CSS, JavaScript は、初心者用の本を読む。
CSS セレクターは、jQuery で学ぶ
または、CSS セレクター・XPath は、入門用サイトを見る
CSSセレクターは、jQueryの本に書いてあるけど、
XPathは、どの本にも書いていないから、入門用ウェブサイトを見る
XPathは重要度が低いから、無視してもよい。
CSSセレクターを使う方が、読みやすい
HTML, CSS, JavaScript は、初心者用の本を読む。
CSS セレクターは、jQuery で学ぶ
または、CSS セレクター・XPath は、入門用サイトを見る
CSSセレクターは、jQueryの本に書いてあるけど、
XPathは、どの本にも書いていないから、入門用ウェブサイトを見る
XPathは重要度が低いから、無視してもよい。
CSSセレクターを使う方が、読みやすい
2018/10/26(金) 20:12:27.73ID:???
プログラミングは体系的には学べない
分からなければ分かるようにならない
でもそこで諦めたらそこまで
「言語仕様が延々と書いてあるような感じ」と思ったのなら
分かったのが0ということではないはず
最悪書いてある日本語は読めるのだから、1万分の1は分かるだろう
なら5万回分読めばいい
そしたら1-(1-0.0001)**50000で0.9932637373893968で99%理解できる
分からなくてもほんの少しは分かるまで血を吐きながら無理やり頑張る
その繰り返しの修行で覚えるのがプログラミング
分からなければ分かるようにならない
でもそこで諦めたらそこまで
「言語仕様が延々と書いてあるような感じ」と思ったのなら
分かったのが0ということではないはず
最悪書いてある日本語は読めるのだから、1万分の1は分かるだろう
なら5万回分読めばいい
そしたら1-(1-0.0001)**50000で0.9932637373893968で99%理解できる
分からなくてもほんの少しは分かるまで血を吐きながら無理やり頑張る
その繰り返しの修行で覚えるのがプログラミング
2018/10/26(金) 20:44:33.09ID:???
俺もXPathは後回しでいい…ってかやらなくてもいいと思う。
昔はCSSセレクタより表現力高いからとか言われてたがよくも悪くもXML全般に使われる汎用仕様だからな。
HTML/CSS仕様に寄り添い、技術要素疑似セレクタも使えて素のJavascriptやjQueryなどでも手厚くサポートされているCSSセレクタ覚えたらWeb系技術以外扱わないならXPathなんて正直いつ使うんだっていう。
Javaとかやるなら別だけど…
あれか、Pythonと一緒にやろうとしたからPythonライブラリの都合に引っ張られちゃったんだな!
昔はCSSセレクタより表現力高いからとか言われてたがよくも悪くもXML全般に使われる汎用仕様だからな。
HTML/CSS仕様に寄り添い、技術要素疑似セレクタも使えて素のJavascriptやjQueryなどでも手厚くサポートされているCSSセレクタ覚えたらWeb系技術以外扱わないならXPathなんて正直いつ使うんだっていう。
Javaとかやるなら別だけど…
あれか、Pythonと一緒にやろうとしたからPythonライブラリの都合に引っ張られちゃったんだな!
2018/10/26(金) 21:02:05.71ID:???
650641
2018/10/26(金) 21:35:04.99ID:??? どうもありがとうございます
結果的にPythonスレとマルチポストになってしまっていたらごめんなさい。
>>646
PythonスレのRubyの方ですかね?
その節はありがとうございます。
初心者用というのはHTML5の初心者という事ですよね?
よく分かる〇〇とかいちばんやさしい〇〇だとか過去に読んだことあるんですが、その手の本ってパソコンそのものの初心者が対象なのか、
〇〇のコードを使ったらハンバーガーメニューが出せますとか、このコードを使ったらこういうレイアウトに出来ます。今流行りのスマホPC両対応のレスポシブなんちゃらのカッコいいホームページを作ろう、みたいな。
そういう本って理屈は置いておいて、カッコよさげなホームページが作れた。よかったね、っていう感じの本だから、
それぞれのコードの中身や用語の解説じゃないから結局提示されたcssのコピペだけで終わり訳もわからず応用が利かず結局何も身に付かなかったです。
オライリーからPythonの本が大量に出てるけどそんな感じの本があればいいんですが。
>>647
やっぱ甘えてますね、自分。
辛いけど、出来るようになりたいから読むしかないのかぁ。
結果的にPythonスレとマルチポストになってしまっていたらごめんなさい。
>>646
PythonスレのRubyの方ですかね?
その節はありがとうございます。
初心者用というのはHTML5の初心者という事ですよね?
よく分かる〇〇とかいちばんやさしい〇〇だとか過去に読んだことあるんですが、その手の本ってパソコンそのものの初心者が対象なのか、
〇〇のコードを使ったらハンバーガーメニューが出せますとか、このコードを使ったらこういうレイアウトに出来ます。今流行りのスマホPC両対応のレスポシブなんちゃらのカッコいいホームページを作ろう、みたいな。
そういう本って理屈は置いておいて、カッコよさげなホームページが作れた。よかったね、っていう感じの本だから、
それぞれのコードの中身や用語の解説じゃないから結局提示されたcssのコピペだけで終わり訳もわからず応用が利かず結局何も身に付かなかったです。
オライリーからPythonの本が大量に出てるけどそんな感じの本があればいいんですが。
>>647
やっぱ甘えてますね、自分。
辛いけど、出来るようになりたいから読むしかないのかぁ。
651641
2018/10/26(金) 21:35:51.39ID:??? >>648
Webサイト作りそのものには全く感心は無いんですが、Pythonを学ぶうちに作ったデータの可視化をWebでやりたくなりました。
Pythonを学んだら今までは怖かったJavaScriptも基本的な文法はPythonで書いた場合を考えながらやればJavaScriptでもSwiftでもObjective-Cも何となく理解出来るようになりました。
JavaScriptもWeb用のナニカじゃなくて、これもPythonと同じプログラム言語だと分かったのでおもしろくなってきたました。
XMLを弄るにもXPathが分かれば簡単に弄れそうなんですが、XPathそのものが難しい。
Chromeの開発者ツールの使い方も分からないままだし。
>>649
けど、正論だと思いました。
オライリーからHTML5という本が出てますけれど、7年以上前の本だからやめておいた方がいいでしょうか?
>>641 で読んでる本の最初のページにこんなイラストが載ってました。
https://i.imgur.com/H3vQCNy.jpg
まさに自分もこんな認識です。
Webサイト作りそのものには全く感心は無いんですが、Pythonを学ぶうちに作ったデータの可視化をWebでやりたくなりました。
Pythonを学んだら今までは怖かったJavaScriptも基本的な文法はPythonで書いた場合を考えながらやればJavaScriptでもSwiftでもObjective-Cも何となく理解出来るようになりました。
JavaScriptもWeb用のナニカじゃなくて、これもPythonと同じプログラム言語だと分かったのでおもしろくなってきたました。
XMLを弄るにもXPathが分かれば簡単に弄れそうなんですが、XPathそのものが難しい。
Chromeの開発者ツールの使い方も分からないままだし。
>>649
けど、正論だと思いました。
オライリーからHTML5という本が出てますけれど、7年以上前の本だからやめておいた方がいいでしょうか?
>>641 で読んでる本の最初のページにこんなイラストが載ってました。
https://i.imgur.com/H3vQCNy.jpg
まさに自分もこんな認識です。
2018/10/26(金) 22:05:29.26ID:???
>>651
セレクタを覚えるなら、jQueryよりCSSを覚えた方が良い
jQuery拡張記法を覚えても何にもならん
https://triple-underscore.github.io/selectors4-ja.html
XPathは今でもCSSセレクタ以上の事が出来るが、日本語の資料は多くないので、初心者向きではないだろうな
セレクタを覚えるなら、jQueryよりCSSを覚えた方が良い
jQuery拡張記法を覚えても何にもならん
https://triple-underscore.github.io/selectors4-ja.html
XPathは今でもCSSセレクタ以上の事が出来るが、日本語の資料は多くないので、初心者向きではないだろうな
2018/10/26(金) 22:10:26.33ID:???
>>645
Array(10).length = 1; // これはsetterでは?
Array(10).length = 1; // これはsetterでは?
2018/10/26(金) 23:44:44.27ID:???
getter, setterという場合、
Array(10).getLength();
Array(10).setLength(5);
などのようにメソッドの形を取る。
Array(10).length = 1;
は上のsetLengthとやることは同じだが、(実装はどうあれ)プロパティ形式を取っているのでsetterとは呼ばない。
なお説明に使っただけでArrayにgetLength、setLengthとあったメソッドは無い。
Array(10).getLength();
Array(10).setLength(5);
などのようにメソッドの形を取る。
Array(10).length = 1;
は上のsetLengthとやることは同じだが、(実装はどうあれ)プロパティ形式を取っているのでsetterとは呼ばない。
なお説明に使っただけでArrayにgetLength、setLengthとあったメソッドは無い。
2018/10/27(土) 06:58:31.07ID:???
TypedArrayのlengthはgetter,setterだが
Arrayのlengthは内部プロキシが特別に扱っている名前というだけ
Arrayのlengthは内部プロキシが特別に扱っている名前というだけ
2018/10/27(土) 08:54:32.87ID:???
2018/10/27(土) 10:10:23.05ID:???
658646
2018/10/27(土) 18:26:45.84ID:??? 漏れが、XPath を使うのは、CSS セレクターでできない場合だけ。
例えば、5ch の書き込み内のa タグを抜き出すなら、
このCSSセレクターでできるけど、
div.thread > div.post > div.message > span > a
a を含む、post_node だけを抜き出す場合、
div.message の子孫で、aタグを含むものがある場合、
そのaタグの祖先のdiv.post を抜き出す。
(自分の処理では、div.postを主体に処理している場合)
CSSセレクターでは、div.message div.post a
descendant は子孫、ancestor は祖先。
post_nodes = doc.xpath "//div[@class='thread']/div[@class='post']/div[@class='message']/descendant::a/ancestor::div[@class='post']"
子孫に何々要素がある場合の、その祖先を求めるとか、
条件が複雑で、CSSセレクターでは表せない場合だけ、XPathを使う
jQueryのCSSセレクター一覧表を見て、それでできなければ、XPathを使う
例えば、5ch の書き込み内のa タグを抜き出すなら、
このCSSセレクターでできるけど、
div.thread > div.post > div.message > span > a
a を含む、post_node だけを抜き出す場合、
div.message の子孫で、aタグを含むものがある場合、
そのaタグの祖先のdiv.post を抜き出す。
(自分の処理では、div.postを主体に処理している場合)
CSSセレクターでは、div.message div.post a
descendant は子孫、ancestor は祖先。
post_nodes = doc.xpath "//div[@class='thread']/div[@class='post']/div[@class='message']/descendant::a/ancestor::div[@class='post']"
子孫に何々要素がある場合の、その祖先を求めるとか、
条件が複雑で、CSSセレクターでは表せない場合だけ、XPathを使う
jQueryのCSSセレクター一覧表を見て、それでできなければ、XPathを使う
2018/10/27(土) 19:38:24.03ID:???
:has擬似クラスが仕様に入ったからXPathの出番はますます無くなる
2018/10/27(土) 22:40:17.34ID:???
>>659
これマジうれしい
これマジうれしい
2018/10/27(土) 23:59:35.53ID:???
jQueryは:hasに独自で対応しているから、JavaScriptでは
もうXPathの出番はなくなってるね。
もうXPathの出番はなくなってるね。
2018/10/28(日) 00:21:16.71ID:???
XPathってJavaScript以外で使えたっけ?
jQueryで:hasが使えるならもういらないような
jQueryで:hasが使えるならもういらないような
2018/10/28(日) 00:36:19.99ID:???
>>662
なに言ってんだ各言語にライブラリ出てるよXPathくらい…
なに言ってんだ各言語にライブラリ出てるよXPathくらい…
2018/10/28(日) 08:23:02.53ID:???
2018/10/28(日) 11:37:15.18ID:???
漏れは、Ruby のNokogiri で、XPath, CSS セレクターを使っている
2018/10/28(日) 13:38:53.56ID:???
>>655
文盲かな?
文盲かな?
2018/10/28(日) 13:39:15.20ID:???
>>664だった。
2018/10/28(日) 14:38:20.99ID:???
Proxy APIの話ではなくプロパティが設定されるときに働く
[[DefineOwnProperty]]内部メソッドをオーバーロードしてlengthを書き換えてることを
分かりやすく内部プロキシと言い換えただけなのにね
[[DefineOwnProperty]]内部メソッドをオーバーロードしてlengthを書き換えてることを
分かりやすく内部プロキシと言い換えただけなのにね
2018/10/28(日) 22:26:18.35ID:???
漏れ、って久しく見ないな
懐かしい
懐かしい
2018/10/29(月) 09:06:25.00ID:???
2018/10/29(月) 09:11:35.57ID:???
2018/10/29(月) 10:27:51.41ID:???
Proxyでのハンドリングもsetterと言うのならArray#lengthもsetterと呼んでいいと思うけど
普通JSでsetterって言ったらプロパティディスクリプタがアクセサタイプでsetにメソッドが入ってる状態を言うと思うけどな
普通JSでsetterって言ったらプロパティディスクリプタがアクセサタイプでsetにメソッドが入ってる状態を言うと思うけどな
2018/10/29(月) 10:29:06.09ID:???
>>671
いや、数値文字列と、lengthの2種類ともを特別に扱ってるんだよ
いや、数値文字列と、lengthの2種類ともを特別に扱ってるんだよ
2018/10/29(月) 12:34:14.87ID:???
>>672
あなたのいう、setterとProxyの違いは何だ?
lengthは余所から書き換えられる場面は多々あるが、lengthそのものはProxyを使うほどの機能があるとは思えんのだが
http://www.ecma-international.org/ecma-262/9.0/#sec-properties-of-array-instances-length
あなたのいう、setterとProxyの違いは何だ?
lengthは余所から書き換えられる場面は多々あるが、lengthそのものはProxyを使うほどの機能があるとは思えんのだが
http://www.ecma-international.org/ecma-262/9.0/#sec-properties-of-array-instances-length
2018/10/29(月) 19:36:10.52ID:???
でlengthはなんて呼んだら良いの?
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/length
これも直した方が良いってこと?
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/length
これも直した方が良いってこと?
2018/10/29(月) 19:41:22.88ID:???
MDNはprototype経由せずDateやらArray やらから直接生やされたメソッドを静的なメソッドと表現したりクラスベースの人に配慮した柔軟な記述見かけるよね。
2018/10/30(火) 06:56:22.75ID:???
2018/10/30(火) 08:34:44.71ID:???
>>677
> [[DefineOwnProperty]]内部メソッドをオーバーロードしてlengthを書き換えてることを
> 分かりやすく内部プロキシと言い換えただけなのにね
これがProxyの条件か?
ただの内部 プロパティを書き換えるだけでProxy扱い
しかも、Array(19).length = 1; 時に [[DefineOwnProperty]] が書き換わらんし、到底理解できんな
> [[DefineOwnProperty]]内部メソッドをオーバーロードしてlengthを書き換えてることを
> 分かりやすく内部プロキシと言い換えただけなのにね
これがProxyの条件か?
ただの内部 プロパティを書き換えるだけでProxy扱い
しかも、Array(19).length = 1; 時に [[DefineOwnProperty]] が書き換わらんし、到底理解できんな
679678
2018/10/30(火) 08:40:23.79ID:??? > しかも、Array(19).length = 1; 時に [[DefineOwnProperty]] が書き換わらんし、到底理解できんな
訂正する
Array(19)[1] 以降が削除されるので、[[DefineOwnProperty]] は確かに書き換わる
しかし、他所のプロパティ [[DefineOwnProperty]] が書き換わるだけで、lengthプロパティはProxyの動きをしていない
訂正する
Array(19)[1] 以降が削除されるので、[[DefineOwnProperty]] は確かに書き換わる
しかし、他所のプロパティ [[DefineOwnProperty]] が書き換わるだけで、lengthプロパティはProxyの動きをしていない
2018/10/30(火) 09:16:03.64ID:???
こういう事かな
const a = [];
a[0] = 1; // 668「a[0] はProxyなプロパティです」→OK
a.length = 0; // 668「a[0]を書き換えるa.lengthもProxyなプロパティです」→ん?
この場合、a.lengthを書き換えるa.fooを定義したら、a.fooもProxyになる
Proxyが感染していく
const a = [];
a[0] = 1; // 668「a[0] はProxyなプロパティです」→OK
a.length = 0; // 668「a[0]を書き換えるa.lengthもProxyなプロパティです」→ん?
この場合、a.lengthを書き換えるa.fooを定義したら、a.fooもProxyになる
Proxyが感染していく
2018/10/30(火) 12:07:55.19ID:???
hey YO! チェケラッチョ!
2018/10/30(火) 12:55:41.57ID:???
>>679
大きな勘違いしてるね、Arrayのインスタンスオブジェクトはlengthと言う通常のプロパティを持っているが
それと同時に数値文字列と"length"という文字列のプロパティ設定に関して特別な振る舞いをするんだよ
つまりProxyのようなのはArrayのインスタンスの事であって、
そのプロキシは"length"プロパティアクセスがあると、間接的にlengthプロパティを設定して配列の要素を調整すると言う動作をするんだよ
ただし、setterとは違うという話
大きな勘違いしてるね、Arrayのインスタンスオブジェクトはlengthと言う通常のプロパティを持っているが
それと同時に数値文字列と"length"という文字列のプロパティ設定に関して特別な振る舞いをするんだよ
つまりProxyのようなのはArrayのインスタンスの事であって、
そのプロキシは"length"プロパティアクセスがあると、間接的にlengthプロパティを設定して配列の要素を調整すると言う動作をするんだよ
ただし、setterとは違うという話
2018/10/30(火) 13:09:50.35ID:???
ようそこまで内部動作把握してるな
こういう人はそんなの当然って言うんだけど大半の人はそんなの無理
こういう人はそんなの当然って言うんだけど大半の人はそんなの無理
2018/10/30(火) 14:08:55.83ID:???
アニメスレに沸く小説板から来た設定厨を思い出しました。
2018/10/30(火) 19:02:56.34ID:???
2018/10/30(火) 19:11:18.70ID:???
2018/10/30(火) 19:19:02.36ID:???
>>686
誰もわかってくれないからって自己レスするな
誰もわかってくれないからって自己レスするな
2018/10/30(火) 19:23:08.67ID:???
>>668は確かにwrapperって感じだが、wrapperとsetterは両立出来るんだよなあ
2018/10/30(火) 20:13:36.59ID:???
わかっててスルーしてるにきまっとるじゃろ
2018/10/30(火) 21:00:05.07ID:???
ぶっちゃけ、>>653がsetterで実装できなくて、Proxyでなければ実装できない機能って何なの?
2018/10/30(火) 21:50:37.00ID:???
>>685
勘違いというか、全く分かっていなかったんだね
実際Arrayオブジェクトのlengthはsetterではないということが話の肝
Arrayのlengthは普通のオブジェクト固有のプロパティだ
Object.getOwnPropertyDescriptor( Array(1), 'length' )
// {value: 1, writable: true, enumerable: false, configurable: false}
参考までにTypedArrayのlengthは共通親クラスから継承したgetterだ
Object.getOwnPropertyDescriptor( Uint8Array.__proto__.prototype, 'length' )
// {get: ƒ, set: undefined, enumerable: false, configurable: true}
ならArrayのlengthへ値を代入したときの振る舞いなどはどう説明するのかといえば、
Arrayオブジェクトのプロパティ設定のトラップでlengthを特別扱いしてるということだ
そしてそれはもちろんsetterとは違う
言い換えればArrayオブジェクトはそのただ1点を除いて普通のオブジェクトと何にも変わらない
[ 'a', 'b', 'c' ]は{ '0':'a', '1': 'b', '2': 'c', 'length': 3 } と全く違いはない
ただたった一つ、[[DefineOwnProperty]]内部メソッドの振る舞いが違う、
プロパティアクセス時に'length'と数字プロパティへの設定を特別に監視するということだけが
ArrayをArrayたらしめてる理屈
勘違いというか、全く分かっていなかったんだね
実際Arrayオブジェクトのlengthはsetterではないということが話の肝
Arrayのlengthは普通のオブジェクト固有のプロパティだ
Object.getOwnPropertyDescriptor( Array(1), 'length' )
// {value: 1, writable: true, enumerable: false, configurable: false}
参考までにTypedArrayのlengthは共通親クラスから継承したgetterだ
Object.getOwnPropertyDescriptor( Uint8Array.__proto__.prototype, 'length' )
// {get: ƒ, set: undefined, enumerable: false, configurable: true}
ならArrayのlengthへ値を代入したときの振る舞いなどはどう説明するのかといえば、
Arrayオブジェクトのプロパティ設定のトラップでlengthを特別扱いしてるということだ
そしてそれはもちろんsetterとは違う
言い換えればArrayオブジェクトはそのただ1点を除いて普通のオブジェクトと何にも変わらない
[ 'a', 'b', 'c' ]は{ '0':'a', '1': 'b', '2': 'c', 'length': 3 } と全く違いはない
ただたった一つ、[[DefineOwnProperty]]内部メソッドの振る舞いが違う、
プロパティアクセス時に'length'と数字プロパティへの設定を特別に監視するということだけが
ArrayをArrayたらしめてる理屈
2018/10/30(火) 22:04:42.06ID:???
>>679のこの行がそもそもだいぶトンチンカン
>>Array(19)[1] 以降が削除されるので、[[DefineOwnProperty]] は確かに書き換わる
[[DefineOwnProperty]]は内部「関数」なのだから、書き換わったりしない、呼ばれる対象
そしてlength要素に設定時に適宜配列のプロパティが消されるから呼ばれるのではなくて、
length要素設定時にこれが呼ばれたときに間接的にプロパティを消してる、因果が逆
因みにプロパティが消されるときに呼ばれるのは[[Delete]]
[[DefineOwnProperty]] はこの場合関わらない
>>Array(19)[1] 以降が削除されるので、[[DefineOwnProperty]] は確かに書き換わる
[[DefineOwnProperty]]は内部「関数」なのだから、書き換わったりしない、呼ばれる対象
そしてlength要素に設定時に適宜配列のプロパティが消されるから呼ばれるのではなくて、
length要素設定時にこれが呼ばれたときに間接的にプロパティを消してる、因果が逆
因みにプロパティが消されるときに呼ばれるのは[[Delete]]
[[DefineOwnProperty]] はこの場合関わらない
2018/10/30(火) 23:07:23.33ID:???
>>691
へー知らなかった
へー知らなかった
694Name_Not_Found
2018/10/30(火) 23:28:54.54ID:ROO+RjWt そもそも、length に設定するのが、おかしい。
意味不明のソースコード
普通は参照しかしない
意味不明のソースコード
普通は参照しかしない
2018/10/31(水) 01:25:47.55ID:???
>>694
ザコは黙ってろ
ザコは黙ってろ
2018/10/31(水) 11:52:21.98ID:???
>>691
勉強になったわ
勉強になったわ
2018/10/31(水) 15:55:58.36ID:???
new Int8Array([1,2,3]).__lookupGetter__('length')
//=> f length() { [native code] }
[1,2,3].__lookupGetter__('length')
//=> undefined
ほんまやTypedArrayのlengthにはGetter設定されてるけどArrayは無い
//=> f length() { [native code] }
[1,2,3].__lookupGetter__('length')
//=> undefined
ほんまやTypedArrayのlengthにはGetter設定されてるけどArrayは無い
2018/10/31(水) 15:56:05.22ID:???
だからtypeof new Arrayは'object'なんだよな
そこしか違いがないから
そこしか違いがないから
2018/11/01(木) 02:16:21.76ID:???
大雑把にはわかっていたつもりだったけど
詳しい説明ありがたいわ
詳しい説明ありがたいわ
700Name_Not_Found
2018/11/02(金) 09:27:19.04ID:33ufQNJG jQueryの.nextUntil() をJavaScriptで書くのは難しいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 首相、就職氷河期世代の支援表明 週内に関係閣僚会議設置 ★6 [どどん★]
- 【速報】ドジャース・大谷翔平がパパに! 第1子となる「女児誕生」を報告 早朝から日米のファンが祝福★2 [冬月記者★]
- 【速報】石破首相はNHK番組で、日米の関税交渉「食の安全を譲ることはない」 [蚤の市★]
- あぼーん
- 【なおド】佐々木朗希 最長6回2安打2失点と好投も ドジャース救援陣が崩れサヨナラ負けで初勝利またもお預け [鉄チーズ烏★]
- 【TBS】『報道特集』で「死を選んだ理由は立花孝志」との被害者実名の遺書を公開… 立花氏は撮影取材求める★2 [冬月記者★]
- LAD @ TEX ★6
- 2025 SUPER FORMULA Lap6
- 【DAZN】フォーミュラGP【F1 F2F3 SF P】Lap1679
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap89
- こいせん 全レス転載禁止
- とらせん
- 【悲報】大阪万博➕89000 [616817505]
- 🏡💥🤛👊😅👊🤜💥🏡
- お前らってすぐハロー効果に引っかかるよな
- 日本人ミュージシャンの中孝介さんが不起訴処分、公衆浴場で寝てた男の性器を弄ぶ性的暴行疑いで逮捕 [249548894]
- 【大阪万博】独自規格、独自アプリ、広げたまま畳まない風呂敷、攻撃的な発表、悪いことは国のせい…なんかに似てる [245325974]
- 東浩紀「暇空氏の勢いを見ると多くの人が左派にウンザリしていたかがよくわかる」😲 [861717324]