JavaScript の質問用スレッド vol.125at TECH
JavaScript の質問用スレッド vol.125 - 暇つぶし2ch454:デフォルトの名無しさん
22/12/21 21:53:16.64 paD1IZJK0.net
ちょっとググれば出てくるような情報までくれって言うのか?

455:デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89])
22/12/21 22:46:02.69 nEbzRDrKH.net
すみません、ちょっとググってみます

456:デフォルトの名無しさん
22/12/21 23:16:30.68 paD1IZJK0.net
どうしても分からないならchromeのDevToolsのConsoleで
document.styleSheets
って打ってみれば中身が全て見れる
中身見ても意味不明な場合はやりたいことは出来ないかも

457:デフォルトの名無しさん
22/12/21 23:34:53.49 PQinZhLm0.net
jQuery最強伝説。

458:デフォルトの名無しさん
22/12/22 07:18:15.65 slpViawnH.net
>>449
それは試してみたんですけどundefinedなんですよね
他ファイルを参照した場合には、stylesheetがdocumentのプロパティになっていないようなのですよね

459:デフォルトの名無しさん
22/12/22 07:21:31.78 slpViawnH.net
>>449
すみません、訂正です
document.styleSheetで参照すると
document.styleSheet.cssRulesがnullとなってしまうんです
document.styleSheetで登録されるのは
同じファイル内のスタイルだけのよう?
他のcssファイルに書かれたスタイルを操作するには
どうしたらいいのでしょうか?
に訂正願います

460:デフォルトの名無しさん
22/12/22 07:48:35.40 YtaOqG2C0.net
document.styleSheetsの最後のs抜かしてないよな
document.styleSheets[0] みたいにインデックス使わないと参照できないぞ

461:デフォルトの名無しさん
22/12/22 09:18:28.13 N0yJkasM0.net
本当にやりたいのは、特定の要素のstyleを弄ることじゃないの?

462:デフォルトの名無しさん
22/12/22 13:29:52.00 kUDazAkOd.net
ワードプレスとかいうアレをイジってると特定idの親にスタイル変更したいとかはでてくる

463:デフォルトの名無しさん
22/12/22 17:03:26.78 J4HXq2D


464:u0.net



465:デフォルトの名無しさん
22/12/22 19:14:24.29 slpViawnH.net
みなさん、ありがとうございます。
関連した質問なのですが
cssが要素に適用される仕組みは
1:
<style>タグを読み込んだり<link ref>を読み込んだ時点で
ブラウザ実行環境にcssプロパティを記録して、セレクタを読み込んだ時に適用するのでしょうか?
それとも
2:
HTMLの要素を読み込んだ時に<style>タグや<link>先に走査して
cssの適用があるかを確認して適用する
なのでしょうか?
もし1なら、クライアントブラウザからアクセスできるような気がするのですけど
もし教えていただけるようでしたらご指導お願いします

466:デフォルトの名無しさん
22/12/22 20:32:53.94 NthFDCjcr.net
次の話に移る前にまず>>453>>454に答えるべきだろう
言葉遣いだけ丁寧にしてもそういうのが疎かだと相手にされなくなる

467:デフォルトの名無しさん
22/12/23 07:08:17.10 OG24yN7PH.net
>>454
424,437,440,442の記載の通り、cssRuleを直接編集したいと考えています
>>453
437,441,442で記載の通り、配列で受けとって編集することはできています
しかし別のスタイルシートでは同様の方法では参照できませんでした
>>447様のご指摘があって、再度検索してみたのですが
別スタイルシートのcssをオブジェクト化して参照する方法が見当たらず
今の質問に至っています
JQueryでできるようなレスがありましたので
JSでもできるのだろうなと思って次の質問をしました
皆様質問の仕方に失礼があっって申し訳ありませんでした
お許しくださいませ

468:デフォルトの名無しさん
22/12/23 08:30:41.88 d3IbDeU70.net
>>456 でクロスオリジンの場合にnullになるって指摘されてるけど、これに引っかかってるだけじゃないかな
この場合はどうにもならんと思う

469:デフォルトの名無しさん
22/12/23 10:44:42.21 Lv24OjDar.net
>>459
ブラウザのコンソールで↓を実行したらどうなる?
for(const ss of document.styleSheets){console.log(ss.href); console.log(ss.cssRules);}

470:デフォルトの名無しさん
22/12/23 17:28:12.54 o+ONuUnd0.net
>>460で指摘している通り、他の所から読み込んだスタイルはそもそも変更出来ないって書いてあるんじゃね?
URLリンク(w3c.github.io)
> Cross-origin stylesheets are not allowed to be read or changed.
>>461のように実際にcssRulesにアクセスすると自分の所のcssじゃない場合をアクセスしようとすると
Uncaught DOMException: Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules
at <anonymous>:1:76
みたいなエラーになる
cssをいじりたいのだろうけど、そういう低層の話じゃなくて本当にやりたい事を書いた方が答えが得られると思うよ
結局何がやりたいのか全く分からんw

471:デフォルトの名無しさん
22/12/23 17:30:32.01 o+ONuUnd0.net
変な日本語になってるなw
>>461のように実際に自分の所のでは無いcssRulesをアクセスしようとすると
Uncaught DOMException: Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules
at <anonymous>:1:76
みたいなエラーになる

472:デフォルトの名無しさん
22/12/23 19:30:29.91 OG24yN7PH.net
>>460
459,460,461
皆様ありがとうございます
具体的にこれをしたいというのはなかったんですけど
js勉強していまして、そういうことできるのかな?という質問でした
jsのエンジンは<link rel>を実行すると
jsの実行コンテキストを記録するメモリ部分に
<rel>の情報をロードして
HTML要素を読み込んだ時に参照するという挙動なら
クロスオリジンの適用を受けずに編集できるかなと
そういう疑問も持ちまして質問させていただきました
皆様ありがとうございました

473:デフォルトの名無しさん
22/12/23 20:54:13.31 2ps+kI7qr.net
>>464
>クロスオリジンの適用を受けずに編集できるかなと
君の>>452>>459の発言ではCSS参照が別ファイルでも同一オリジンでは問題なく出来て
別オリジンのみ問題が発生していると認識しているとは読み取れないけども
別ファイル即ち別オリジンと勘違いしてない?
同一オリジンなら別ファイルでも参照出来ることは理解してる?

474:デフォルトの名無しさん
22/12/23 20:55:49.05 OG24yN7PH.net
>>462
今勉強再開して思い出しました。
@keyframesのプロパティや値を
動的に変更したいと考えたのです
同じファイルなら
<style id="st">
として、stから@keyframesを設定編集できますが
外部ファイルでの設定編集ができないので
できたらいいな、って質問してみました

475:デフォルトの名無しさん
22/12/23 20:57:53.66 OG24yN7PH.net
>>465
勘違い、混乱してました。ありがとうございます!

476:デフォルトの名無しさん
22/12/23 21:10:25.93 2ps+kI7qr.net
>>467
で、>>452で参照したかったのは本当に別サーバ等のcssだったのか
それともhtmlやjsと同じ場所に置いてあるcssだったのかどっち?

477:デフォルトの名無しさん
22/12/23 21:19:54.48 OG24yN7PH.net
>>468
ローカルで、同じフォルダ内です

478:デフォルトの名無しさん
22/12/23 21:28:01.20 G5aj5uG70.net
@keyframesなんかも後のスタイルで再定義できるんだから
DOMにstyle要素追加してそこに上書きルール突っ込んでそっちを操作すればいいじゃない

479:デフォルトの名無しさん
22/12/23 21:39:17.88 2ps+kI7qr.net
>>469
それは本来別オリジンではないんだけどブラウザがローカルアクセスに対するセキュリティの一環として制限をかけてる模様
詳しくはググって
>>461のスクリプトを実行して
file:///~
の行のあとに例外が出るならそれが原因
対策としてはローカルにwebサーバを立ててhttp経由でアクセスする
そうすればスクリプト実行で例外が発生せずcssの中身が読み取れる
webサーバはそんな大層なものは必要なくてvscodeのLiveServerで十分

480:デフォルトの名無しさん
22/12/23 21:55:43.41 gwhrrj9D0.net
DevTools を弄れるなら、要素タブでスタイル欄を見れば
適用内容と設定元のファイルが行番号付きで確認できるし
アニメーションを弄りたいなら、「その他のツール」に「アニメーション」がある(chrome)

481:デフォルトの名無しさん
22/12/24 09:52:50.24 Lk0KbRC60.net
皆様いろいろありがとうございます
時間とれましたら確認させていただきます

482:デフォルトの名無しさん
22/12/24 10:46:15.28 se6E0pPpr.net
>>473
少し調べたらchromeのオプションでクロスオリジン制約を回避する方法があった
chrome クロスオリジン
で検索
これならwebサーバを立てる必要もなくてお手軽

483:デフォルトの名無しさん
22/12/24 14:27:49.26 0WYu35VL0.net
firefoxもsecurity.fileuri.strict_origin_policyをfalseにすれば回避できるけど
早いうちにローカルサーバ立てることを覚えた方が後が楽になると思うよ
対象要素が1つなら@keyframes書き換えるよりWebAnimationAPI使った方がいいかもしれないし
やりたいことはぼかさずにはっきり書いた方がいいよ

484:デフォルトの名無しさん
22/12/24 22:49:22.50 oMpeQZG30.net
HTA(hta+ie)にとって替わるみたいな環境っていまだにないのかな
PWAみたいのではなく、javascript(やvbs)でWindowsのフレームワーク(.NETやCOMやら)と連携できるようなやつが欲しい
WebView2は思想的にHTAと比べて退化してるようにしか見えないけどこれぐらいなのか…

485:デフォルトの名無しさん
22/12/25 03:50:26.67 Y7ZN657d0.net
>>476
そういや前はちょっとしたツールを HTA で書いたりしたけど、もう使えない?

486:デフォルトの名無しさん
22/12/25 12:52:51.27 GFtl9gAsH.net
皆さん、ありがとうございます
別シートのcssで可変にしたい部分を変数にし
読み込むシート側に変数専用のstyleタグを用意し
変数用のスタイルタグを編集することにしました
皆様いろいろとありがとうございました

487:デフォルトの名無しさん
22/12/25 13:14:34.27 g8CAn8EMr.net
要するにクロスオリジン問題を解決して>>452を実現したのではなくて
別の方法を取ったということ?

488:デフォルトの名無しさん
22/12/25 13:37:10.68 GFtl9gAsH.net
そうです
>>470様のアドバイスなら
私の学習レベルでもググり時間とられずにできそうだと思いまして
style.css
@keyframes xxx{ *** : var(--prm) }
index.html
<style id="prm"></style>
<script>
prm.innerHTML=":root {--prm:50% }"
のように、変数を編集するstyleタグを設けました
見栄え悪いしかっこ悪いんですけど
いろんな変数を設定変更する関数も自作できそうですので
とりあえずはこれでいいかなと

489:デフォルトの名無しさん
22/12/25 14:26:34.39 kQ0MTzKr0.net
>>480
それならわざわざstyle要素作って直に操作する必要はない
変数の最初の定義もcssファイルの方に書いておいて
変更したい時は
document.documentElement.style.setProperty("--prm", "100%");
とかすればいいだけ

490:デフォルトの名無しさん
22/12/25 15:40:19.02 GFtl9gAsH.net
>>481
ありがとうございます!そうさせていただきます。
今後ともいろいろ教えてください。ありがとうござました!

491:デフォルトの名無しさん
22/12/25 16:48:37.78 sJzx1gQhr.net
>>480
>私の学習レベルでもググり時間とられずにできそうだと思いまして
webサーバ云々が億劫だってのは分かるからしょうがないけども
せめて>>474ぐらいは実際に試して欲しかったな
ググって最初に出てくる記事にすぐ出来るやり方が具体的に書いてあるんだし

492:デフォルトの名無しさん
22/12/25 16:50:28.05 GFtl9gAsH.net
>>481
面白かったです。
<html><head><body><div>
どの要素にでも、setProperty('param','value')を設定しておけば
別ファイルに作ったスタイルシートの変数を参照できるのですね
疑似的なコードですが
<script>
body.setProperty('--color','red')
div.setProperty('--color','blue')
html.setProperty('--color','green)
とすると、子孫のスタイル設定が優先されることも理解できました
とても面白く学習できました、ありがとうございました

493:デフォルトの名無しさん
22/12/25 16:51:23.54 GFtl9gAsH.net
>>483
ありがとうございます
次時間ができたときにぜひ調べて実行してみます

494:デフォルトの名無しさん
22/12/25 17:00:33.10 gv3ThvO8d.net
もう解決したんだしどうでもいいからお礼だけ言って体よく話を打ち切りたいって思いがヒシヒシ伝わってくるな

495:デフォルトの名無しさん
22/12/26 13:51:42.59 fuxINEHv0.net
>>471
Live serverを使って、別のスタイルシートで設定した、フォント色の変更はOKでした。
ありがとうございました。
ただ、@keyframesに関しては、CSSKeyframeRule__{keyText..,style,,cssText,,}__までは見れたのですが
内容の変更方法が分からないため断念しました
時間あるときに再チャレンジしてみます
皆様ありがとうございました

496:デフォルトの名無しさん
22/12/26 15:01:08.23 pO4MU7IP0.net
var ptEQ = 25.4 / 72;
var SWmm = 0;
mainfn();
function mainfn() {
win1 = new Window('dialog', "Set Strokewidth");
win1.pnl = win1.add('panel');
win1.pnl.orientation = "column";
pg1 = win1.pnl.add('group');
pg1.orientation = "row";
pg1.add("statictext", [0, 0, 140, 23], "線幅を選択してください");
pg2 = win1.pnl.add('group');
rd21 = pg2.add("dropdownlist", [20, 40, 150, 65], ["0.1 mm", "0.12 mm", "0.15 mm", "0.2 mm", "0.25 mm",
"0.3 mm", "0.4 mm", "0.5 mm", "0.6 mm"
]);
rd21.selection = 0;
pg9 = win1.pnl.add('group');
pg9.orientation = "row";
CAN = pg9.add("button", [0, 0, 100, 30], "cancel");
OK = pg9.add("button", [0, 0, 100, 30], "OK");
CAN.onClick = function() {
win1.close()
}
OK.onClick = function() {
win1.close();
dofn();
}
win1.show();
}

497:デフォルトの名無しさん
22/12/26 15:02:39.66 pO4MU7IP0.net
function dofn() {
var SWmmS = rd21.selection.text;
var SWmm = parseFloat(SWmmS);
var SWpt = SWmm / ptEQ;
var rectObj = activeDocument.pathItems.rectangle(-420.94488, 297.638, 150, 100);
rectObj.filled = false;
rectObj.stroked = true;
rectObj.strokeColor = CMYKfn(0, 0, 0, 100);
rectObj.strokeWidth = SWpt;
rectObj.selected = true;
rectObj.remove();
function CMYKfn(c, m, y, k) { 
COL = new CMYKColor(); 
COL.cyan = c; 
COL.magenta = m; 
COL.yellow = y; 
COL.black = k; 
return COL;
}
}

498:デフォルトの名無しさん
22/12/26 15:07:33.18 pO4MU7IP0.net
線幅を変更するスクリプトなのですが、一応完成しました。
自分で使うだけならこれでいいのですが、他人に使ってもらう場合、ダイアログに「線幅を追加する」という項目を増やしたいと思っています。
rd21 = pg2.add("dropdownlist", [20, 40, 150, 65], ["0.1 mm", "0.12 mm", "0.15 mm", "0.2 mm", "0.25 mm", "0.3 mm", "0.4 mm", "0.5 mm", "0.6 mm"]);
のところに項目を追加していくようなコードを書くことは可能なのでしょうか?
自分自身を書き換えるコードだと思うのですが…
(削除はどうでしょうか? 例えば0.15 mmがいらないと思った場合、"0.15 mm"のを削除するコードを書くことは可能ですか?)

499:デフォルトの名無しさん
22/12/26 15:27:01.38 oXRhIFIqd.net
スレ内を線幅で検索しても何も引っかからないのにこの書き出しで何か伝わると思ってるのすごいわ
線幅の配列を関数内で直書きしてるから自身を書き換えるとか面倒なことを考える必要があるわけで
関数の外に変数で宣言しとけば追加も削除もなんとでもなるでしょ

500:デフォルトの名無しさん
22/12/26 15:55:16.01 gS/UmYxh0.net
確かIllustratorかなんかのスクリプトでしょ
ここ見てるほとんどはWebブラウザやnode.jsのJavaScriptは知っててもそっちは知らないと思う
文法的にはJavaScriptと同じでも出てくるオブジェクトは独自のものだろうし説明しないとわからんよ

501:デフォルトの名無しさん
22/12/26 16:14:37.67 pO4MU7IP0.net
>>491
素人でもエディタで開かないとダメということですね。
var mm = ["0.1 mm", "0.12 mm", "0.15 mm", "0.2 mm", "0.25 mm", "0.3 mm", "0.4 mm", "0.5 mm", "0.6 mm"]
// 線幅の項目を増やしたり削除したい場合は、上の1行を書き換えてください
こう先頭に書き加えました。

502:デフォルトの名無しさん
22/12/26 16:16:02.82 pO4MU7IP0.net
>>492
すみません
気を付けます

503:デフォルトの名無しさん
22/12/26 16:45:32.21 oXRhIFIqd.net
>>493
意図が理解されなかったということが分かった
コメント付けるって妥協するなら>>488のままでもいいでしょ
ここの住人はadobe独自のことは詳しくないんだし他所で聞いたほうが的確な答えが返ってくるよ
そもそもここはスレ違い

504:デフォルトの名無しさん
22/12/26 17:18:59.92 l7z7KEaud.net
>>477
htaまだまだこれからだ
ただhighDPI環境でスケーリング200%とかだとおかしな事になった想い出

505:デフォルトの名無しさん
22/12/26 22:12:09.27 LJgewTa3r.net
>>487
①chromeで↓のurlを開く
URLリンク(yari-demos.prod.mdn.mozit.cloud)
②chromeのコンソールを開いて↓を入力する
document.styleSheets[1].cssRules[1].cssRules[0].style.marginLeft = "50%"

506:デフォルトの名無しさん
22/12/27 15:47:36.10 LHsOSApx0.net
>>497
ありがとうございました
所望の動作を確認できました
JSはいろんな方法があるんですね

507:デフォルトの名無しさん
23/01/02 12:58:47.15 A6ceP6kcr.net
>>476
pythonのeelモジュールを使えば、昔のhtaっぽいことができます

508:デフォルトの名無しさん
23/01/02 17:25:19.15 V1TEslsJ0.net
>>499
OSに標準で入ってるedgeで使えるのはいいなあ
情報ありがとう

509:デフォルトの名無しさん
23/01/04 19:01:14.59 jNmuxM610.net
「無名関数」、「関数リテラル」の理解がちょっとぼやけています。
次の様なコードがあったとき、
let calcResult = function calc(a,b){
return a*b;
}
calc()
と()をつけて表せるものが普通の関数、それを変数に代入したもの
calcResult
が関数リテラルかと思っていました。
しかし、どうやら違うようで。。

510:デフォルトの名無しさん
23/01/04 19:01:57.33 jNmuxM610.net
例えば以下の2つの関数があります。
■「function関数」を変数に格納
let calcResult1 = function calc(a,b){
return a*b;
}
■「無名関数」を変数に格納
let calcResult2 = function(a,b){
return a*b;
}
「無名関数」は「関数リテラル」と同義である。とさまざまな文献に記述されています。
ならば、
calcResult1
は、関数リテラルではない。
calcResult2
は、関数リテラルである。
という認識で間違っていないでしょうか?

511:デフォルトの名無しさん
23/01/04 19:02:26.96 jNmuxM610.net
SetInterval()
に与える引数は、関数リテラルでなくてはならないそうです。
となると、以下は誤りで、
SetInterval(calcResult1,1000);
以下なら問題ない
SetInterval(calcResult2,1000);
という理解でよろしいでしょうか?

512:デフォルトの名無しさん
23/01/04 20:37:28.67 UYb7FHhp0.net
URLリンク(developer.mozilla.org)
URLリンク(developer.mozilla.org)
リテラルに関数は含まれてないな
「関数リテラル=無名関数」が間違ってて、calcResult1 も calcResult2 は、関数リテラル。
とイコールで結んじゃうのは乱暴か
字義に従えば「無名関数」には生成時に名前をつけなかった、程度の意味しかないかと
ただ、関数式として生成された関数は変数に格納するか、でなければ他の関数の引数になるので、名前をつける意味はほぼない
結果的に関数式の関数は無名関数になることがほとんどで

513:デフォルトの名無しさん
23/01/04 20:40:11.89 UYb7FHhp0.net
ここでいう「関数リテラル」は関数式で記述された関数のことで、名前があろうとなかろうと「関数リテラル」でいいんだと思う

514:502
23/01/04 20:53:07.39 UYb7FHhp0.net
途中送信で変になってるからまとめ直し
>>502,503
その文脈での「関数リテラル」ってのは関数式で記述された関数のこと(>>504のリンク参照)で、名前の有無は関係ない
名前のあるcalcResult1 も 名前のないcalcResult2 も「関数リテラル」という理解でいいと思う
「無名関数」の「無名」には生成時に名前をつけなかった、程度の意味しかないかと
ただ、関数式として生成された関数は変数に格納するか、でなければ他の関数の引数になるので、名前をつける意味はほぼなくて結果的に無名関数になることがほとんどではある

515:デフォルトの名無しさん
23/01/04 20:57:54.46 jNmuxM610.net
>>504
すっごい分かりやすい。
モヤモヤしていたのがすっきりしました。
ありがとうございました。

516:デフォルトの名無しさん
23/01/04 21:00:20.48 GLj+17iFr.net
調べたら自分を再帰的に呼び出す場合に名前を付けるって例があってなるほどと思った

517:デフォルトの名無しさん
23/01/04 21:21:00.43 GLj+17iFr.net
ちなみに>>503のsetIntervalの引数は関数リテラルでないといけないってのはどこ情報?

518:デフォルトの名無しさん
23/01/04 21:23:57.48 jNmuxM610.net
あれ。関数リテラルには引数はないのか。。引数の不要な関数しか関数リテラルにならんのか。
もちょっと調べてみます。

519:デフォルトの名無しさん
23/01/04 21:32:15.85 jNmuxM610.net
>>509
必要ならページ画像をどっかにアップします。。
技術評論社
JavaScript本格入門
URLリンク(gihyo.jp)
P362
setTimeout/SetIntervalメソッドの注意点
...引数funcは必ず関数リテラルで指定してください。

520:デフォルトの名無しさん
23/01/04 21:39:03.24 jNmuxM610.net
でも何かの引数に関数をわたすときは、
一般的に関数リテラルで渡すのがデフォと
ぼんやり思っている。

521:デフォルトの名無しさん
23/01/04 21:47:22.56 QxUfEWbZ0.net
技術評論社はやめとけよ。

522:デフォルトの名無しさん
23/01/04 21:55:58.51 GLj+17iFr.net
>>511
文脈がわからんけど理由は書いてあるの?
動く動かないで言えばfunction文で定義した関数リテラルでない関数を渡しても動くようだけど
そもそもMDNにも関数としか書いてないし

523:デフォルトの名無しさん
23/01/04 22:20:18.03 lFNs7lW+0.net
単に著者が良く理解せずに書いてるだけな気がする

524:デフォルトの名無しさん
23/01/04 22:21:10.60 jNmuxM610.net
>>514
setTimeout()の例でしかもjQueryで
申し訳ないのですが。
1秒後に#displayのhtmlの内容を空にするコードです。
以下のようなコードではsetTimeoutが動かず、
setTimeout($('#display').html(' '), 1000);
代わりに、以下で動きます。
function clearDisplay(){
$('#display').html('');
}
setTimeout(clearDisplay, 1000);
このことから書籍にあるように
関数リテラルでないと引数に渡せないと
思っていました。。
書籍の文脈ですが、実際にあとで画像アップします。

525:デフォルトの名無しさん
23/01/04 22:46:11.56 GLj+17iFr.net
>setTimeout($('#display').html(' '), 1000);
これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない?
html()が戻り値としてjQueryを返すからそれが引数として渡ってるでしょ
>function clearDisplay(){
> $('#display').html('');
>}
これもfunction「文」で定義してるから>>506で言うところの関数リテラルには当てはまらない関数だよね

526:デフォルトの名無しさん
23/01/04 23:53:56.91 PU4coe7B0.net
アロー関数式を使うことで、関数リテラルによる関数定義を
より簡略化して記述することができます
ただし、this には注意してください

527:デフォルトの名無しさん
23/01/05 00:01:25.43 EVXeoiyo0.net
>>517
setTimeout($('#display').html(' '), 1000);
これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない?
渡しているのは関数じゃない。。
んー。メソッドか。だから動かない。
ありがとう。

528:デフォルトの名無しさん
23/01/05 00:18:03.56 7P17JKmwr.net
>>519
いや、関数かメソッドかの話じゃなくて
$('#display').html(' ')をその場で実行してその戻り値であるjQueryオブジェクトを渡しちゃってるでしょって話
ちゃんと理解できてる?
URLリンク(js.studio-kingdom.com)

529:デフォルトの名無しさん
23/01/05 00:26:22.30 EVXeoiyo0.net
私の勘違いだったのですね。
たしかに関数ではない。。
一応書籍のページ画像をuploadしました。
「引数funcは必ず関数リテラルで指定してください。」
URLリンク(uploda1.ysklog.net)
「関数リテラルは....ある関数の引数として渡したり....」
URLリンク(uploda1.ysklog.net)

530:デフォルトの名無しさん
23/01/05 00:27:48.45 EVXeoiyo0.net
>>520
理解したありがとう!

531:デフォルトの名無しさん
23/01/05 02:04:13.18 hRDnYJsk0.net
>>521
「引数funcは必ず関数リテラルで指定してください。」
ちょっと問題のある文章だなあ
URLリンク(developer.mozilla.org)
第一引数は関数またはjavascriptコードとして実行される文字列
関数ってのは関数呼び出しじゃなくて関数名、または無名関数(関数リテラル)
>>516
文字列で渡したら動くはず
setTimeout("$('#display').html(' ')", 1000);

532:デフォルトの名無しさん
23/01/05 06:17:33.15 O+NRT3S+0.net
>>523
> 「引数funcは必ず関数リテラルで指定してください。」
> ちょっと問題のある文章だなあ
まあそこは直前に文字列でも指定できるけどって書いてるから教育的指導なんだろうとは思う
まあ「必ず」という言葉が強すぎるから「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う
むしろ問題は「関数リテラルは宣言した時点では、名前を持たないことから匿名関数、または無名関数と呼ばれることもあります。」の方だろうね

533:デフォルトの名無しさん
23/01/05 09:18:58.87 EVXeoiyo0.net
>>523
>文字列で渡したら動くはず
>setTimeout("$('#display').html(' ')", 1000);
ありがとう。関数とは、関数呼び出しではなく実行される文字列
次いでもう一点お願いします。
URLリンク(uploda1.ysklog.net)
リスト4-04 function_literal.js
以下は、関数リテラルを使ってリスト4-01を書き換えたものです。
var getTraiangle = function(base,height){
return base * height/2;
}
console.log('三角形の面積:'+getTrianle(5,2));
↑の
getTrianle(5,2)
は、関数リテラルなのですね。
てっきり()がないものが関数リテラルと思っていたが、
どうも、それも間違いようで。

534:デフォルトの名無しさん
23/01/05 09:20:11.59 EVXeoiyo0.net
あくまで、関数を変数に代入するということが、重要なのでしょうか?

535:デフォルトの名無しさん
23/01/05 09:23:08.82 EVXeoiyo0.net
「関数呼び出し」と
「引数付の関数リテラル」は
それだけみても違いわからないですね。
定義された場所を見て判断しないと。

536:デフォルトの名無しさん
23/01/05 10:06:29.26 rM8SDmmnr.net
>>525
>>setTimeout("$('#display').html(' ')", 1000);
>ありがとう。関数とは、関数呼び出しではなく実行される文字列
いやいや、それは関数じゃなくてただの文字列
setTimeoutの第一引数は文字列か関数って書いてあるでしょ
関数リテラルって言葉はもう忘れていいと思うよ
そもそもMDNに記述がないから便宜的なものだし、その本での説明も怪しい
定義の仕方で区分されてるだけで実質的にはただの関数で
挙動に差異があるわけでもないだろうし

537:デフォルトの名無しさん
23/01/05 10:52:19.71 rM8SDmmnr.net
>>524
>「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う
それだとfunction命令で定義した関数は指定してはいけないと誤解されるからリテラルを削ったほうがいいかと

538:デフォルトの名無しさん
23/01/05 10:52:37.45 uFu


539:uDD5j0.net



540:デフォルトの名無しさん
23/01/05 11:50:49.92 hRDnYJsk0.net
>>525
>setTimeout("$('#display').html(' ')", 1000);
ありがとう。関数とは、関数呼び出しではなく実行される文字列
違う。全く違う。めっちゃ大事なことだから勘違いしないで
それはsetTimeoutoの第一引数を文字列として指定した場合のこと
第一引数に関数を指定する方法は>>516で君は既にやっている
setTimeout(clearDisplay, 1000);
clearDisplay関数を定義してそれをsetTimeoutの第一引数に渡している
これでいい
>>529の言う通り
>>528の言う通り今は無名関数とか関数リテラルとかにこだわらない方がいい
>>525のうp画像に無名関数は重要な概念なので後ほど詳述ってあるからそこをみっちり勉強してね

541:デフォルトの名無しさん
23/01/05 12:50:07.72 w+0CNSMQr.net
関数リテラルの説明についてはここが一番しっくりくる
URLリンク(www.javadrive.jp)
「関数リテラルを使った関数定義」って言い回しを強調してるのが良い
だから関数リテラルを引数として渡すって言ったらこういうことだよなって
dispNum(10, 8, function(x, y){
return (x + y) / 2;
});

542:デフォルトの名無しさん
23/01/05 14:46:47.66 EVXeoiyo0.net
すいません。やっぱり関数リテラルという意味を理解したい。。でも↓この質問でわかるかも。
だれか答えていただけますでしょうか?
---
次のコードがあります。1から5のうち
どれが適切でしょうか?
let dispMessage = function(msg){
console.log(msg);
};
1.
function(msg){console.log(msg);}
は関数リテラルである。
2.
dispMessage
は関数リテラルである。
3.
let dispMessage = function(msg){
console.log(msg);
};
が全体として関数リテラルである。
4.
全て関数リテラルとはいえない。
5.
関数リテラルとは、用法のことであり、
コード部分を表すものではない。

543:デフォルトの名無しさん
23/01/05 14:53:38.67 mmmJuCOb0.net
>>533
ぐぐったら以下の様に出る。結構理解しやすいと思うが。
リテラルとは リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。 変数の対義語であり、変更されないことを前提とした値である。 プログラミング言語のコード中にリテラルが挿入される場合には、判別のために特定の書式を用いる必要がある。

544:デフォルトの名無しさん
23/01/05 15:02:17.50 EVXeoiyo0.net
うん。「リテラル」ということばによって惑わされてきた気がする。

545:デフォルトの名無しさん
23/01/05 15:06:19.08 akcN5qw4a.net
関数リテラルは関数として評価可能な右辺値と考えておけばまあいいんじゃないの
正確な定義は構文木の定義を見れば書いてある

546:デフォルトの名無しさん
23/01/05 15:10:13.35 HxGsZjLmr.net
>>533
1だろう
let s = "abc";
の"abc"を文字列リテラルと呼ぶけどそれを代入した変数sを
文字列リテラルとは呼ばないでしょ

547:デフォルトの名無しさん
23/01/05 15:28:42.13 c7qQflpDr.net
>>533
で、繰り返しになるけど本やサイトによっても説明がまちまちで
MDN探しても出てこないような用語だからあまり囚われない方がいい
理解しようとして時間をかけるだけ無駄

548:デフォルトの名無しさん
23/01/05 15:35:00.85 m3Sm+5EJ0.net
>>533
強いて言えば1かな
でも数値・文字列・正規表現リテラルみたいにプログラム中に単独で書くことは出来ないね
変数に代入するなり関数の引数に使うなりしないとエラーになる
英語でもfunction literalっていうみたいだけど関数リテラルってあんまりいい言葉だと思わないなあ
33;
"hello";
/^js$/;
function() {return true}; //SyntaxError
こんなことにこだわるよりもっと基本的なこと勉強した方方がいいんじゃないの?

549:デフォルトの名無しさん
23/01/05 15:38:00.87 EVXeoiyo0.net
あ。
誤解していたところがとけました。
当初は「2」かと妄信していたので、
だいぶ合点がとれました。
関数リテラルが無名関数と同義という説明も
いやそうではないという説明も
すっきりしました。
皆さん長々とお付き合いいただき
ありがとうございました。

550:デフォルトの名無しさん
23/01/05 19:28:05.49 j61eMuZ00.net
>>513
技術評論社のjQuery本格入門はものすごく読みづらかった。
もっと分かり易い言葉で解説して欲しかった。

551:デフォルトの名無しさん
23/01/05 20:02:55.70 EVXeoiyo0.net
>>536
>関数リテラルは関数として評価可能な右辺値と考えておけばまあいいんじゃない
この発想というか常識が無かったなあ。

552:デフォルトの名無しさん
23/01/05 20:55:47.77 XhDooIHVH.net
>>533
自分もあまりJS詳しくないんですけど
リテラルっていうのは、括るもの、という意味合いでは?
オブジェクトリテラルっていうのは波かっこで括るオブジェクト={}
文字列のリテラルは、""や’’
展開のリテラルは、``とか
関数のリテラルというのは、functionを指定した引数括弧つきのオブジェクトリテラルでfunction(){}
関数リテラルといえば、例えばfunction func(){...}
とした場合、{...}は変数funcに文字列として代入されます
そしてfuncは関数オブジェクトと指定されていて
関数の実行は()を読み込むことで実行されます
func 文字列
()   関数の実行

553:デフォルトの名無しさん
23/01/05 21:01:26.21 XhDooIHVH.net
>>533
解決済みだったようですみませんでした
参考までに追加
function func(){return 1}
とした場合
console.log(func)

console.log(func())
を見比べるとわかりますが、
func変数の中身は、function指定された文字列で
func()は関数を実行した結果の1が表示されます

554:デフォルトの名無しさん
23/01/05 21:40:35.47 n/EqvkXYr.net
>>543
JavaScriptのリテラルに関してはまず下記を読んでください
括�


555:チてあればリテラルというわけではないです https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Grammar_and_types#%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB



556:デフォルトの名無しさん
23/01/05 22:26:48.61 XhDooIHVH.net
>>545
括る、というのはそういう意味かと
リテラルはリテラルなので括る必要はなくて
プリミティブは、これは文字列です、
これは配列です、
これはオブジェクトです
とエンジンに理解させるための記述なのかと思いまして

557:デフォルトの名無しさん
23/01/05 22:39:53.19 scsW7zY90.net
リテラルはベた書きで良かろう

558:デフォルトの名無しさん
23/01/05 22:41:03.03 n/EqvkXYr.net
>>546
申し訳ないけど全体的に文意が取れません
1行目の「そういう意味」は何を指してますか?

559:デフォルトの名無しさん
23/01/05 22:57:51.54 XhDooIHVH.net
括ることで、エンジンに対して、これは配列オブジェクトだよとか
これは{}だよとか、これは文字列だよとか、そういうことを伝えているってことですけど

560:デフォルトの名無しさん
23/01/05 22:59:39.77 O+NRT3S+0.net
>>543 > リテラルっていうのは、括るもの、という意味合いでは?
>>546 > リテラルはリテラルなので括る必要はなくて
自分で何書いてるのか理解できてる?

561:デフォルトの名無しさん
23/01/05 23:00:08.63 O+NRT3S+0.net
>>549
数値リテラル

562:デフォルトの名無しさん
23/01/05 23:12:56.82 XhDooIHVH.net
<<538
諄いですね
正しい理論的な話あればご披露ください
JSの処理エンジンに、どういう記述があれば
どう処理するかというのがあるでしょ
{}とう記述を読めば、オブジェクトなのだな、と
””ならもじれるなのかなと、
function でて意義されたものがあれば関数なのかなと
リテラルは数値などの表現で
文字列は””、’’のクオーテーションで
関数は、function装飾委sで
それぞれが何を表現してるのかを確認し
スクリプト実行時にそれらをコンテキストに登録して
その後の作動を担保する、ってことなのかな

563:デフォルトの名無しさん
23/01/05 23:17:36.32 /79BsoYR0.net
一から教えるにはここじゃスペースが足りないからまず入門書一冊買って読め。

564:デフォルトの名無しさん
23/01/05 23:20:08.45 XhDooIHVH.net
先生、ありがとうござす
時間とれましたら勉強してみます、ありがとうです

565:デフォルトの名無しさん
23/01/05 23:20:49.68 n/EqvkXYr.net
中途半端に字句解析、構文解析の話になってるのか・・・
誰もそんなレベルの話はしてないのに

566:デフォルトの名無しさん
23/01/05 23:28:36.71 V3WBk68sd.net
誤変換の多さと言い意味の通ってなさと言い酔っ払ってるとしか思えんなw

567:デフォルトの名無しさん
23/01/05 23:34:22.58 XhDooIHVH.net
すみませんでした、もっと勉強します

568:デフォルトの名無しさん
23/01/06 12:07:23.77 ipvOzmbWr.net
勉強しますの前にまず筋の通った主張を相手に分かるようにお願いします
>>550の指摘もそういうことだし

569:538
23/01/06 17:52:02.25 AgA2i3Ln0.net
リテラルって文字列とか数値というイメージ
だから、
let dispMessage = function(msg){console.log(msg)}
っていう文があれば、関数リテラルならどうみても
左側の変数の文字列の事って思うじゃないですか。
右側はfunctionとか{}とか()とかあるので、
リテラルからかけ離れていると思ってました。
どうりで、話が噛み合わないなと思ってたが
今、全部なっとく。ありがとうございました!

570:デフォルトの名無しさん
23/01/06 21:33:28.00 Ynt2iWE0M.net
リテラルはもともと「文字通りの」って意味
ソースに書いた内容が変数とかを介さずにそのまま1つの値として評価されるもの
括弧で括るとかの意味は全く無い

571:デフォルトの名無しさん
23/01/06 22:25:41.09 Th1PE0Z2H.net
リテラル
””や’’で表現されるのは文字列と評価する
[]は配列と評価する
{}はオブジェクトと評価する
JSエンジンがオブジェクトをどう評価して処理するかということだと思ったんですけど
何やら全く的外れなこと言ってたみたいですみませんでした
何度も謝ったのでもう許してください、鬼神様

572:デフォルトの名無しさん
23/01/06 23:10:59.17 AlXqoCEJr.net
>>561
的外れなことを繰り返し書かなくていいから黙って>>504を読んでおいて

573:デフォルトの名無しさん
23/01/07 08:36:35.89 I26x6s3dH.net
時間があるときに読んでおきます

574:デフォルトの名無しさん
23/01/07 11:56:48.02 n88Tb37q0.net
>>563
いますぐ読みたまえ

575:デフォルトの名無しさん
23/01/07 12:11:11.83 Oa/pj9jla.net
読めたら読みます

576:デフォルトの名無しさん
23/01/07 12:11:57.01 n88Tb37q0.net
>>565
読めなくても読むのだ

577:デフォルトの名無しさん
23/01/07 15:51:52.95 zzWcN8NZd.net
>>561
わざわざもう1回書いたのは自分の中ではこれが正しいという思いが捨てられなくて
賛同してくれる人が現れないかと期待してってところか

578:デフォルトの名無しさん
23/01/07 18:24:30.76 2xit7B8+0.net
再帰関数についての質問
function test(){
処理1
test();
処理2
}
とした場合
処理2の前にtest()があるので、処理2はずっと実行されないということですか?

579:デフォルトの名無しさん
23/01/07 18:46:02.96 Oa/pj9jla.net
いいえそれは処理1次第です

580:デフォルトの名無しさん
23/01/07 19:05:43.05 2xit7B8+0.net
>>569
ありがとうございます
処理1はreturnや他関数への再帰はしないものとします

581:デフォルトの名無しさん
23/01/07 19:11:57.35 GmV1yQnL0.net
最大の再帰の深さは JavaScript エンジンによって制限されていて
その範囲内で終了条件を満たすように作る必要があります
でなければエラー終了するので、無限再帰は有り得ません

582:デフォルトの名無しさん
23/01/07 21:33:23.91 YilgzCe20.net
そもそも永久に再帰は無理なのを理解していないのか?
それと何故再帰を使うのかという理由が全く分からん

583:デフォルトの名無しさん
23/01/08 01:51:54.62 uPZeFpc/0.net
まあ普通は無限ループだな
わざわざ再帰にしなければいけない
理由が何かだな

584:デフォルトの名無しさん
23/01/08 01:53:28.42 FOdy7Dic0.net
末尾再帰最適化が保証されている言語では特定条件を満たせばさもループの代替として使えるが
javascriptではそうはならなかった
以上

585:デフォルトの名無しさん
23/01/08 01:53:30.69 gpkzwVQsM.net
末尾最適化されてれば無限ループ可能でしょ?
ES2015で末尾最適化の仕様化されたけど適合してない実装が多いというだけ

586:デフォルトの名無しさん
23/01/08 01:54:05.49 gpkzwVQsM.net
ありゃ被ったか

587:デフォルトの名無しさん
23/01/08 02:24:13.14 FOdy7Dic0.net
規格があっても準拠するかどうかは実装次第というね
ちなみにjavascriptは関数がファーストクラスでレキシカルスコープを持つためいわゆるクロージャを無意識に生成できる
クロージャがあれば末尾再帰できないからと不自由に感じることはないと思われる

588:デフォルトの名無しさん
23/01/08 17:51:20.88 TObCTh0j0.net
>>572
@supportsや@mediaのネストされたcssの全プロパティ値を取得するために
再帰使いたかった

589:デフォルトの名無しさん
23/01/09 07:24:55.41 Bl4X3MiM0.net
>>578
無限にネストすることはないはずだが

590:デフォルトの名無しさん
23/01/09 12:44:15.19 mLvtK4oer.net
>>578を実現するにしても>>568にはならんと思うけども

591:デフォルトの名無しさん
23/01/09 13:34:27.76 nBXeWSyT0.net
ホントになw
// aはarray
function test(a)
{
a.forEach( b => {
if (b.isArray()) {
test(b)
}
})
}
みたいな感じなら分かるがw

592:デフォルトの名無しさん
23/01/09 15:00:57.73 2yNmR2Eh0.net
ノードを全部舐めるみたいなトラバース系の処理はエンジンの制限とか気にするなら再帰のロジックを配列とループで作った方が安全だし
恐らく関数を呼び出すより速いから検討してみてね

593:デフォルトの名無しさん
23/01/14 18:28:43.16 WRdKOG7o0.net
質問
scriptタグで指定されてるリンク先をjavascriptで変えたい
例えば. script type="text/javascript" src="A”
になってんのを
script type="text/javascript" src="B”に変えたい
replace等でやろうとしたものの上手くいかなかった

594:デフォルトの名無しさん
23/01/14 20:27:52.90 Ww/QFSM20.net
ちょっとググったら出てくるやろw
URLリンク(www.softel.co.jp)

595:デフォルトの名無しさん
23/01/14 23:08:43.95 WRdKOG7o0.net
>>584
ありがとうございます…
本当に助かりました…

596:デフォルトの名無しさん (アウアウウー Sac7-wtyD [106.146.97.205])
23/01/15 01:42:33.54 k1TuDUU1a.net
確かに以下のように、jQuery で、script タグのsrc 属性を、
a.js から、b.js へ変えても、scriptタグが再読み込みされない

$("script[src='a.js']:first").each(function (index, elem) {
$(elem).attr('src', 'b.js');
});

新たなscriptタグを追加してから、元のscriptタグを削除すれば、読み込まれるかも

597:デフォルトの名無しさん
23/01/15 02:01:27.46 iV9MAA6y0.net
読み込まれたスクリプト自体はscript要素消しても消えない事に注意

598:デフォルトの名無しさん
23/01/15 13:53:25.79 0IRxms8qM.net
ルーターのブロードステーションに電源を入れると
エッジブラウザが起動して自動的にブロードステーションのルーターのページが表示されます。
ブロードステーション関連のソフトウェアは一切インストールしていないにもかかわらずです。
これって動きだけ見ますとルータが勝手にこっちのpcを操作してるように見えるのですがどういう仕組みなんでしょうか?
ブラウザ(JavaScript)はページ内しか操作出来ない筈なんですが。

599:デフォルトの名無しさん
23/01/15 15:02:28.33 yvxMece60.net
よろしくお願いします
【環境】Win11,Chrome
【何をしたのか】下記コードをHTMLファイルにしてchromeで読み込ませて、コンソールで見た
JSONのItemsを一個追加して、追加したageだけ書き換えたいが、両方書き換わる
【エラーメッセージ】エラーメッセージはない
【期待する結果】Itemsの2個めのageだけが40になるはず
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
<script>
json =
{
"color_list": [ "red", "green", "blue" ],
"Items": [
{ "name": "Tanaka", "age": 26 },
]
}
data0=json["Items"][0]
json["Items"].push(data0)
console.log("before");
console.log(json["Items"][0]["age"]);
console.log(json["Items"][1]["age"]);
json["Items"][1]["age"]=40
console.log("after");
console.log(json["Items"][0]["age"]);
console.log(json["Items"][1]["age"]);
</script>

結果
before
26
26
after
40
40

600:デフォルトの名無しさん
23/01/15 15:12:37.19 XTiaoq8f0.net
>>589
そのコードで、参照がコピーされているので
data0={...json["Items"][0]}
とすればいい

601:デフォルトの名無しさん
23/01/15 15:18:59.77 iV9MAA6y0.net
>>589
URLリンク(developer.mozilla.org)

602:デフォルトの名無しさん
23/01/15 15:22:38.08 yvxMece60.net
>>590,591
できましたありがとうございます。

603:デフォルトの名無しさん
23/01/15 15:31:02.14 XTiaoq8f0.net
この場合はこれで十分ですが
スプレッド構文はシャローコピーなので、
データがより複雑な構造の場合は、それなりの記述が必要です

604:デフォルトの名無しさん
23/01/15 15:40:55.97 iV9MAA6y0.net
>>588
キャプティブポータルの検出機能が誤爆してるんじゃないかな

605:デフォルトの名無しさん
23/01/15 20:06:20.61 7dUg93Xk0.net
mainfn()
function mainfn(){
pg1 = win1.pnl.add('group')
pg1.orientation = "row"
pg1.add("statictext", [0,0,70,23], "拡大・縮小")
rd11 = pg1.add("edittext", [0,0,40,23], 100)
pg1.add("statictext", [0,0,30,23], "%")
pg9 = win1.pnl.add('group')
pg9.orientation = "row"
CAN = pg9.add("button",[0,0,100,30],"cancel")
OK = pg9.add("button",[0,0,100,30],"OK")
CAN.onClick = function(){win1.close()}
OK.onClick = function(){
win1.close()
dofn()
}
win1.show()
}
function dofn(){
bai = parseFloat(rd11.text)
…… 以下略
これが正常に動作するのですが、rd11はローカル変数だとおもうのですが、なぜ違う関数内(dofn())から読めるのでしょうか?
こういう書き方が出来るのなら楽なのですが…

606:デフォルトの名無しさん
23/01/15 20:27:36.55 Vv6s9YYpr.net
関数内でvarを付けずに宣言された変数はグローバルスコープになる
var rd11 = pg1.add("edittext", [0,0,40,23], 100)
とすると関数スコープになって外部からアクセスできなくなるはず
関数内での変数宣言はvar文で行うべきで
これを「楽」と思ってしまうのは危険

607:デフォルトの名無しさん
23/01/15 20:53:03.10 7dUg93Xk0.net
>>596
ありがとうございます
非常に勉強になりました

608:デフォルトの名無しさん
23/01/15 21:30:36.07 YqyTW3mJr.net
>>597
'use strict'が効くならスクリプトの先頭行に書いとくといいよ

609:502
23/01/15 23:28:40.23 bMctduL80.net
>>595
それAdobe Illustratorかなにかで使うソースでしょ?
どういう環境で使うソースなのかは一言書いといた方がいいよ

610:デフォルトの名無しさん
23/01/15 23:45:44.09 r5uLxMWea.net
ES2015(ES6)以降は最低限、
変数宣言にはvar ではなく、let/const を付けよう

611:デフォルトの名無しさん
23/01/15 23:55:04.30 cRCjJN100.net
>>599
この指摘は何度も見てるが、いつになっても改善されない
質問者にとっては直す気がない、どうでもいい問題なんだろうな…

612:デフォルトの名無しさん
23/01/15 23:55:05.86 5X3ij1Yxr.net
>>600
このadobeのスクリプトはES3相当らしいのでvarを案内してるのよ
まあそもそもスレ違いだからID:7dUg93Xk0は今後adobeのフォーラムで質問するようにね
その方が我々も余計な労力を払わなくていいし君も的確な回答がもらえる
URLリンク(community.adobe.com)

613:デフォルトの名無しさん
23/01/15 23:55:37.31 cRCjJN100.net
>>599
この指摘は何度も見てるが、いつになっても改善されない
質問者にとっては直す気がない、どうでもいい問題なんだろうな…

614:デフォルトの名無しさん
23/01/15 23:57:40.43 cRCjJN100.net
申し訳ない
投稿エラーで再投稿したら、二重投稿になってた

615:デフォルトの名無しさん
23/01/16 01:46:54.32 DS9XkUYq0.net
>>599
すみません
次から書きます
あまりillustratorに特化したことは質問しません

616:デフォルトの名無しさん
23/01/16 01:51:10.12 DS9XkUYq0.net
>>598
そういうのがあるんですね
知らなかったです

617:デフォルトの名無しさん
23/01/16 02:24:41.48 SauNqkHgr.net
>>606
知った以上次からそちらにに行って質問してください
環境の説明も必要ないしillustratorに特化した質問もし放題だし良いことづくめですよ

618:デフォルトの名無しさん
23/01/16 08:45:42.10 Hbn6MJh3M.net
イラレ特化だからではなくてJavaScriptのバージョンの問題なんだけど
なんも書いてなければ最新のモダンブラウザのつもりでみんな考える
今JavaScriptのバージョンってES12くらいかね、あんまりそういう言い方しないけど
イラレ搭載のはES3なの?それも知らんけど
クッソ古いから使える文法も関数もまるで違うから環境を書けと言っているのよ
そこらへん多分知らなかったんだろうけど、それは仕方ないけど、次からは環境きちんと書いて
というかできれば以降はAdobeのフォーラムでやって

619:デフォルトの名無しさん
23/01/17 01:44:26.39 BTJjkb3Ra.net
>>589
C/C++ 以外の言語は、参照しかコピーしない・shallow copy。
実体は再作成されない
なので、deep copy するのに、参照のリンクが切れないので困る
だから、marshal とか、わざわざオブジェクトをJSON 文字列化して、
その文字列から、新しいオブジェクトを作ったりする

620:デフォルトの名無しさん
23/01/17 16:25:41.45 XA7n1WWP0.net
>>609
え?

621:デフォルトの名無しさん
23/01/17 19:01:55.76 LBqNgpc6H.net
ポインタのこと?

622:デフォルトの名無しさん
23/01/18 00:05:10.90 csewAuIZ0.net
検索アドレスに言語指定が必要になって下のスクリプトを書きました。
function Jump(){
var kekka =
"ht"+"URLリンク(www.concertzender.nl) +
document.concertzender.kensaku.value +
"&lang=nl";
location.href = kekka;
return;
}
kensaku は検索フォームの文字列です。これで正常動作するのですが、
エラーチェックすると&が警告されて気になります。
&にしたらアドレスが&になって検索できないし、
なんとかならないものでしょうか・・・

623:デフォルトの名無しさん
23/01/18 00:09:24.42 csewAuIZ0.net

&amp; です
&#038; でも同じです

624:デフォルトの名無しさん
23/01/18 06:35:54.86 guU+fOES0.net
この気持ち悪いの何?
> "ht"+"tp

625:デフォルトの名無しさん
23/01/18 07:40:19.90 Eqd2U92jH.net
documentのpropertyにconcertzenderって標準でないっしょ?
スクリプトのどっかでなんか設定してるん?

626:デフォルトの名無しさん
23/01/18 07:41:25.64 Eqd2U92jH.net
それとエラーの内容も書き込まずにして質問っていうのもどうなの?

627:デフォルトの名無しさん
23/01/18 08:57:37.16 cgb3Ru010.net
>>614
5ch対策でしょ

628:デフォルトの名無しさん
23/01/18 10:05:55.23 csewAuIZ0.net
>>616
すいません。単純に特殊文字ダメよという内容だったんで・・・
"&lang=nl";
"&lang=nl"; もし、"&" で始まるエンティティを含めるつもりなら、";" で終了させるべきです。
このエラーメッセージのもう一つの理由は、このテキストの直前にある「&」文字をエスケープしなかったために、
誤ってエンティティを作成してしまったことです。(機械翻訳)
自分としては&amp;と書いて、リンクアドレスとして&を出力したいわけです・・・

629:デフォルトの名無しさん
23/01/18 10:16:20.21 guU+fOES0.net
>>617
あーそういうことか。コピペコードで悪さでもしようとしているのかと思ったけど違うみたいね
>>612
大体どの言語でもクエリ文字列を作る仕組みが用意されているのでそれを利用するのが適切です
JavaScriptならコレかな
URLSearchParams
URLリンク(developer.mozilla.org)

630:デフォルトの名無しさん
23/01/18 11:11:32.49 CwkcAAQnr.net
>>618
載せるならエラーメッセージ原文を
で、そのメッセージでググってみた?
あとエラーチェックするとって具体的にどういう操作をしたの?

631:デフォルトの名無しさん
23/01/18 12:42:13.54 iQx/CEUf0.net
>>612
htmlのscript要素の中身はCDATAなので文字参照にする必要なし
もちろんinnerHTML等htmlとしてパースされるものに突っ込む場合は必要だが
htmllintなんかでエラーになるのは無視していい

632:デフォルトの名無しさん
23/01/18 13:08:45.81 csewAuIZ0.net
>>620
エラーメッセージはその部分は&amp;だろと言っているのですが、じゃあ&amp;と書くと
URLリンク(www.concertzender.nl)&amp;lang=nl と出力されてエラーになり、困ったわけです・・・
>>621
無視していいんですね。ありがとうございます。
htmlでは&amp;と書くと&になるのに、スクリプトの部分ではそうならないのですね。

633:デフォルトの名無しさん
23/01/18 13:26:39.01 Okbz9NQsr.net
>>622
何も質問に答えてないよね
答える気があるならもう一度>>620を読んでほしい

634:デフォルトの名無しさん
23/01/19 22:07:44.38 40XBuhhWH.net
君は君の質問に反応しない人には
推し量って導こうという崇高な意識はないの?JS使いなのに?

635:デフォルトの名無しさん
23/01/20 00:14:23.52 VzeMnjK00.net
>>624
誰からも回答してもらえない質問者は、他の人を導く存在に昇格ということか
質問に回答しないのが本人の為なのかもしれんな

636:デフォルトの名無しさん
23/01/20 01:57:18.23 ptsQI5JN0.net
それよりJavaScriptをJSと略すと女子小学生しか思い浮かばないからそろそろやめたほうがいい

637:デフォルトの名無しさん
23/01/20 07:46:55.99 PpNyk8UWr.net
>>624
>君は君の質問に反応しない人には
反応しない人?
質問に反応されたけど回答になってなかったからそこを指摘したんだけど

638:デフォルトの名無しさん
23/01/20 17:53:26.94 zXaveivW0.net
>>626
J

639:デフォルトの名無しさん
23/01/26 00:31:01.01 c9Kzf+f60.net
【環境】Win11,Chromeで表示させたHTMLの中のjavascript
Windowsのフルパスのファイル名が入った変数を\でsplitしたいんだけど可能?
x_textにはJSONデータから取ってきた'D:\\00.png'が入っていて
console.log(x_text)だとD:\00.pngと表示
これをsplitすると
aaa1.html:154 Uncaught TypeError: Assignment to constant variable.
になる。
split('\\')をsplit('\\\\')にしても同じ
console.log(x_text)
arr_text = x_text.split('\\') ←ここでエラー
console.log(arr_text[0])

640:デフォルトの名無しさん
23/01/26 00:37:27.57 q740ttN00.net
>>629
arr_textがconst宣言されてるだけでは?

641:デフォルトの名無しさん
23/01/26 01:06:05.60 c9Kzf+f60.net
>>630
できました。
サンクスです。

642:デフォルトの名無しさん
23/01/29 10:31:07.49 rZA8vUyra.net
初学者質問ですいませんが、変数aが文字列あいう、かつ、変数bがundefinedでない時 というif文を書きたい時
if (a=='あいう' && (!(b === void 0))) {...
という書き方であってますか?
よりシンプルな書き方とか、より標準的な書き方ってありますでしょうか。

643:502
23/01/29 12:00:10.71 9rN3KLzS0.net
厳密不等価演算子 !==
URLリンク(developer.mozilla.org)
undefined が予約語になってないから void 0、ってのは……はて、今もやるものかね

644:デフォルトの名無しさん
23/01/29 12:54:20.77 eUvMCdrW0.net
if(a == 'あいう' && !b)でもよさそうな気がしなくもない

645:デフォルトの名無しさん
23/01/29 15:43:05.57 d0tJgmu5r.net
>>633
undefined は予約語ではないのでローカル変数による上書きが可能…という意味では、void 0 を使う価値はある

646:デフォルトの名無しさん
23/01/29 15:59:30.70 rpOrCqGha.net
>633
ありがとうございます。リンク先確認しました。
if(a=='あいう' && b!== undefined またはvoid 0)
という感じでしょうか。
ここでb!= undefined とするとまずいのはbがnullの時だけ、という認識でいいでしょうか。
>634
ありがとうございます。bが0や空文字の時にも偽になりそうです。

647:デフォルトの名無しさん
23/01/29 16:03:43.52 R24XfIrD0.net
第一にjavascriptみたいな後付け追加仕様が混在する言語は規格よりも実装の影響力が強いから
想定環境で検証済の方法を採用すべきだと思う
コードとしては変数をtypeofで"undefined"と比較するのが恐らく理解しやすいが、
メンテナがjavascriptに十分慣れていてvoid 0のイディオムの理解を期待できるならそっちでもいい

648:デフォルトの名無しさん
23/01/29 16:28:19.00 MX/guDl/d.net
>>636
結局のところ
・undefinedが上書きされる可能性を考慮する必要があるのか
・bがundefined以外のfalsyな値を取りうるのか
・取る場合それぞれの値をundefinedとは区別したいのか同じとみなしたいのか
この辺次第で望ましい書き方は変わってくるわけで

649:デフォルトの名無しさん
23/01/29 16:30:22.92 d0tJgmu5r.net
>>636
型チェックも働かせるなら
if (a. === 'あいう' && b !== void 0)
と書けば良い
'あいう' も==では型チェックしない
> ここでb!= undefined とするとまずいのはbがnullの時だけ
まずいのは、undefined! == void 0 の場合

650:デフォルトの名無しさん (アウアウウー Sacd-3+Au [106.128.44.107])
23/02/12 19:44:05.09 zQHZ3m1Fa.net
//☆☆県(API番号☆00000)の予報を取得
let url = "URLリンク(www.jma.go.jp)☆00000.json";

fetch(url)
.then(function(response) {
return response.json();
})
.then(function(weather) {
console.log(weather);
//☆☆県を選択し、変数に詰め直す
let area = weather[0].timeSeries[0].areas[0];
console.log(area);
//発表者と更新日時の情報を書き出す
document.getElementById("publishingOffice").lastElementChild.textContent = weather[0].publishingOffice;
document.getElementById("reportDatetime").lastElementChild.textContent = weather[0].reportDatetime;
//特定の地域の情報を画面に書き出す
document.getElementById("targetArea").lastElementChild.textContent = area.area.name;
document.getElementById("today").lastElementChild.textContent = area.weathers[0];
document.getElementById("tomorrow").lastElementChild.textContent = area.weathers[1];
document.getElementById("dayAfterTomorrow").lastElementChild.textContent = area.weathers[2];
});

上手く動かないのですがどこが間違えてますか?教えてください。

☆はわざとです

651:デフォルトの名無しさん
23/02/13 16:33:17.79 6gR8iJfAr.net
バグってるので調査してください
それは質問ではなく作業依頼

652:502
23/02/13 22:37:53.05 E1kxmkHl0.net
>>640
やりたいことも伝えずに上手く動かないと言われてもなー

653:デフォルトの名無しさん
23/02/14 07:31:57.89 NKP9M84/H.net
なぜ自身でデバッグせんのよ

654:デフォルトの名無しさん
23/02/14 21:18:40.92 snyjWmK+0.net
そのメソッドチェーンやめれば分かるよ
エラーが起きない前提があってのメソッドチェーンだからよ

655:デフォルトの名無しさん
23/02/17 12:17:26.22 DJukcnvm0.net
$.each()とsetIntervalをつかって、
インターバル時間ごとに順番に配列の中身を、コンソール出力する方法ありますでしょうか?
$.each()は、一度に処理するから、一つづつコンソール出力するのは難しいですかね。

656:デフォルトの名無しさん
23/02/17 20:26:53.96 iF4/ZjHx0.net
>>645
$,each()を使う理由がわからない
setIntervalだけ使えば良い

657:デフォルトの名無しさん
23/02/17 22:54:40.37 iF4/ZjHx0.net
>>645
clearintervalで1回だけタイマーを動かしてPromise化してawaitして$.each()を使えば、理屈ではできると思う
手段のモ目的化、かつ無駄に複雑だと思うが

658:デフォルトの名無しさん
23/02/18 19:51:29.82 gBmvvkX6a.net
nodeでPythonのif name==main
みたい


659:なことできませんか? メソッドの動きをデバッカーでみたいんです



660:デフォルトの名無しさん
23/02/24 01:21:32.26 jGK2BMhd0.net
//【環境】Win11,JScript
//【何をしたのか】case文のところ


661:に条件式を書き、breakせずにすべての条件式で評価したい //【サンプルコード】現象を再現可能な最小限のコードを書いてください。 a=1 switch (true) { case (a==1): a=a+16 WScript.echo("aの値を変更a=",a) case (a>10): WScript.echo("a>10","a=",a) a=a-10 WScript.echo("aの値を変更a=",a) case (a>30): WScript.echo("a>30です","a=",a) a=0 WScript.echo("aの値を変更a=",a) } WScript.echo("最終的な結果a=",a) //【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用) aの値を変更a= 17 a>10 a= 17 aの値を変更a= 7 a>30です a= 7 aの値を変更a= 0 最終的な結果a= 0 //【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。 2番目のcaseでa=7だから3番目のcaseにはいかず、最終的にはa=7になるのでは?



662:デフォルトの名無しさん
23/02/24 02:46:21.28 thXJapXb0.net
>>649
上から順に case が評価され、どこかで真になればそれ以降の case は評価されない。
break してないからそれ以降の処理がフォールスルーで実行されてるだけ。
全部の条件を評価したいなら普通に if で書けばいいと思うよ。

663:デフォルトの名無しさん
23/02/24 05:29:40.16 xQyCpHMf0.net
そもそもswitch文って条件にtrue入れて使うようなもんじゃないぞ

664:デフォルトの名無しさん
23/02/24 08:59:59.37 thXJapXb0.net
>>651
case に式を書けるようにしたことによって使えるようになった副作用みたいなものだよね。
switch の式と一致する case を探すのが switch文の動作だとするなら、switch の式 true と一致する値となる、すなわち true になる式を持つ case が選択される。
個人的には if で書けばいいものをわざわざ分かりづらい書き方にしてるバッドプラクティスだと思ってるが、フォールスルーと組み合わせると if よりもスマートに書ける可能性はあるかもね。
特に >>649 のように全部の case を評価してほしいなら、switch で書く利点が何一つ無い。
if より利点がある場合は、フォールスルーする場合に最初に true になる case までしか式が評価されないことくらいなのに。

665:デフォルトの名無しさん
23/02/25 02:30:10.34 E1i3tKVi0.net
>>652
良いサンプルが思いつかんけど、
ifで書こうとすると、重複する処理を書かなければいけなくなったり、フラグの変数を導入したりすることになるんだけど、
breakなしのswitch case文ならうまいこと書けるんじゃないかと思ってやってみたけど、動かなかった。

666:デフォルトの名無しさん
23/02/25 21:04:04.70 5GrSMYMK0.net
jQuery以外のライブラリ・フレームワークは廃止して欲しい。
覚えるのが大変。

667:デフォルトの名無しさん
23/02/25 22:01:05.33 YxrjvuYta.net
react だけでよくね
jqueryとかいい加減消滅しろよ

668:デフォルトの名無しさん
23/02/25 23:22:22.93 5GrSMYMK0.net
>>655
この2つは併用出来ないから辛い。
で、reactならではの利点は?

669:デフォルトの名無しさん
23/02/25 23:31:29.20 fw0b+BcSM.net
質問スレで焚き付けんな

670:デフォルトの名無しさん
23/02/25 23:38:37.47 TypeZdxc0.net
素の JS でいじゃん。
というのは言い過ぎかもしれんけど、何に使ってるんだか分からんようなことでいちいちおまじないのように jquery 読み込んでる呆れるようなところも少なくないんだよな。
通信回線速度も処理能力も上がってるから動いちゃいるが、とりあえず素の JS で書けるようになれと言いたい。
ブラウザ毎の非互換も少なくなってるし querySelector みたいな便利なメソッドもあるし、そんなに苦労しないでしょ。

671:デフォルトの名無しさん
23/02/25 23:49:36.71 YJ+BhbRla.net
それなjqueryおじさんはJSだけで書けるようにしておけ
それでも足りないならReact使えな

672:デフォルトの名無しさん
23/03/01 19:53:41.69 hdBOeOla0.net
githubで他人のコード見てるとclassもprototypeも使われてないやつが多いんだけど何でなん?ベストプラクティスがruby以上にわからん何が正解なん?

673:デフォルトの名無しさん
23/03/01 23:29:12.38 8kmkGnGP0.net
暗黙的なクロージャがあるからclassやprototypeを使わずとも割と困らないのが何でなん?の回答になる

674:デフォルトの名無しさん
23/03/02 02:00:11.27 65NO3QYK0.net
htmlコーダー志望の初心者です。
JSの入門書を読み終えたのでより実践的な学習に移行したいのですが、
既存の書籍やサイトは総論のような基本的な知識に焦点を当てたものが多い印象で、
実務において初心者コーダーにどのようなプログラムの作成が
求められてくるのかが判然としません。
そのような内容に焦点を当てた書籍やサイト等はありますか。

675:デフォルトの名無しさん
23/03/02 19:51:27.97 eGjuMjwU0.net
そもそもhtmlコーダーって何?ってぐぐってみたらデザイナやエンジニアが片手間でできる内容だし専門職としては成立せんのでは

676:660
23/03/02 23:05:32.75 65NO3QYK0.net
>>663
htmlコーダーという職種自体がオワコンですかね…
ご意見参考にさせていただきます。

677:デフォルトの名無しさん
23/03/03 08:25:40.95 DJxhSXLyr.net
99%のエンジニアは片手間でできないからな
エンジニアはhtmlとcssをバカにするけどほとんどのエンジニアはまともに使えていないんだよ
特にcss
使い方を知らない
勉強しようとしても理解できない
なのにバカにする
エンジニアは視覚からコードに落とし込む能力が絶望的に劣っている

デザイナーから上がっきたモックをhtmlとcssで再現できない

だけどその事実がバレたくないからコーダーといってバカにする

実際にはjsxとstyle componentなどで必須スキル

必須だけどできないからhtmlとcssはデザイナーの仕事だと言い放つ

じゃあjsxはデザイナーに書かせるのか?と聞くと無言
毎回このパターン

678:デフォルトの名無しさん
23/03/03 08:32:56.76 an7QtCXRd.net
まあでもそういう業界だからね
連携ダメだからと言って隙間に入り込める余地があるかどうか

679:デフォルトの名無しさん
23/03/03 09:44:56.39 o6EY7x580.net
>>665
組み込み系や汎用系のエンジニアにでも頼んでるのか?
ちゃんとWeb系やってるとこに頼みなよ

680:デフォルトの名無しさん
23/03/03 10:01:30.76 DJxhSXLyr.net
>>667
むしろ組み込みは汎用系のほうは知らん
Web系エンジニアはこんなんだぞ
ほんの少しだけ有能なフロントエンジニアがいる現状
なぜならフロント開発スキルとデザインスキルの両方を持ち合わせた人材がほぼいないから

681:デフォルトの名無しさん
23/03/03 10:24:24.87 o6EY7x580.net
webプログラマーに高度なデザインまで要求するのは無理でしょ
そのためにプロのデザイナーがいるんだし
でもほとんどのエンジニアがhtmlとcssをまともに使えないなんてありえない
今いる環境が悪すぎるんじゃないの?

682:デフォルトの名無しさん
23/03/03 11:25:14.28 yQajwbSzM.net
ぶっちゃけデザインするやつが CSS まで書くのが一番いいんじゃね?
位置やら大きさやらの細かい詰めまでこだわれるでしょうに。

683:デフォルトの名無しさん
23/03/03 11:27:48.97 GvE2UXq10.net
アニメーションとかJsonでデータいじくる時だけ呼んでください
ってことにしてる社内ニート

684:デフォルトの名無しさん
23/03/03 11:54:37.73 DJxhSXLyr.net
こういうこと
デザイナーの担当
・モック作成
・Atomicデザイン込みのコンポーネント設計
・コンポーネント作成
・App作成(コンポーネントの組み上げ)
・jsx、css
・state更新とrender関連
・レスポンシブ対応
・トランジションやアニメーションなど
・DOM生成後の表示・操作・調整(表示順やインタラクション)
・エラー表示、警告
・htmlバリデーションのcheckValidityやreportValidity処理
フロントエンジニアの担当
・APIでデータ送受信
・propsで流し込み

685:デフォルトの名無しさん
23/03/03 12:03:53.67 aLTOWI5kM.net
>>672
それ専業のデザイナー置いても暇を持て余すような職場だろ
普通デザイナーにjsxなんて書かせないよ

686:デフォルトの名無しさん
23/03/03 12:14:59.23 o6EY7x580.net
ほとんどのエンジニアがhtmlもcssもまともに使えない職場みたいだからなw

687:デフォルトの名無しさん
23/03/03 12:33:55.85 DJxhSXLyr.net
職場じゃなくてそもそもエンジニアたちがhtmlとcssが絶望的にゴミレベルしかいないんだよ
海外でも同じ傾向がある
なのに自分たちはできると勘違いしてるから話が通じないんだよな

688:デフォルトの名無しさん
23/03/03 13:31:04.49 o6EY7x580.net
jquery使えます!って嘘ついたデザイナーの尻拭いをさせられたことはあったな

689:デフォルトの名無しさん
23/03/03 13:32:46.28 yQajwbSzM.net
>>675
そういうお前は逆にサーバサイドは絶望的な腕前なんじゃないの?

690:デフォルトの名無しさん
23/03/03 15:00:35.71 DJxhSXLyr.net
>>677
わざわざ煽りご苦労
サーバーサイドが絶望的どころかサーバーサイドもやってるが?
むしろフロントよりも先にサーバーサイドからやってたわ

691:デフォルトの名無しさん
23/03/03 15:24:30.84 yQajwbSzM.net
>>678
という人がどれだけいるのって話でしょ。
おれもサーバサイドの人というか、むしろwebじゃないサーバの人だけど。

692:デフォルトの名無しさん
23/03/03 18:33:43.53 omRbdhVsr.net
やたらイキって言葉遣いが悪いのと同じ回線だと肩身が狭い・・・

693:デフォルトの名無しさん
23/03/03 21:01:23.22 bsut6PhH0.net
>>672
デザイナーはせいぜいコンポーネント作ってStoryBookに載せるまでが責務だろw

694:デフォルトの名無しさん
23/03/03 22:20:39.69 Q9LzyMl00.net
プログラマにバカにされてreact勉強中のデザイナー様が激おこです

695:デフォルトの名無しさん
23/03/03 22:30:19.52 yxGxd3AO0.net
webデザイナーってjqueryぐらいまでは覚えさせられたかもだけど
流石にreactやvueまでやれってのは酷ではw
そんなのフロントエンドエンジニアの仕事でしょw

696:デフォルトの名無しさん
23/03/03 23:30:24.99 Q9LzyMl00.net
だってフロントエンドエンジニアはhtmlもcssもわからないバカばっかりなんだもん

697:デフォルトの名無しさん
23/03/04 18:46:55.35 erCI1bTUH.net
javascriptコードでバグの伝搬を制限して拡張性を高める必要性のある堅牢なプログラムなんて不要だからでしょ

698:デフォルトの名無しさん
23/03/04 18:52:38.30 erCI1bTUH.net
みんななんで仲良くなれないかな

699:デフォルトの名無しさん
23/03/05 16:50:40.53 RB9OOifa0.net
仕事だし自分の領域に少なからず関わってくるんだから覚えろよ
わからないじゃねーんだよボケ^^
これでよし

700:デフォルトの名無しさん
23/03/11 23:19:16.39 qvilA0zq0.net
sortメソッドは必ず、比較関数と一緒に使用する必要ありますか?
sortメソッドは数値を並びかえだと比較関数と一緒でないとうまくいかなくて、
でも、文字列のソートなら、ソート関数なくてもうまくいくみたい。
sortは文字列でも数値でもソート関数使った方がいいのでしょうか?

701:502
23/03/12 04:39:15.28 PQcYNrkb0.net
>>688
疑問に思うことがあれば、まずMDNで関数の仕様を確認してみるといい
sort 関数なら、解説に関数を指定しなかった場合についてもちゃんと書いてある
URLリンク(developer.mozilla.org)
> compareFn が与えられなかった場合、undefined 以外のすべての配列要素は文字列に変換され、文字列が UTF-16 コード単位順でソートされます。例えば、"banana" は "cherry" の前に来ます。数値のソートでは、9 が 80 の前に来ますが、数値は文字列に変換されるため、Unicode 順で "80" が "9" の前に来ます。undefined の要素はすべて、配列の末尾に並べられます。

702:デフォルトの名無しさん
23/03/12 09:33:44.40 do9jOqKh0.net
>>689
ありがとうございます。

703:デフォルトの名無しさん
23/03/12 10:07:09.74 mPShShEs0.net
ティラノスクリプトでゲーム作ろうとしたら、結局JSまで触らないと無理そうで及び腰・・・
・例えば変数aに"gazou1"という文字列を入れる
・『【"変数a"+.jpg】を表示』みたいな記述?? ←ここが分からない
・結果、gazou1.jpgが表示される
こんな感じの、変数に入れた文字列を使用して画像表示ってできますか?
JS 変数 画像表示 とかで調べても情報が多すぎてさっぱり分からない

704:デフォルトの名無しさん
23/03/12 11:40:49.62 SvUIzONJr.net
>>691
専用の掲示板へどうぞ
URLリンク(tyrano.jp)

705:デフォルトの名無しさん
23/03/12 12:27:02.18 mPShShEs0.net
>>692
誘導ありがとうございます
ティラノだけでは無理そう&ティラノ上ではJSの記述が使える、という事でこちらで質問しました
なのでJSで可能か不可能かだけでも教えて頂けると助かります
JSで不可能なら調べたところで出て来ないでしょうから延々調べ続けるはめに・・・

706:デフォルトの名無しさん
23/03/12 12:49:02.36 PwnTbWEur.net
>>693
まずはティラノスクリプトに詳しい人に聞いてみるのが筋ではないですか?
同じ問題に遭遇した人もきっといるはずでノウハウも蓄積されてると思いますよ
wikiなんかもあるようですし、そちらも確認してみましたか?

707:デフォルトの名無しさん
23/03/13 10:07:27.43 /ROF2oq40.net
>>691
こういうこと?
===============================
<body>
<a href='#' onclick='fun'>link</a>
</body>
<script>
function fun(){a.href='URLリンク(....)<)'}):
</script>
================================

708:デフォルトの名無しさん
23/03/13 17:49:23.15 dqLl9/D/M.net
>>683
むしろjQueryの方が難しいと思うけど...

709:デフォルトの名無しさん
23/03/13 19:09:00.85 LN5ju60U0.net
>>695
表示する画像を変数を使って切り替えたいので、
if 変数a=='花' なら 花.jpg を表示 else 変数a=='山' なら 山.jpg を表示
みたいな感じで一応は表示できるのですが、表示したい箇所が複数あるので
if 変数b=='花' とか if変数c==’’花' とかで凄く長くなりそうなのです
でももし 変数の中身+.jpg みたいな記述がjsに存在するなら
aの場所には 変数aの中身+.jpgを表示 bの場所には変数bの中身+.jpg みたいに凄く簡略化できるかなって
教えて頂いたコードを調べてみます!ありがとうございます!

710:デフォルトの名無しさん
23/03/13 19:18:34.65 z8Hv0b/wr.net
>>697
他板にティラノスクリプトスレがあったんで
専用掲示板より5chがいいのであれば続きはそちらでどうぞ
スレリンク(gamedev板)

711:デフォルトの名無しさん
23/03/13 19:42:26.91 LN5ju60U0.net
>>698
そこは質問スレじゃないのでどうにも質問しづらくて
とうかJSの質問スレでJSの質問してるのに「ティラノ上で動かしてる」ってだけで、
そこまで「よそいけ、よそいけ」って言わなくても・・・

712:デフォルトの名無しさん
23/03/13 20:03:21.60 z8Hv0b/wr.net
>>699
>そこは質問スレじゃないのでどうにも質問しづらくて
そのスレを「質問」で検索してみると皆質問してるのが分かります
気後れする必要はないと思いますよ
>とうかJSの質問スレでJSの質問してるのに>「ティラノ上で動かしてる」ってだけで、
>そこまで「よそいけ、よそいけ」って言わなくても・・・
あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです
それについてはこのスレよりティラノスレや専用掲示板の方が的確なアドバイスが得られるはずです
違いますか?

713:デフォルトの名無しさん
23/03/13 20:12:22.98 z8Hv0b/wr.net
ついでに「ティラノ上で動かしてる」JSについてもそちらで聞いた方が良いでしょう
ティラノスレを見渡すとJSのコードもたくさん貼ってありますよ

714:デフォルトの名無しさん
23/03/13 20:21:27.02 LN5ju60U0.net
>>700
>あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです
違います。自分の質問を要約すると「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」です
最初にティラノの名を出したことで誤解を招いたかも知れませんが、
>>691に >JS 変数 画像表示 とかで調べても
>>693に >なのでJSで可能か不可能かだけでも教えて頂けると助かります
と書いてあるように、ティラノではなく、あくまでJSについて尋ねています


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch