+ JavaScript の質問用スレッド vol.123 + [転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
+ JavaScript の質問用スレッド vol.122 +(c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1420095379/
(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです) >>844
人手不足だからその会社の業績が怪しくならない限り必要なくなるということが無い >>846
取りあえずレスサンクス
俺的にはデベロッパー目線の説明よりエンドユーザー目線での説明が欲しかったが。
今までVer2.7.5をCDNで使ってたんだが、今後ヘッダ部にどういう<script>要素を記入すればいいのか、
これまでにVer2.7.5で作ってきた数学の記事のソースをどうすればいいのか、分からないことだらけだわ >>847
MathJax = {
chtml: {
matchFontHeight: false
},
tex: {
inlineMath: [['$', '$']]
}
};
MathJax.Ajax.config.path["Contrib"] = "//cdn.mathjax.org/mathjax/contrib";
MathJax.Hub.Config({
TeX: { extensions: ["color.js","AMSmath.js","AMSsymbols.js","[Contrib]/xyjax/xypic.js"] },
tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] }
});
このバージョン3用への書き換えが上手く行かない。。。。 この辺とか参考にならんかね?
もっと詳しくは総本山のドキュメントが一番参考になると思うけど
https://text.baldanders.info/release/2019/09/mathjax-v3-is-released/
まあ2までの書き方を忘れるか
2を使い続けてもいいんでない? >>852
サンクス。ググってもVer3用のページってあんまりヒットしなかったのによく見つけたな >>854
>>847使った。
color.js, AMSmath.js, AMSsymbols.js,
はVer3にあるせいか、
loader: {
load: ['[tex]/color', '[tex]/ams']
}
っていう風に書き換えてくれるけど、
"[Contrib]/xyjax/xypic.js"]
の部分は正しく処理されてないな。
MathJax.Ajax.config.path["Contrib"] = "//cdn.mathjax.org/mathjax/contrib";
が関係してるんだろうけど、この部分をもちゃんと正しく処理したい Ver3の読み込みにしても、Script要素
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/startup.js" id="MathJax-script"
と
id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
とが、例えばあるようだけど、
この”startup.js"と”tex-mml-chtml.js”の違いも分からん 教えてエロい人。
今からジャバスクリプトを始めようか悩んでます。
ジャバスクリプトをすっとばしてタイプスクリプトから始めるってのはありっすか? >>858
やることはそんなに変わんないと思うけどね
TSはJSわかってる前提のような気もするが 途中で送信してしまった
でもまあ、大丈夫なんじゃない?
Excelとか今後、VBA捨ててTSにするらしいし
そしたら、JSなんて知らずにTS書く人がたくさんになるんだろうし >>860
そうなんですか。タイプスクリプトを勉強します。
ありがとうございます。 <body onload="test">
<body onload="test()">
<body onload="test();">
いつもどれか迷う。
迷いを消せるコツはありますか? onload属性使わずにaddEventListenerする >>867
onload属性に渡すのは関数なんだよ
1つ目は関数を渡してる
残りは関数を実行した結果の返り値を渡してる >>855っす。
xyjax.jsを使う部分だけが未だ未解決 すまんjsってエスケープは正規表現リテラルのときだけでいいのけ?
文字列型はしなくていいんだよな? <head>
<meta charset="UTF-8" />
<title>JavaScript本格入門</title>
</head>
<body> <scritpt type="text/javascript"> // window.alertは、指定された文字列をダイアログ表示するための命令です。
window.alert(’こんにちは、世界!'); scritpt → script
('こんにちは → ('こんにちは <noscript>JavaScriptが利用できません。</noscript>
</body>
</html> >>886
廃れてないよ。今年は大幅増
https://w3techs.com/technologies/history_overview/javascript_library/all/y
jQuery
2017年 71.9%
2018年 73.1% (+1.2%)
2019年 73.6% (+0.5%)
2020年 74.2% (+0.6%)
2021年(仮) 76.5% (+2.3%) ※10ヶ月 終わったと言っている人たちは
ウェブアプ系の開発をしている人たちなんだけど
数はそう多くないんだよ
日々アホみたいに大量に作られていく
企業、商品サイトやLPなどの
広告系ウェブページに比べたら
んで後者では相変わらずjQはフィットしてんだな
その量が最近増えてるってことだろう
みんなステイホームしてんだから
そりゃ広告も増えるよねということなんじゃないかな UTFー8で保存したがsafariで開くと文字化けした。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>JavaScript本格入門</title> </head> <body> <script type="text/javascript"> // window.alertは、指定された文字列で表示するための命令です。 window.alert(’こんにちは、世界!’); </script><noscript>JavaScriptが利用できません。</noscript> <body> </html>
ダイアログが開かない。 【環境】 Win7-Pro,Chrome85.0
【何をしたのか】 文字列の最後の点「.」を削るコード
【エラーメッセージ】 無し
【期待する結果】 例えば、 -4. とあったとき、最後の点「.」が不要なのでこれを消したい
【サンプルコード】
対象の文字列を str としたとき
if( str.slice(-1) === '.' ) str.slice(0, -1);
でOKな筈ですが、console.logでは何ら変化がありません。何が問題なのでしょうか? 何の問題もないぞ
let str = 'aiu.';
if( str.slice(-1) === '.' ) str = str.slice(0, -1);
console.log(str); //aiu >>894
if (str.endsWith(‘.’)) で
2回スライスするのはちょっとね >>895
原因が分かりました。
if の右側(処理式)で str = と書いておかないと、単に str.slice() だけでは上書きされない、
ということでした。 >>896-897
どうもすいません。行き違いになってしまいました。 どこで質問したらいいのか分からないのでここで分かる方教えてください
もしかしたらスクリプトの設計によるのかもしれませんが
JavaScriptがブラウザの非アクティブタブではタイマーが遅くなったり通信や更新を行わなくなったりするみたいです
ブラウザ側で全てのタブでちゃんと全て機能させるようにするような設定は可能でしょうか? >>900
非アクティブのUIスレッドでsetTimeoutやsetIntervalのタイマーが遅くなるのはブラウザの仕様
https://stackoverflow.com/questions/5927284/
やったことないけどChromeはDisableできるっぽい
chrome://flags/#intensive-wake-up-throttling レスありがとう
色々と調べてみた感じ同じことが書いてました
非アクティブタブをアクティブに見せかけてフル稼働させる機能なんか確かに自分でブラウザ作るしかないかもですね (外部ライブラリの読み込み設定が上手く行かず)mathjax 2.7.5を使ってるんだけど、
\mathop, \mathrel が機能して無いっぽいんだが、mathjaxではまだ実装できてないって事? Mathjax 2.7.5使ってます。
ヘッダ部で、
MathJax.Ajax.config.path["Contrib"] = "//cdn.mathjax.org/mathjax/contrib";
と指定しているんだが、Ver3ではここをどう変更すれば良いのかが分からない 質問です
querySelectorの引数に
属性セレクタを渡すとき
属性値を囲むクォートを省略すると
Syntax errorとなるようになったのが
いつ頃からかご存知の方はいますでしょうか
JSエンジン毎に違いがあるとは思いますが
Chrome、V8でいつからかが知りたいのですが
ググってもなかなか見つからずでして
ざっくりでも良いのでよろしくお願いします >>906
エラーにならない時代を知らないな
念の為エラーになる記述例を書いてみて >>908
調べてみたら
アルファベットだけとか特定の文字で構成されてればquoteなくてもいい仕様らしい
知らんかった
https://mathiasbynens.be/notes/unquoted-attribute-values#css
でもquoteしておいたほうがいいんでね? #はident-tokenになりえない文字なのでクォート無しで解釈で来てたのが仕様外 >>909
あざます
クォートします
が、過去に書かれたJSの中からクォートなしのものがたくさん出てきて、いつ頃からかこれがエラーになってたのかを調べておりまして mutation.observerのaddedNodesについてなんですが
返ってくるノードリストは追加されたノードの数によってlengthが変わるんですか?
それとも常にlengthは1で追加されたノードごとにレコードが生成されるんでしょうか?
今テストしてる環境だと常に1つしかないのでおたずねします >>912
すいませんちょっと間違えました
追加されたノードがなかったときは空なので0か1なのか
それとも2以上になることがあるのかという質問です >>912
一括で追加すれば2以上になるよ
observer.observe(parent, config);
parent.append(a, b, c);
とかやってみれば分かる >>914
おお!デバッグ方法までありがとうございます
助かりました ファイアフォックスやばすぎんか?
F12押したらjavascriptのインタプリタが起動するのマジヤバイ
最高 変数の中身を足し算したいのですが、NULL判定を逐一取るのが面倒くさいです。
まとめて回避してくれる方法は無いものですか? null判定などしなくていい
nullなんて入らないだろ >>917
null + 1 = ?
null + null = ? ひとつでもNullが交じると、NaNになるみたいです。 >>921
ホント?
実行環境とサンプルコードを求む nullでNaNになるって事はわざわざparseIntやparseFloatしてるのかな? なるほど入力された文字列を数値として足し算したいという感じか
どうすれば回避したことになるのか次第だけどfilterでfalsyを除けば?
var foo = ["1", null, "2", null, "3", "foobar"]
foo.map(x=>parseInt(x)).filter(x=>x).reduce((a, b) => a+b) あとは“5man”みたいのをどうしたいかでparseInt()かNumber()かを使い分ける javascriptは難しい。
この言語を使いこなせる人はすごいですね。 >>927
慣れじゃね?
日本語みたいな難しい言語だって
慣れてる俺らはペラペラだろ?
そんなもんよ thisを除くとJavaScriptが他の言語より難しいところって無いと思うけどな JavaScriptだけなら難しいのかもしれないが、俺たちにはMDNがある。
仕様書がチンプンな文系にも優しい。 JavaScriptだけなら難しいのかもしれないが、俺たちにはMDNがある。
仕様書がチンプンなアホにも優しい。 JavaScriptだけなら難しいのかもしれないが、俺たちにはMDNがある。
仕様書がチンプンなカスにも優しい。 バカにしたいのかも知れんがオリジナルのレスから既にへりくだってるのであまり煽りになっていない。 JavaScriptじゃなくてJavascriptやろ? thisは全然難しくない
0番目の引数というだけ
そこにどういう状況で何が渡ってくるかを
考えたり覚えたりしないといけないのは
あらゆる言語のあらゆる関数に言えること
JSでややこしいのは暗黙の型変換、そしてnew演算子の振る舞いとクラスシステムくらい 明示的に渡される引数と暗黙的に渡される引数とで
理解しやすさに違いがないと思うやつは単に頭が悪いだけでなく
理解してないものを理解したつもりになってるからかなり質が悪い
チームの足を引っ張るいわゆる老害タイプ >>937
全く差がないとは思わんけど
いうほど難解って気もしないけどなあ >>937
明示的なのは自分で定義した関数を自分で呼び出すときだけでしょ
そうでない場合は自明ではなくて、ある程度の決まりを覚えるか調べるか、
もしくは状況に当てはめて考えるかしないとわからないじゃないか >>939
マジで違いがわからないんだな
いつもの釣りネタかと思ってた Javaのthisってなんですか?
obj.foo
↑
JavaScriptと同じで . の左側です。
JavaもJavaScriptもthisは . の左です。 thisそれ自体は別に理解が難しくはないと思うけど、既存の他のOOP言語に慣れた人の先入観と
ずれた動作をするところがトラップになっているだけのように思うな。 >>941
>JavaもJavaScriptもthisは . の左です。
もしそうだったなら何も難しくはなかっただろうに .の左がthisという認識で合ってるよ
@ドット演算子はその時に値を解決せずに、何から何が参照されたかの情報を持ったがリファレンス型を作る
そのリファレンス型が他所で参照されて壊されることなく関数呼び出しまでたどり着くと
参照元(左辺)がthisとして関数コンテキストが実行される
Aもし起点が参照型ではない状態=直接、関数が呼ばれるとthisは未定義となる
未定義の場合sloppymodeならglobalThis、strictmodeならundefinedとなる
基本的にはこの2つしかない
あとはB明示的にthisを設定して呼ぶ方法と、
C内部メソッドや外様APIから独自のルールでthisが設定されて呼ばれる場合くらいしかない レス数が900を超えています。1000を超えると表示できなくなるよ。