X



JavaScript の質問用スレッド vol.125
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 1301-RMnj [36.240.123.227])垢版2022/08/07(日) 15:57:40.26ID:TS5TGpUB0
!extend:checked:vvvvvv:1000:512
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。次スレは>>950>>2の「次スレの立て方」を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

■前スレ
JavaScript の質問用スレッド vol.124
https://mevius.5ch.net/test/read.cgi/tech/1636525464/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
0002デフォルトの名無しさん (ワッチョイ 3f01-RMnj [36.240.123.227])垢版2022/08/07(日) 15:59:57.05ID:TS5TGpUB0
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 https://plnkr.co/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■次スレの立て方
本文一行目に「!extend:checked:vvvvvv:1000:512」と書いて、>>1-5のテンレの「前スレ」「関連スレ」を最新化して立ててください。

■JavaScriptスレの現状
元々はWeb制作板が本スレでしたが、ライブラリ信者に荒らされ、プログラム板に避難所として本スレが立てられました。
Web制作板の本スレは荒らされてから次スレが立っておらず、重複スレの消化のみとなっています。
実質的に本スレは存在しない為、質問者はWeb制作板、ブログラム板のどちらのスレで質問しても問題ありません。
0003デフォルトの名無しさん (ワッチョイ 3f01-RMnj [36.240.123.227])垢版2022/08/07(日) 16:02:05.65ID:TS5TGpUB0
■関連スレ(Web制作板)
JavaScript の質問用スレッド vol.126 (重複スレの消化)
https://mevius.5ch.net/test/read.cgi/hp/1439005423/
JavaScript ライブラリ総合質問所 vol.5
https://mevius.5ch.net/test/read.cgi/hp/1465399470/
jQuery 質問用スレッド vol.7
https://mevius.5ch.net/test/read.cgi/hp/1466750494/

■各種仕様
◆ECMAScript
http://bclary.com/2004/11/07/ (ECMAScript 3 HTML版)
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/ (ECMAScript 3 和訳)
https://262.ecma-international.org/13.0/ (ECMAScript 2022)
◆HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/ (HTML Living
Standard)
https://momdo.github.io/html/ (HTML Living
Standard日本語訳)
0006デフォルトの名無しさん (ワッチョイ ff01-qy/x [126.242.196.185])垢版2022/08/07(日) 17:10:09.37ID:r7YsBDkd0
> Javascript はweb制作管理板、CGI はWEBプログラミング板へ。

これは?
0008デフォルトの名無しさん (ワッチョイ 4690-Htvk [153.207.71.13])垢版2022/08/08(月) 23:23:18.64ID:RzP/TMnO0
この板のJavaScript スレは、
web制作管理板が荒らされた時に、緊急避難用として立てられたもの

もう、この板でやる必要はない。
web制作管理板の方へ移動すべし!

全く、HTML, jQuery などに関係ない、
Node.js でも扱うなら、この板でも良いけど、
基本、Ruby on Rails などのフレームワークは、WEBプログラミング板
0011デフォルトの名無しさん (ワッチョイ ab01-adHA [126.80.253.234])垢版2022/08/14(日) 02:20:20.36ID:/Eqen91K0
🦏
0012デフォルトの名無しさん (ワッチョイ 3b68-PvqU [112.70.179.16])垢版2022/08/18(木) 14:56:28.79ID:ZVXdu8CF0
ローカルのhtmlファイル内に記載してるjsで位置情報取得するコードを書いてるのですが、
毎回位置情報を尋ねられてしまいます。
webサイトのページなら位置情報の使用許可を一度設定すれば、そのサイトでは次から尋ねられなくなりますが、
ローカルのhtmlファイルを開いても同様に永続的に位置情報の使用を尋ねられないようにする方法はありますか?
ブラウザはchrome使ってます。
0014デフォルトの名無しさん (アウアウウー Sa0f-oUG4 [106.181.217.92])垢版2022/08/18(木) 15:28:26.33ID:qt1eMpHHa
あとは https にしてみたらどうか
atmarkit.itmedia.co.jp/ait/articles/1605/13/news038.html
0017デフォルトの名無しさん (ワッチョイ cb01-gduT [60.151.253.164])垢版2022/08/18(木) 21:17:46.09ID:R8T3nWKo0
すんませんjQueryの質問なんやけど
eachでliタグの子要素のimgタグを取得してalt属性を追加して値はliタグの子要素のemタグのテキストにしたいんだが

全部のliタグの子要素のemタグのテキストを追加してしまう
対応するliタグの子要素のemタグのテキストをそれぞれ追加したいんや!
おせーてくれ!!たのんます!!
0020デフォルトの名無しさん (ワッチョイ ef02-Gxju [175.108.193.88])垢版2022/08/19(金) 13:26:53.16ID:v8JNzl630
japascriptは難しい。
初心者はまずはRubyから始めること

そしてRuby on Railsを習得する
javascriptyとjQueryはその後で良い。

こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
 ↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/
0021デフォルトの名無しさん (ワッチョイ 6b10-vj0F [180.12.82.129])垢版2022/08/19(金) 18:14:31.50ID:KbHvsoqL0
clickのタイミングについて
<input type="button" value="クリック" id="bt">

let aaa=0;
setInterval(
function(){
aaa=100;aaa=200;aaa=300;aaa=400;aaa=500;
},0
);
document.getElementById("bt").addEventListener(
"click",
function(e){alert(aaa);}
);
何回クリックしても500と表示されるけど500以外が表示されることはないんでしょうか?
aaaが200のときにクリックが割り込むとかはないんですか?
0022デフォルトの名無しさん (ワッチョイ cb01-6z5t [60.74.210.62])垢版2022/08/19(金) 18:41:35.47ID:hN4Icouo0
>>21
タイマー処理の関数呼び出しの途中でイベントハンドラが処理されることはない
0023デフォルトの名無しさん (ワッチョイ 6b10-vj0F [180.12.82.129])垢版2022/08/19(金) 18:53:07.56ID:KbHvsoqL0
>>22
どうもです
タイマー以外のfunctionでもfunctionの途中でイベントハンドラが呼び出されることはないってことですか?
0024デフォルトの名無しさん (ワッチョイ cb01-6z5t [60.74.223.30])垢版2022/08/19(金) 21:41:37.23ID:PiTy7UnQ0
JavaScriptは基本シングルスレッド
関数の実行途中に別の関数の処理が割り込んでくるようなことはない
0028デフォルトの名無しさん (ワッチョイ 75e5-s78Y [118.4.80.52])垢版2022/08/20(土) 12:02:01.28ID:tDO3e6hW0
サーバーで判断すべきだろう
クライアントで知りたいならサーバーに聞けばいい
0030デフォルトの名無しさん (スップ Sd43-PAk+ [49.97.96.68])垢版2022/08/21(日) 00:53:25.42ID:aTZvlMved
ナンセンスな質問かもしれませんが、JavaScriptにおいて関数はデータ型としてオブジェクトであり、一方でオブジェクトはプロパティとメソッドの集まりであると説明されています。
関数とオブジェクトはどちらが先に定義されているのでしょうか?
0032デフォルトの名無しさん (スップ Sd03-PAk+ [1.66.101.132])垢版2022/08/21(日) 10:31:51.96ID:3ESrn3ezd
>>31
先に存在しているとか先に実装されている(?)というようなイメージです
0034デフォルトの名無しさん (スップ Sd43-PAk+ [49.97.98.169])垢版2022/08/21(日) 11:25:21.77ID:df/SIE01d
>>33
ありがとうございます

もう少し調べてみると、 https://tc39.es/ecma262/multipage/overview.html#sec-ecmascript-overview でTerms and Definitionsのところに、関数はオブジェクトであってプロパティの他に実行可能なコードと状態を持つもの、という感じのことが書かれてて、メソッドはオブジェクトのプロパティの値である関数のことと書かれていました
こちらの説明で一旦納得できました
0035デフォルトの名無しさん (アウアウウー Sad9-dbST [106.181.223.3])垢版2022/08/21(日) 11:46:37.18ID:j3ukytx2a
v8のソースでも読んでみれば
0037デフォルトの名無しさん (ブーイモ MM8b-mKyu [133.159.149.74])垢版2022/08/21(日) 12:39:55.73ID:ZOLz03eMM
オブジェクトを定義するのにオブジェクトを使ったりStringという別のオブジェクト使えるの?
と疑問に思うのかもしれないけど
定義が存在する(名前解決可能である)ことを確認するフェーズと
定義の中身を検証するフェーズを分けることで可能

foo関数の中でbar関数を呼び出しつつ
bar関数の中でfoo関数を呼び出すような関数定義ができるのと同じこと
0038デフォルトの名無しさん (ワッチョイ d501-dbST [60.87.221.16])垢版2022/08/21(日) 15:06:45.69ID:D11cwWL50
>>32
「実装」というが、「仕様」上で両方とも存在しているなら、同時に「実装」されるのでは?

>>34
ES3には「オブジェクト」の定義はあるが、「関数」の定義はない
故に「歴史的にはオブジェクトが先に定義された」といえなくもないが、そんな回答を望んでいるようにも見えない
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/4_Overview.html#section-4.2.1

参考になるかわからないが、typeof演算子は「[[Call]] を持つObject型」の場合に "function" を返す
https://262.ecma-international.org/13.0/#sec-typeof-operator
0039デフォルトの名無しさん (スップ Sdc3-JVFl [1.72.7.185])垢版2022/09/02(金) 16:08:14.77ID:anBQQFEld
ブックマークレットのスレッドかこちらか悩みましたが質問なのでこちらでご相談させていただきます。

他者のWebサイトを閲覧する際、JavaScriptを用いて作成されている場合、リンクを新しいタブで開けない場面があります。
頻繁にページを進んだり戻ったりする場面、可能であればリンク先を別タブで開くようにしたいです。
ブックマークレットを用いて、現在ページのJavaScriptのリンクを別タブで開くように書き換える処理をすることは可能でしょうか?
0041デフォルトの名無しさん (ワッチョイ a52d-bBdM [220.100.64.9])垢版2022/09/03(土) 00:11:31.61ID:8AM/s+hA0
連想配列から特定のキーを検索して、重複がないもののみ取り出した配列を取得したいのですが、
このコードだと速度的に問題がありました。何か良い方法があったら教えていただけないでしょうか
const a= [
{'id': 1, 'category': 'animal', 'kind': 'dog'},
{'id': 2, 'category': 'fruit', 'kind': 'apple'},
{'id': 3, 'category': 'fruit', 'kind': 'orange'},
{'id': 4, 'category': 'animal', 'kind': 'dog'},
{'id': 5, 'category': 'animal', 'kind': 'cat'},
{'id': 6, 'category': 'fruit', 'kind': 'grape'},
]
var b=a.filter((x,y,z)=>z.slice(0,z.length).filter(w=>w.kind==x.kind).length==1);
console.log(b);
0042デフォルトの名無しさん (ワッチョイ ad5f-wuTS [106.185.148.64])垢版2022/09/03(土) 02:15:20.35ID:Wm/0iruN0
>>41
const buckets = a.reduce((buckets, current) => {
if (!buckets[current.kind]) {
buckets[current.kind] = [current];
} else {
buckets[current.kind].push(current);
}
return buckets;
}, {});
const b = Object.values(buckets)
.filter((items) => items.length === 1)
.flat();

速度は測ってないけどたぶんO(n^2)→O(n)になって速いはず
0044デフォルトの名無しさん (ワッチョイ 3501-bBdM [126.94.243.226])垢版2022/09/03(土) 10:05:53.47ID:RJZpwhgn0
>>41
要素数や重複要素のばらつき具合によって結果は変わるが、最終的には力業が最速な事が多い
https://jsfiddle.net/gft5ah0n/

極端な結果になっているのは重複要素がすぐそばにあり、while文による検索ですぐに見つかる為だ
重複要素が遠い位置にあるなら、while文による検索が遅くなるケースも十分にある

>>41のコードが比較的高速なのも重複要素が比較的近くにある為だ
Object.valuesやArray#filterによる変換コストが検索コストより高くついているので、他のコードが比較的遅い

重複検知が頻繁に発生するようであれば、データのも持ち方を new Map や new Set を使うように変更した方がいい
配列はユニークな値を得るのに向いていない
0048デフォルトの名無しさん (ワッチョイ 3501-bBdM [126.94.243.226])垢版2022/09/03(土) 11:16:26.73ID:RJZpwhgn0
>>47
高速化で考えるべきは「ループ回数の削減」と「変換回数の削減」

>>41 source
>>42 reduce
>>47 map

reduceはループ回数は削減されているが、変換回数がsourceよりも多い
要素数6では「変換コスト > 検索コスト」になってしまい、sourceよりも遅い
要素数192では「変換コスト < 検索コスト」となるので、sourceよりも速い

mapの変換回数は2回で Array.from() と results.values() のみ
ループ回数、変換回数ともにsource,reduceよりも少ない
要素数6、要素数192のいずれも map が最速となる

実際のところ、変換を一度も発生させないコードが理想となる
データの持ち方として配列(new Array)であるべきなのか、はよく考えた方がいい
0049デフォルトの名無しさん (ワッチョイ 3501-bBdM [126.94.243.226])垢版2022/09/03(土) 11:42:14.57ID:RJZpwhgn0
>>39
a要素でマークアップされているなら、難しくはない

for (let a of document.querySelectorAll('a[href]')) a.target = '_blank';

window.open()などでリンクを開く挙動もJavaScriptで制御しているなら、コードを読んでリンク先を得る手段を考える必要がある
0050デフォルトの名無しさん (ワッチョイ 9534-9i1j [14.14.181.44])垢版2022/09/04(日) 09:22:10.61ID:eAq4eNQY0
>>40
>>49
ありがとうございます。

テーブルの表示となっていて、行全体にリンクが設定されているようです。
以下のような記載が複数並んでおり、通常は左クリックでリンク先に移動しかできず、新しいタブで開くことができません。

<tr class=”〇〇〇” data-href=”★リンク先アドレス★” data-target=”〇〇〇”>
<td class=”〇〇〇”></td>
<td class=”〇〇〇”></td>
</tr>

素人ながらいくつかブックマークレットで試したのですが、逆に実行するとリンクが無効になる事が多々でした。
アドバイスをいただければ幸いです。
0051デフォルトの名無しさん (ワッチョイ d510-bEl6 [180.12.82.129])垢版2022/09/04(日) 12:38:54.82ID:FoFuUBY00
<div style="width:100%;height:200px;border:Solid 3px #0000ff" id="test"></div>

これのcss初期設定を取得したいのでstyle="○○"の○○部分を抽出したいんだけどやり方がわかりません。
element.style.widthみたいに取得すると途中で値を書き換えられると初期設定が得られないので
最初にタグに埋め込んであるものを取得したいんです。
0055デフォルトの名無しさん (ワッチョイ d510-bBdM [180.12.82.129])垢版2022/09/04(日) 22:38:54.08ID:FoFuUBY00
>>52-54
ありがとうございました
0056デフォルトの名無しさん (ワッチョイ d52c-6nWD [180.52.202.152])垢版2022/09/04(日) 23:03:12.95ID:9ocqxCfk0
>>50
開発者が、どのフレームワークを使っているのか分からないけど、
例えば、Ruby on Rails, Stimulus を使っているなら、

[Rails]Stimulusを使ってtableの行全体<tr>をリンクにする(jQuery不要)
https://zenn.dev/necocoa/articles/rails-stimulus-tr-link

これのhref_controller.js に、

export default class extends Controller {
toHref(event) {

// 既定の動作を取り消す
event.preventDefault()

// data-href 属性に入っている、URL を取得する
const href = event.currentTarget.dataset['href']

// URL を設定する
window.location.href = href
}
}
005756 (ワッチョイ d52c-6nWD [180.52.202.152])垢版2022/09/04(日) 23:14:48.88ID:9ocqxCfk0
>>56
// URL を設定する
window.location.href = href

みたいに直接、window.location.href に設定しているけど、

この場合、Ctrl + クリックや、
右クリックメニューから新しいタブで開くことは出来ないのかな?
0060デフォルトの名無しさん (ワッチョイ 3501-bBdM [126.94.243.226])垢版2022/09/05(月) 18:51:10.83ID:ng2JfbNn0
>>50
JavaScriptコードが不明なので正確な回答は不可能

>>58の想定通りなら、おそらくその実装が一番楽
tr要素ノードにclickイベントハンドラでwindow.openする実装と仮定して、下記実装が考えられる

1. elementdataset.hrefでリンク先アドレスを得る
2. createElementでa要素ノード生成
3. replaceChildで(A)のDOMになるよう調節
4. tr要素ノードの仕掛けられたであろうclickイベントハンドラをevent.stopImmediatePropagation()で封印

(A)
<tr class=”〇〇〇” data-href=”★リンク先アドレス★” data-target=”〇〇〇”>
<td class=”〇〇〇”><a href=”★リンク先アドレス★”></a></td>
<td class=”〇〇〇”><a href=”★リンク先アドレス★”></a></td>
</tr>

window.open()なんてレガシーコード書きたくないからあえてa要素を使っているが、
イベントを横取りできるなら、既存イベントハンドラと同じコードにしても良い
0063デフォルトの名無しさん (アウアウウー Sa69-QaXK [106.129.180.164])垢版2022/09/07(水) 17:04:03.05ID:zBxXyTwva
プログラミング初心者でJavaScriptを勉強してます。
メンバ変数A、メソッドBを持つクラスがあり、メソッドBの中で変数Aを活用(Aを用いた処理やAの変更)したいのですが、
Aを引数としてBに渡して返り値として受け取るのと、Bの中で直接this.Aと記述して処理するのは何か違いがありますか?
メソッドBに別の変数を渡す可能性があるなら前者でないといけないのでしょうが、そうでなければ後者の書き方でよいでしょうか?
0066デフォルトの名無しさん (スッップ Sd43-5GnA [49.98.171.228])垢版2022/09/07(水) 19:17:44.81ID:GIiuva0od
>>64
それ何にも疑問の解決になってないだろう
0067デフォルトの名無しさん (ワッチョイ 6501-bBdM [60.85.61.123])垢版2022/09/07(水) 20:26:24.25ID:LU0OXBc/0
>>66
↓のsetAとcalcAの違いを聞いてるんじゃないのか?

class Foo {
constructor (a) {
this.A = a;
}
setA (a) {
this.A = calc(a);
}
calcA (a) {
return calc(a);
}
}

わかっているらしいあなたが回答すれば済む話だが
0068デフォルトの名無しさん (ワッチョイ 2b7c-QaXK [113.43.107.134])垢版2022/09/08(木) 00:18:00.64ID:rIQlC2lz0
すいません。以下の様な状況でfuncCからfuncBまたはB'が呼ばれる状況を考えていました。B'のほうが楽な気がして。そもそも意味不明な質問だったら申し訳ないです…
```
class Foo{
varA; // varAの値はよそから取得

funcB (a){
//aに対する処理
return a;}

funcB' (){
//this.varAに対する処理
}

funcC(){
ans = funcB(this.varA);
または
funcB'();
ans = this.varA;
}
}
006965 (ワッチョイ 232c-HH83 [219.162.239.51])垢版2022/09/08(木) 07:17:36.21ID:eI1uoUaK0
Ruby では、>>65
に書いたように、

def f_1
@x = 1
end

みたいに、クラス内のインスタンスメソッド・f_1 内で、
インスタンス変数・@x を使えるので、一々、引数で渡す必要がない
0070デフォルトの名無しさん (ワッチョイ 955f-Iguz [14.13.137.64])垢版2022/09/08(木) 19:40:45.35ID:6QKcdu8L0
オブジェクト指向の一般的な話としては、クラス内の関数であればクラス内のメンバはいじっても問題ないと思う。

ただ、「どこの関数がこのメンバを触ってるのかわからない」ってほどクラスが巨大化するなら、もはやそれはたちの悪いグローバル変数そのものなので設計からおかしい。
0071デフォルトの名無しさん (ワッチョイ 6501-CzlZ [60.85.61.123])垢版2022/09/08(木) 22:51:00.93ID:D/mmzJCP0
>>68
一つ一つのコードの意味を理解して、一つ一つのコードでなぜをそれを使うのか、と自問して答えを出せば、自ずと答えが出てくる
質問していない部分で突っ込みどころが多すぎて、「何も考えてないんだな」と思わせられる

https://jsfiddle.net/qem7cLyf/
・なぜ 全ての関数は返り値を持たないのか?
・なぜ Foo1#funcB は静的関数ではないのか?
・なぜ Foo1#funcC,Foo2#funcC は返り値ではなく、グローバル変数に演算結果を格納したのか?
・なぜ Foo2#varA の初期化にコンストラクタの引数を使わないのか?

こういう質問全てにこたえられるぐらいに考えられないと良いコードはかけない

https://jsfiddle.net/s27mxepn/
・可能な限り、変数のスコープはせまくあるべき
・可能な限り、関数は参照透過性を持つべき

今後、インスタンスプロパティを拡張する予定があるならclassを使うべきだし、そうでないなら静的関数で十分
>>64で示した挙動の違いだけで十分に判断できる
0072デフォルトの名無しさん (オッペケ Sr81-3vxq [126.254.237.221])垢版2022/09/08(木) 23:10:43.06ID:DGEh14TYr
それがプログラミング初心者に投げつける言葉かよ・・・
そういう知識や判断力もゆくゆくは必要だけども物事には順序ってもんがあってまだその域ではなかろう
マウントが取りたいだけならもっと近いレベルの相手にやんなよ
0074デフォルトの名無しさん (アウアウウー Sa69-QaXK [106.129.156.188])垢版2022/09/09(金) 09:56:50.51ID:Rq87TVpoa
this.Aで書いた方が手っ取り早いことが多い気がしたのですが、そちらでもいいけどスコープに注意しないとバグの要因になる、グローバル変数を濫用しないようにというのと相似形の似たような話という認識でいいでしょうか。
下手したら必然性なく両者を混在させてしまったりしそうなので注意したいと思います。参照透過性とか言葉自体知りませんでした…
参考になりました。ありがとうございます。
0075デフォルトの名無しさん (スップ Sd03-5GnA [1.75.3.22])垢版2022/09/09(金) 11:06:49.13ID:hB1+BppPd
>>74
今は>>70の理解でいいと思うよ
今の時点であまり詰め込んでもしょうがないし
>>71みたいなののせいで萎縮しないでね
0076デフォルトの名無しさん (ワッチョイ 6501-CzlZ [60.85.61.123])垢版2022/09/09(金) 19:12:54.25ID:0zkp1JmC0
>>72
> 物事には順序ってもんがあってまだその域ではなかろう

順序が大切なことには同意
ダメ出しがたくさんあるのは「学習の順序」が間違っているから
いろいろと学習を飛ばしてコードを書いており、その質問をする域に達していない
初心者だからこそ、もっと基礎的な課題から取り組むのが現実解だと俺は思う
今までの受け答えを見る限り、付け焼刃で知識をつけているように俺には見える

> マウントが取りたいだけならもっと近いレベルの相手にやんなよ

マウントを取りたいわけじゃない
0077デフォルトの名無しさん (ワッチョイ 232c-HH83 [219.162.235.49])垢版2022/09/09(金) 20:14:57.93ID:n8dQNxep0
だから、オブジェクト指向とかプログラミングは、Ruby から始めるべき。
JavaScript(JS)みたいなややこしいもので、デザインパターンを学ぶべきではない

改訂2版 Ruby逆引きハンドブック
の1冊だけで、かなりのモジュール・ライブラリの使い方も分かる

同じページ数でも、JSなら、文法だけで終わる。
20年以上のJSの歴史を追っかけて行くから、文法だけでもRubyの5倍ぐらいある

だから、こういう言語へ手を出したらダメ。
Rubyist は、JSなどをコピペで済ます。
深い所までやらない。分量的に切りがない
0084デフォルトの名無しさん (ワッチョイ 6910-Vaw7 [180.12.82.129])垢版2022/09/11(日) 20:15:23.24ID:yDUj5jeF0
元の配列を関数内で空にしたいけどうまくいきません
100と表示されてしまったので空になっていませんでした。
配列は参照渡しなので元の配列も書き換えられると思ったんだけど
どうやれば関数内で元の配列を空にできますか?returnは使いたくないです。

let a_list = [100,200,300];
test(a_list);

function test(b_list){
b_list = [];
}
alert(a_list[0])
0086デフォルトの名無しさん (ワッチョイ 6910-V+uT [180.12.82.129])垢版2022/09/11(日) 21:06:49.62ID:yDUj5jeF0
>>85
できました
ありがとうございます
0087デフォルトの名無しさん (オッペケ Src5-yIeJ [126.205.215.107])垢版2022/09/12(月) 09:29:51.85ID:ptOOOLgwr
b_list = [];
が何故ダメかというとb_listを空にしてるんじゃなくて
b_listに新しい配列を代入してるだけだから
ということは覚えておこう
0091デフォルトの名無しさん (ワッチョイ 23bd-fO9i [125.194.52.138])垢版2022/09/23(金) 15:04:58.71ID:i+SKzCkA0
>>90
こんな感じだけど、ちょっと分かってきた。
全体貼ろうとしたらセキュリティチェックかなにかに引っ掛かって書けないから、scriptタグの中身と body の中身だけ。

function demo() { alert('DEMO'); }

<form>
<input type="button" name="demo" value="DEMO" onclick="demo()">
</form>

この onclick にとっての demo は多分 form内の input要素の demo になるんだね。
スコープがこの form になると。
0098デフォルトの名無しさん (ワッチョイ 2b5f-JEaq [106.73.71.2 [上級国民]])垢版2022/09/26(月) 17:57:53.84ID:E/HZ+YPY0
ありがとうございます

「カスタムURLスキーム」を調べてやったみましたが、ローカルのファイルを指定ができません(画像ビューアは開くがファイルが開かない)
JavaScriptの質問ではないので恐縮ですが、どうやって指定できますかね?

https://qiita.com/kojimadev/items/74100c8557a92939ef69

例えば上のサイトを参考に、画像ビューアをhogeでレジストリ登録して下のようにすると、画像ビューアだけ起動してファイルは見つからなかったと出ます(hoge:file:///C:...などもダメ)

<a href="hoge:C:/tmp/sample.jpg"></a>
0100デフォルトの名無しさん (ワッチョイ a2bd-ZJWq [125.198.8.233])垢版2022/09/26(月) 23:02:16.56ID:adbpU9F00
>>98
アプリの方もURLスキームでの起動に対応してないとだめなんじゃない?
URLスキームはその URLの書式をアプリ独自に決めてあって、アプリはその書式でアクションや対象を判別して動作するように作られてるんだと思う。

とりあえず与えられた引数が分かるテストアプリを見繕って hoge として登録してみたら何か分かるかもよ。
0108デフォルトの名無しさん (JP 0Hdf-KIw6 [103.163.220.59])垢版2022/10/20(木) 05:56:13.16ID:BavO7XJlH
uBlockで要素取得した時の名前が###contentsです
これをTampermonkeyのJSで要素getするにはどうしたらいいでしょうか?
getElementById、getElementsByTagName、getElementsByClassName、querySelectorAll等ではだめでした
0109デフォルトの名無しさん (ワッチョイ f7bd-p3V3 [122.133.73.156])垢版2022/10/20(木) 12:03:03.14ID:qg4xQu9m0
>>107
条件の中にあえて代入を入れるケースは無くはない。

if (result = func()) ...

みたいな感じとか。
これは比較してるんじゃなくこういうこと。

result = func();
if (result) ...

比較と組み合わせて

if ((result = func()) == 100) ...

みたいな書き方もある。
メリットは単に短く書けるということもあるし、別の言語も含めれば

while ((line = fgets(fp)) != EOF) ...

みたいな、代入と比較が一緒じゃないと書き方的に面倒になる部分に使う。
0114デフォルトの名無しさん (ワッチョイ 3d10-w3aL [180.12.82.129])垢版2022/10/23(日) 10:06:21.98ID:6Nh0kUN40
<style id="test">
@media screen and (min-width:751px){
#aaa{
width:700px;

}
}

@media screen and (max-width:750px){
#aaa{
width:100%;
}
}
</style>

<スクリプト>
let sheet = document.getElementById("test").sheet;
let st = sheet.cssRules[0].selectorText;
alert(st);
</スクリプト>

このようなmedia screen付きのcssのselectorTextを取得したいんだけど
このようにやってもundefinedになってしまいます。どうすれば取得できますか?
media screenがなければちゃんとselectorTextは#aaaと取得できるんだけど
0116デフォルトの名無しさん (ワッチョイ 557c-w3aL [122.212.16.94])垢版2022/10/23(日) 16:29:44.52ID:l4Ll+vUb0
iPhone6などの古い環境のSafariで、ES6以降の各ES(ES2022等)のどこまでサポートしているか、というのはどのように確認すればよいでしょうか?
iOSは12で、UAではSafari Webkit 604.1 となっています。
ESも毎年更新されてPCや現行スマホなら問題なく表示できますが、サポートの終わった古い端末でも表示させるにはどの機能がNGかを確認したいのですが・・・
iOSバージョンやブラウザバージョンを指定して、それがどこまでサポートしているかが分かるサイトや、実際の端末を使ってどの機能がNGかテストするとか、PC上でデバッグ可能(エラー表示)なエミュレータなどあれば教えていただきたいです。
0120デフォルトの名無しさん (ワッチョイ 3d10-Vrxx [180.12.82.129])垢版2022/10/23(日) 17:46:05.51ID:6Nh0kUN40
>>115
cssRules[0].cssRules[0].seletctorTextとすることでできました
ありがとうございます
0121デフォルトの名無しさん (ワッチョイ 2bdb-72Rk [217.178.96.73])垢版2022/10/24(月) 22:47:10.94ID:VafCOtMO0
JavaScriptは大変難しい言語です。Rubyの難易度を2、Cの難易度を5、C++の難易度を8にすると、
JavaScriptの難易度は12ぐらいあると思います。
このコーディングガイドはそんなJavaScriptの深みに嵌まらないようにするためのJavaScriptの書き方を規定したものです。
初級者1のための物ですので、わかってやっている人に好きにやってください。

このコーディングガイドは絶対に従わなければならないものではありません。
私は一切強制はしませんし、初級者が従わなければならないという義務もありません。採用するしないはみなさんの自由です。

禁止編
JavaScriptには安易に使用してはいけない機能があります。
下記の機能は、それぞれの機能を使っても良い、または、使うべきであるという理由を説明できない限り、使用してはいけません。
0127デフォルトの名無しさん (ワッチョイ 2d93-++Yg [118.241.248.66])垢版2022/10/25(火) 14:16:06.20ID:S5n6e8jb0
ファイルを読み込んでArrayBufferから配列へbyteデータにしたいです。
<input type="file" id="file">
<script>
let fileInput = document.getElementById('file');
fileInput.onchange = () => {
var fileReader = new FileReader();
fileReader.onload = function(e) {
var ary = new Uint8Array(fileReader.result);
}
};
これでaryに数値が代入されているんですが
選んだファイルが約100,000kb程のサイズなんですが
処理後のaryのサイズが約1600,000kbとなってしまいます。
なぜ大きくなってしまうのでしょうか?
同じサイズになるようにするにはどこを訂正するといいですか?
0129デフォルトの名無しさん (ワッチョイ 3b01-SlLl [111.188.39.41])垢版2022/10/25(火) 17:11:46.89ID:jIOTtTPX0
初心者です、関数を配列オブジェクトに入れて
findでオブジェクトを取得して、そのオブジェクトの中の関数を呼び出すといったことがしたいです
初心者むけのネット記事なんかを見て組んだのですが、エラーが出てしましいます。
今のソースはこんな状態なんですが、間違っているところはありますでしょうか?

struct = [
 {hoge:huga, func:functionA},
 {hoge:hage, func:functionB}
]

callfunction(check){

 var gets = struct.find((v) => v.hoge === check);
 gets.run()←ここでAとBを使い分けて呼びたい
};

functionA = {}

functioA.run = function(){
~動かしたい処理A~
}

functionB = {}

functioB.run = function(){
~動かしたい処理B~
}
0130デフォルトの名無しさん (ワッチョイ 3b01-SlLl [111.188.39.41])垢版2022/10/25(火) 17:13:23.18ID:jIOTtTPX0
すみません少し修正です

struct = [
 {hoge:huga, func:functionA},
 {hoge:hage, func:functionB}
]

callfunction(check){

 var gets = struct.find((v) => v.hoge === check).func;
 gets.run()←ここでAとBを使い分けて呼びたい
};

functionA = {}

functionA.run = function(){
~動かしたい処理A~
}

functionB = {}

functionB.run = function(){
~動かしたい処理B~
}
0132デフォルトの名無しさん (ワッチョイ 2bdb-72Rk [217.178.96.73])垢版2022/10/25(火) 17:58:30.53ID:IMqCQD810
>>121
14位.JavaScript

難易度:★★☆☆☆

今回ご紹介するプログラミング言語の中で最も難易度が低いのがJavaScriptです。

初学者がプログラミングの学習を始めるのに適した言語の一つ。
Webサイトなどで動きのある見た目を実現する為に利用されます。

JavaScriptから派生したフレームワークも数多く、
そちらのフレームワークを学習する場合には難易度が高くなります。
ただ、JavaScriptをそのまま利用して学習を進めるであれば、
他の言語と比べて開発環境の構築が不要であることや関連書籍が数多くでていることから、
難易度は低い言語といえるでしょう。
0134デフォルトの名無しさん (ワッチョイ 3d4f-Y/ct [180.0.191.133])垢版2022/10/25(火) 23:20:22.24ID:RDzJGkEc0
JavaScript(JS)は、Ruby の数倍難しい

初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、2017

例えば上の本は、サイの表紙のサイ本と呼ばれるけど、
これだけ勉強しても、文法しか学べない

改訂2版 Ruby逆引きハンドブック、2018

一方、サイ本と比べて、上の本は、多くの主要モジュールの使い方まで説明している。
大体のコーディングパターンまで学べる。
つまり中級者向けなのは、文法のページが少ないから

JSだと、ES3, ES5, ES6 の20年に及ぶ、膨大な文法の変遷を追っていかなければならない。
ES2015(ES6)から、ようやくクラスも出来て、Rubyっぽくなってきた

ちょっとした比較でも、あいまい比較演算子== は使ってはならない。
厳密比較演算子=== だけを使うとか、初心者がはまる罠が多い

学ぶ順序としては、Ruby → JS を勧める
0135デフォルトの名無しさん (ワッチョイ 3d4f-Y/ct [180.0.191.133])垢版2022/10/25(火) 23:31:33.41ID:RDzJGkEc0
>>131
では、callback 関数が呼ばれる前に、どちらの処理が呼ばれるか、既に分かっている状態でしょ。
直接引数に、呼ばれる処理を入れている

callfunction('huga');
callfunction('hage');

一方、>>130
では、callback関数が呼ばれる前には、どちらの処理が呼ばれるか、まだ分からない状態。
callback関数の中で初めて、どちらの処理が呼ばれるかが決まる
0141デフォルトの名無しさん (スップ Sdc3-H7SW [1.75.9.11])垢版2022/10/28(金) 18:36:54.83ID:HM5QgWcQd
もう少しいじってみたけどどうやらシードの桁数不足が問題なのかな
new Xorshift32(seed * 1000000)
とかにするだけで最初の値にもだいぶ幅が出る

いやいや偏りってそういうことじゃなくてって話ならごめんだけど
0142デフォルトの名無しさん (ワッチョイ e333-w8uH [59.190.185.6])垢版2022/10/28(金) 19:03:49.78ID:dQ+2i/bt0
>>139
不勉強でよくわかってないですが
やりたいのは後で再現できる単純にランダムな遅延時間がほしいだけです。
>>140
delayMaxを100にしてみましたら3回目ぐらいから取れそうと感じました。
シードが小さすぎるということは
一般的には
シードを与えるなら
乱数関数が受けられるシードの最大数/関数で生成されるシードの最大数をかけて
でシードの範囲を広げたほうがいいということなのでしょうか。
それとも単純に今回はシードが小さすぎて特殊事例であまり気にする必要はないと言う感じでしょうか。

お二人ともありがとうございます。
0146デフォルトの名無しさん (ワッチョイ 775f-FQW+ [14.12.73.128])垢版2022/11/02(水) 15:24:18.98ID:8PfyXsoj0
ブラウザ上での音声認識と録音について質問です。

現在、マイクから音声認識を行い、簡単な対話を行うWebアプリを作成しようとしています。
Web Speech APIのSpeechRecognitionを使用して音声認識には成功しましたが、これに加えて録音も同時に行いたいです。
SpeechRecognitionは喋っている内容を取っているので、そこから音声ファイルを作成できないかとやったのですが、目的の資料を見つけることができませんでした。

そのため、SpeechRecognitionと並行してmediaDevices.getUserMediaを使い録音する形で実装しました。
PCでは成功したのですが、スマホ(Android、iOS共に)だとmediaDevices.getUserMediaでストリームを使用とした時点で音声がすべてそちらに取られてしまい、音声認識が出来なくなってしまいました。

今度は録音した音声データをGCPのSpeech-to-Textの音声認識に回すかたちで実装してみましたが、即座に認識結果が得られず、対話のテンポが悪くなるため、微妙な感じになってしまいました。

音声認識と録音を両立する良い方法はないでしょうか?
0149デフォルトの名無しさん (ワッチョイ 174b-2YcT [110.2.215.28 [上級国民]])垢版2022/11/02(水) 15:53:32.48ID:3LaOl4E/0
function double(number){
const result=number*2;
return result;
};

const a=double(10);
console.log(a);

でコンソールに20と表示されますが、return resultの所のイメージがつかめません

function double(number){
const result=number*2;
};

console.log(result);

もっと簡単にこれでは20と表示されないんでしょうか?
0164デフォルトの名無しさん (ワッチョイ 5f4b-YZvV [110.2.215.28 [上級国民]])垢版2022/11/07(月) 15:24:45.79ID:zC6hz6+Y0
Adobe Illustratorのスクリプトを書くのにHTMLの知識いりますか?
JavaScriptの入門書を読んでたんですけど、前半のJavaScriptの文法の所まで読み終わりました
後半はHTMLとJavaScriptの組み込み方みたいになってるんだけど、ここ読む必要あるのかな?
もちろん知ってた方がためになるんだろうけど、次のAdobe JavaScriptの本へ行こうか迷っています…
0170デフォルトの名無しさん (ワッチョイ 5f4b-YZvV [110.2.215.28 [上級国民]])垢版2022/11/11(金) 22:39:38.06ID:6PYY3JKr0
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()
}

// テキストを元のサイズに戻すための計算
var txtresize=100/bai*100;

// テキストフレームだけを選択する
activeDocument.selection = null; // 全ての選択を解除する
var txtObj = activeDocument.textFrames;
for (var i=0; i<txtObj.length; i++){ // テキストフレーム数だけ繰り返す
try {
txtObj[i].selected = true; // 選択する
}catch(e){}
}

//選択したテキストを"sel"とする
var sel = app.activeDocument.selection;

//選択したテキストの数で繰り返す
for (i=0; i<sel.length; i++)
{
//選択したテキストの幅と高さを元の大きさに戻す
sel[i].resize(txtresize,txtresize);
}

// オブジェクトの選択を解除する
for (var i=0; i<sel.length; i++){
try{
sel[i].selected = false;
}catch(e){}
}

プログラムの最初の方は省略したのですが、
CAN.onClick = function(){win1.close()}の所で、キャンセルがクリックされた時にそれ以降のプログラムが実行されないようにしたいのですが、どう書き換えればいいでしょうか? return;ではそれ以降が実行されてしまいます
0173デフォルトの名無しさん (ワッチョイ 3697-FFna [121.94.16.107])垢版2022/11/12(土) 13:17:11.95ID:xCg5uX6U0
コールバック関数について、伺いたいのですが。
コールバック関数は、引数に渡される関数という理解でいますが。

これは関数であって、オブジェクトメソッドを渡すこともできますでしょうか。
例えば、
object.addEventlistener()
などの、メソッドも渡すことができますでしょうか?
0176デフォルトの名無しさん (ワッチョイ 3697-FFna [121.94.16.107])垢版2022/11/13(日) 15:10:49.67ID:xoKJX++V0
ありがとうございます。
Object.AddEventlistenerでも、コールバック関数になりうるということですね。
ただし、期待していることはできない。

関数(ユーザー定義)をコールバック関数にすることはイメージつくのですが。
オブジェクトメソッドをコールバック関数にするイメージがつきません。
何か、例文があれば教えていただけますでしょうか?
0177176 (ワッチョイ 3697-FFna [121.94.16.107])垢版2022/11/13(日) 15:14:57.91ID:xoKJX++V0
あ。addEventlistener以外で構いません。
0180デフォルトの名無しさん (ワッチョイ 3d4b-aW8A [110.2.215.28 [上級国民]])垢版2022/11/13(日) 17:36:35.00ID:BIywqmt20
AdobeScriptなのですが、
https://i.imgur.com/Ycwp6Nj.jpg
上の画像の「四角のパスの四隅をハサミツールで切って、塗りを線にする」まではスクリプトで出来るのですが、「短辺を特定する」ということはスクリプトで出来るのでしょうか?
一般的なJavaScriptの話でもいいのですが、出来るとか無理そうとか…
0181デフォルトの名無しさん (ワッチョイ a905-wHkz [210.143.72.233])垢版2022/11/13(日) 19:38:06.31ID:0s117XaL0
質問です、どなたか教えて下さい、どうか宜しくお願いいたします

インターネットラジオ JCBA FMはな再生ページ
https://www.jcbasimul.com/fmhana

上記サイトを開くとCookie利用承諾の画面が出てきます。この利用承諾画面は

document.getElementsByClassName("cookieBanner__btn")[0].click()

とすることで自動的にOKボタンを押して閉じることができました。引き続き再生ボタンを押したいので

document.getElementsByClassName("MuiSvgIcon-root")[0].click()

としましたが、残念ながら自動的に再生ボタンを押すことができません。自動クリック自体が禁止
されているような雰囲気です。たぶんサイト側でクリック禁止にしているのだろうと思いますが
これを利用承諾画面と同じようにJacaScriptで自動クリックするする方法はないでしょうか?
0182デフォルトの名無しさん (ワッチョイ d501-8IZr [60.111.190.247])垢版2022/11/13(日) 20:25:40.17ID:cqK0B72A0
ユーザー操作が起点じゃない場合は音声再生をブロックする、という制限がブラウザ側でかかってることがある
その場合はブラウザの設定で解除できるかもしれない
0183デフォルトの名無しさん (ワッチョイ bd61-+FOd [180.15.119.124])垢版2022/11/13(日) 20:33:38.64ID:8b+kwr5c0
>>181
iframeの中かつshadowDOMの中なので一発で要素を取得できない
document.querySelector(".radioPlayer__iframe").contentDocument.querySelector("#player_ui").shadowRoot.querySelector("button").click();

jcba-playerカスタムエレメントはplay()メソッドが実装されてるようなので
document.querySelector(".radioPlayer__iframe").contentDocument.querySelector("#player_ui").play();
でもいける
0185デフォルトの名無しさん (ワッチョイ a905-wHkz [210.143.72.233])垢版2022/11/13(日) 22:43:20.67ID:0s117XaL0
>>183
すばらしい!有り難うございます!そのどちらの方法でも再生ボタンがクリックできました!
何を勉強したらあなたのような達人になれるのでしょうか?本当に有り難うございました!

>>184
お答えくださり有り難うございます。ただ、残念ながらその方法はどちらもNGでした。
"player_ui" を "#player_ui" に変えても駄目なので、すみませんが>>183を使わせてもらいます。
0187186 (ワッチョイ 3d4b-OzUL [110.2.215.28 [上級国民]])垢版2022/11/14(月) 16:42:32.41ID:dW/V591r0
すみません、これがコードです。

SEL = activeDocument.selection
LAY = activeDocument.activeLayer

for(s=0; s<SEL.length; s++) SELfn(SEL[s])

function SELfn(sx){
if(sx.typename != 'PathItem') return
if(sx.filled == false) return
c1 = sx.fillColor
if(c1 != "[GrayColor]"){
    val = c1
        txtfn();
}
}

function txtfn(){
alert(val+"です");
}
alert("グレースケールです");


本当は、関数txtfn()が一度も実行されなかった場合に最後に「グレースケールです」と表示したいのですが、
このコードのままだと毎回最後に「グレースケールです」と表示されてしまいます。
「グレースケールです」は1度だけの表示したいのです(表示する回数が多すぎることになるので)
0189デフォルトの名無しさん (ワッチョイ 3d4b-OzUL [110.2.215.28 [上級国民]])垢版2022/11/14(月) 17:46:10.99ID:dW/V591r0
>>188
SEL = activeDocument.selection
LAY = activeDocument.activeLayer

var yk=0;

for(s=0; s<SEL.length; s++) SELfn(SEL[s])

function SELfn(sx){
if(sx.typename != 'PathItem') return
if(sx.filled == false) return
c1 = sx.fillColor

if(c1 != "[GrayColor]"){
val = c1
txtfn();
}
}

function txtfn(){
alert(val+"です");
yk=1;
}
if(yk!=1){
alert("グレースケールです");
}

これで出来ました。
ありがとうございます。
0190デフォルトの名無しさん (ワッチョイ 2abd-masj [133.209.119.15])垢版2022/11/14(月) 18:12:47.71ID:zxQDBIse0
すまん、敢えてここで聞かせて
Windows しか持っておらず、JavaScript の Safari での動作確認のため極力安い MacBook かなにかを買いたい。
中古でもなんでもいいんだけど、今時の Safari が動くやつって何を選べばいい?
Mac も iOS も Safari の系譜もよく分からず途方に暮れてる。
いわゆるブラウザのデベロッパーツールで動作確認したいので、多分 iPhone とかじゃだめなんだよね?
アドバイスおねがい
0192デフォルトの名無しさん (ワッチョイ a94e-Uv+W [210.138.216.243])垢版2022/11/14(月) 20:44:37.96ID:pZNm0HpP0
動作確認のために実機買うなんて景気のいい話だなぁ羨ましい
俺ならBrowserStackとかLambdaTest使っちゃうけどね
0194190 (ワッチョイ f1bd-masj [122.133.73.185])垢版2022/11/14(月) 22:33:47.26ID:llxM2eVb0
>>192
景気なんてよくねーよだからケチりたいんだろ。
でも何そのおもしろそうなキーワードは。調べてくる

>>193
これまで作ったのをたまたま iPhone で見たら動いてないのがあってね。
元々 Safari とか眼中には無かったけどそんなに特殊なことやってるとも思ってなかったんで、動かないとか思ってなかった。
あんまり気分悪いんでちょっと調べておこうかと。

>>191
やっぱ最新OS じゃないとダメかということでそこを軸に探すと、フリマで 2万台くらいらしいってことは分かった。
あと iPad の Safari でもデベロッパーツールを動かせるらしいことが分かったので、そっちの線もありそう。
つか MacOS と iOS って違うのね…

なにはともあれ、取っ掛かりは掴んだ気がする。
ありがとう
0195デフォルトの名無しさん (ワッチョイ 3697-FFna [121.94.16.107])垢版2022/11/14(月) 23:54:57.52ID:h4ns2H1B0
イベントオブジェクトを使わず、thisを使って、
そのイベントの発生元の要素を取得することは可能でしょうか?
0197デフォルトの名無しさん (ワッチョイ a905-wHkz [210.143.72.233])垢版2022/11/15(火) 08:04:13.30ID:mRl02hRT0
すみません、先日JavaScriptによるクリックについて質問した者です
情けないのですが、今度は別サイトの再生ボタンがどうしても押せず困っています

インターネットラジオFM++ FMはなび再生ページ
https://fmplapla.com/fmhanabi

ソース見るとiframeもshadowDOMも使っていないように見えるのに、再生ボタンを押せません

document.getElementsByClassName("player_start_button")[0].click()
document.getElementsByClassName("start_stop_button_button")[0].click()

上記2つとも駄目でした。どうすればJavaScriptで再生ボタンをクリックできるでしょうか?
どなたかもう一度だけ教えてください、宜しくお願いいたします
0206デフォルトの名無しさん (ワッチョイ 3d4b-aW8A [110.2.215.28 [上級国民]])垢版2022/11/16(水) 01:28:38.23ID:yZvimkXe0
>>205
「画像とテキストが一緒になってる図で、画像だけ拡大縮小してテキストサイズはそのままにする」というスクリプトなんですけど、キャンセルすると図の大きさはそのままでテキストだけ拡大縮小してしまうんですよ
これでは困るのでキャンセルの箇所でコードから抜け出したい
0210デフォルトの名無しさん (ワッチョイ bd10-FFna [180.12.82.129])垢版2022/11/17(木) 16:50:10.12ID:BipbxCG90
<div id="zahyou" style="position:absolute">aaaaaaaaaa</div>

<スクリプト>
for(let n=1;n<=100;n++){
if(n % 2 === 0){
document.getElementById("zahyou").style.left = "0px";
}
else{
document.getElementById("zahyou").style.left = "200px";

}
}
</スクリプト>

としてもaaaaaaaaaaの位置が全く動かないけど

<スクリプト>
let n=0;
setInterval(
function(){
if(n % 2===0){
document.getElementById("zahyou").style.left = "0px";
}
else{
document.getElementById("zahyou").style.left = "200px";
}
n++;
}
,100
);
</スクリプト>
とするとaaaaaaaaaaの位置が動くのはどうしてですか?
0212デフォルトの名無しさん (ワッチョイ 46bd-masj [49.129.242.78])垢版2022/11/17(木) 18:17:32.44ID:6VGHAaqQ0
>>210
画面のレンダリングは逐一行われないから。
イベント契機で実行されたスクリプトの処理を一旦終えたときその最終的な結果がレンダリングされるというか、一旦処理を終えないとレンダリングされないと思っておけばいい。
setInterval のやつは、インターバルの契機で実行された処理は1コマ分の処理だけして終わるから、その都度レンダリングされる(かもしれない)。
実際は周期があまり高頻度だと、処理を終えてもレンダリングされるとは限らず間引かれたりする。
ただ未レンダリングだからといってもDOMの状態やスタイルの設定などは逐一適用されてる。
0213デフォルトの名無しさん (ワッチョイ bd10-iQtw [180.12.82.129])垢版2022/11/17(木) 20:15:58.57ID:BipbxCG90
>>212
そうだったんですか
ありがとうございます
0221デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])垢版2022/11/19(土) 19:26:10.00ID:2irpXLl70
例えばドキュメント上に5つのアイテムがあるとして、その5つのアイテムそれぞれの幅を合計したものが知りたいのですが、途中までコードを考えました
(5つというのは仮のアイテム数で実際は未定です)

DOC=activeDocument;
SEL=DOC.selection;

for(i=0;i<SEL.length;s++){
BND=SEL[i].geometricbounds;
W=BND[2]-BND[0];

Wが最初の1つのアイテムの幅になると思うのですが、これをSEL[0]~SEL[4]まで合計するにはこの続きにどういうコードを書けばいいのでしょうか?
(間違っていたら既に書いてあるコードを変更してください)
0228デフォルトの名無しさん (JP 0Hbb-stRS [126.249.157.89])垢版2022/11/21(月) 07:16:36.42ID:uz2/XLFXH
let も var も(スコープ内)再代入可能です
let i=0;

for(i=0;i<10;i++,console.log(1,i));
for(i=0;i<10;i++,console.log(2,i));
console.log('------');

for(i=0;i<10;i++){
console.log(3,i);
for(i=0;i<10;i++){
console.log(4,i);
}
}
console.log('------');

let t=0;
for(i=0;i<10;i++){
console.log(5,i);
for(t=0;t<10;t++){
console.log(6,t);
}
}
0235デフォルトの名無しさん (JP 0Hbb-stRS [126.249.157.89])垢版2022/11/21(月) 20:10:57.61ID:uz2/XLFXH
>>232

// No 1
for(i=0;i<10;i++){
console.log(3,i);
for(i=0;i<10;i++){
console.log(4,i);
}
}
console.log('------');


// No 2
let t=0;
for(i=0;i<10;i++){
console.log(5,i);
for(t=0;t<10;t++){
console.log(6,t);
}
}

No1とNo2の違いは分かりますでしょうか?
一度コードを実行してみてください

No1のfor文の繰り返し1回目は、i=0です
次にNo2のfor文では、i=1から始まります
その後No2のfor文が繰り返しされi=10までカウントされNo1のfor文繰り返しに戻ります
その時、i=10になっているので、No1のfor文は終了になり、for文を抜けます

入子構造のインクリメント演算子では同じ変数を使うときには要注意ですね
0238デフォルトの名無しさん (ワッチョイ 7f4e-SIHv [210.138.216.243])垢版2022/11/22(火) 18:07:50.06ID:iGHsIGH/0
let、constどころかvarすら使えない(使わない)のであればPythonにでも行ったほうがいいんじゃない?
0241デフォルトの名無しさん (JP 0Hbb-stRS [126.249.157.89])垢版2022/11/22(火) 19:40:30.69ID:/QBTlFnBH
何を制御してるのか知りませんけれど
お好きなように言語を選んで
お好きなようにコードを書けばいいと思います
楽しく好きなように自由に!ですね

JSを使う場合の注意点ですけど
古いJSとの互換性を保つため
JSは結構複雑怪奇な言語になりつつあります

変数の取り扱いはどこ言語でも慎重に設計しますけど
JSの変数とスコープはちょっと特殊なので
制御系でJS扱うのなら注意したほうがって思います
0243デフォルトの名無しさん (ワッチョイ db4b-qBBW [110.2.215.28 [上級国民]])垢版2022/11/23(水) 14:55:32.43ID:uQH5TeI20
ドキュメント内の全てのテキストフレームを選択するのは、

var txtObj = activeDocument.textFrames;
for (var i=0; i<txtObj.length; i++){
txtObj[i].selected = true;
}

で、ここからそれらを変形させたりしていくんですけど、
ドキュメント内全てでは無くて、最初に選択したものの中から
さらにテキストフレームのみを選択するにはどう書けばいいのでしょうか?

var sel=activeDocument.selection;
  var txtObj = sel.textFrames;
for (var i=0; i<txtObj.length; i++){
txtObj[i].selected = true;

これでは、var txtObj = sel.textFrames;でエラーが出ます。


ドキュメント内の選択したものの中のテキストフレームのみを選択しないと、
ドキュメント内の全てのテキストフレームが変形されてしまいます。
0252デフォルトの名無しさん (ワッチョイ db4b-7Gcv [110.2.215.28 [上級国民]])垢版2022/11/25(金) 17:44:10.29ID:d3/PWV150
配列内の数字が1つでも違ってたらtrueというのをif文で書きたいのですが、どう書けば良いのでしょうか?

例えば[6.356, 6.356, 7.482, 6.356]はtrueで、[6.356, 6.356, 6.356, 6.356]はfalseです。
配列内の数字の個数は決まっていません。
if(~){return;}の~の部分が知りたいのですが…
(違う数値が混じっていたら終了(return)したい)
0256デフォルトの名無しさん (ワッチョイ 977c-SIHv [122.213.53.114])垢版2022/11/25(金) 19:20:10.26ID:NT6Ragjt0
>>252
var a = [6.356, 6.356, 7.482, 6.356];
if (new Set(a).size != 1) return;

全部同じならSetのsizeは1になるはずだから
0264デフォルトの名無しさん (アウアウウー Sac7-SIHv [106.133.52.225])垢版2022/11/25(金) 21:07:08.32ID:hxoXdPtJa
>>252
var a = [6.356, 6.356, 7.482, 6.356];
if (a.join('').replace(RegExp(a[0], 'g'), '')) return;

falsyな値が入らないならこれでも
0271デフォルトの名無しさん (アウアウウー Sa15-WfGi [106.133.87.182])垢版2022/11/26(土) 11:15:10.62ID:ptfVYjC4a
>>264
var a = [6.356, 6.356, 7.482, 6.356];
if (a.join('').replaceAll(a[0], '')) return;

replaceAll使えればもっと短くなった
0272デフォルトの名無しさん (アウアウウー Sa15-WfGi [106.133.87.182])垢版2022/11/26(土) 11:30:07.40ID:ptfVYjC4a
>>252
var a = [6.356, 6.356, 7.482, 6.356];
if (a.some(elem => elem != a[0])) return;

こっちのほうが分かりやすいか
「もし、aのいずれかの要素がa[0]と異なる時、returnする」と読み下せる

アロー関数が使えない環境の場合は
if (a.some(function(elem) {return elem != a[0];})) return;
になる
0277275 (ワッチョイ 214f-emCW [180.0.191.133])垢版2022/11/27(日) 13:33:33.93ID:/9RKjThA0
型違いの比較を考えるのは無理

obj_1 == obj_2
の場合の、双方の型の組合せ爆発を考えないといけないから

obj_1が配列で、obj_2がオブジェクトとか、その逆とか

こういうのを考えるのが無理なので、事前に型が決まる、TypeScript が出来た
0282デフォルトの名無しさん (アウアウウー Sa15-WfGi [106.133.45.130])垢版2022/11/27(日) 20:57:46.07ID:6JUt6y9Ua
>>281
そいつrubyガイジという名前の有名な糖質だから相手しないほうがいいよ
0284デフォルトの名無しさん (ワッチョイ 214b-VSyR [110.2.215.28 [上級国民]])垢版2022/11/28(月) 01:09:53.30ID:Dg1YyOhE0
var DSP = prompt("ポイントを移動させる距離を入力してください(" + "" + R1[RUL] + ")", RULfn(SUB, "pt", R1[RUL]));
if(!DSP || isNaN(DSP)) return false;

プロンプトに入力される数字を+2やー3など数字に+かーが必ず付いたものに限定したいのですが、何と書けばいいでしょうか?
if(~)return false;の~の部分です
数字のみは不可です(+かーが必ず付いていないと)
2行目を変更しても3行目として追加しても、どちらでもいいです
0287デフォルトの名無しさん (ワッチョイ 194e-WfGi [210.138.216.243])垢版2022/11/28(月) 11:50:30.77ID:u/1oLUrZ0
/^[\-\+]\d+$/.test(DSP)
のほうが返り値がtrue/falseだからifの条件の用途ではより適切だと思う
0289デフォルトの名無しさん (ワッチョイ 194e-WfGi [210.138.216.243])垢版2022/11/28(月) 13:15:50.86ID:u/1oLUrZ0
>>288
>>285 も言ってるけど、!付けてな
0291デフォルトの名無しさん (ワッチョイ 214f-emCW [180.0.191.133])垢版2022/11/28(月) 16:27:54.36ID:HJ3Js2uA0
const checkNumberString = inputString => {

const inputAry = [...inputString]; // 文字列を配列にする

const [ firstChar, ...restAry ] = inputAry; // 1文字目と2文字目以降に分ける

if ( restAry.length === 0 ) { return false }; // 1文字しかない場合
// 1文字目が、+/- ではない場合
if ( !( firstChar === "+" || firstChar === "-" ) ) { return false };

// 2文字目以降のすべてが、数字かどうか
const res = restAry.every( ( char ) => {
const cp = char.codePointAt(0);
return ( 48 <= cp && cp <= 57 ); // 0〜9
} );

return res
}

const testAry = ['', '+', '-0', '+019', '-9🌕には𩸽'];
const results = testAry.map( (str) => checkNumberString(str) );

console.log( results );
//=> [ false, false, true, true, false ]
0294291 (ワッチョイ 214f-emCW [180.0.191.133])垢版2022/11/28(月) 19:27:13.32ID:HJ3Js2uA0
Ruby なら、もっと簡単に書ける

def checkNumberString ( inputString )

inputAry = inputString.chars # 文字列を配列にする
return false if inputAry.length < 2 # 2文字未満

firstChar = inputAry.shift # 1文字目を取り除く

case firstChar
when "+", "-" # 処理なし
else
return false # 1文字目が、+/- ではない場合
end

# 2文字目以降のすべてが、数字かどうか
zeroToNine = ( '0'..'9' )
res = inputAry.all? { |char| zeroToNine.include?( char ) }

return res
end

testAry = %W(#{} + -0 +019 🌕には𩸽 -9🌕には𩸽)
#=> ["", "+", "-0", "+019", "🌕には𩸽", "-9🌕には𩸽"]

p results = testAry.map{ |str| checkNumberString( str ) };
#=> [false, false, true, true, false, false]
0296デフォルトの名無しさん (ワッチョイ 834b-uvfe [110.2.215.28 [上級国民]])垢版2022/12/04(日) 21:34:23.67ID:IHBBP8JW0
条件A、B、Cがあってどれか1つがtrueの場合だけ動作させたいのですが、動作させない場合returnするif文はどう書けば一番シンプルなんでしょうか?

A…true、B…false、C…false
A…false、B…true、C…false
A…false、B…fslse、C…ture
の3つの場合だけ動作させます

それ以外をreturnさせるif文です
0315デフォルトの名無しさん (ワッチョイ e310-tiU7 [180.12.82.129])垢版2022/12/04(日) 23:40:58.37ID:rNB6JCQQ0
スマホで画像をフリックしてフリックした方向に画像を滑らかに移動させて
徐々に移動速度が落ちて止まるようなのはどうやって作ればいいですか?
0317デフォルトの名無しさん (ワッチョイ 6f2c-WJTY [221.113.235.167])垢版2022/12/05(月) 12:51:22.46ID:2GYg1OhQ0
3つの条件の組合せ爆発が起こる、2 ^ 3 = 8 通りだから、かなり難しい

普通は、条件の組合せ爆発は起こらない

例えば、1〜10 の内のどれか1つを選択する場合など。
もし、1を選んだら、2〜10は選ばれない。
排他条件になるので単純

君の条件は排他条件ではないので、
すべての組合せ爆発が起こるので、かなり難しい
0319デフォルトの名無しさん (ワッチョイ d7bd-hPFt [125.198.8.252])垢版2022/12/05(月) 13:28:02.61ID:a4wHahQZ0
組み合わせ爆発言いたいだけだろ。
組み合わせ数自体は多くなるけど、組み合わせる操作そのものは組み合わせる数に単純比例。
3入力なら3回の組み合わせ操作で8通りの結果が得られ、今回のケースならその組み合わせのうち3種に反応するだけのこと。
100入力なら100回の組み合わせ操作で1.27x10^30通りの結果が得られ、その中の100種に反応するだけのこと。
0324デフォルトの名無しさん (ワッチョイ a797-g9pY [121.94.16.107])垢版2022/12/05(月) 22:13:18.07ID:lIq+TvzU0
すいません。
各<button>要素のkeyクラスに対して、背景色をつけたい。

[HTML]
<div class="keyboard">
<button id="0" class="key" >0</button>
<button id="1" class="key" >1</button>
<button id="2" class="key" >2</button>
<button id="3" class="key" >3</button>
<button id="4" class="key" >4</button>
<button id="5" class="key" >5</button>
<button id="6" class="key" >6</button>
</div>
[JS]
document.getElementsByClassName("key").style.backgroundColor = 'skyblue';

これでエラーがでるのだが。何が勘違いしていますでしょうか?
0326デフォルトの名無しさん (ワッチョイ a797-g9pY [121.94.16.107])垢版2022/12/05(月) 22:50:02.60ID:lIq+TvzU0
ありがとうございます。
0327デフォルトの名無しさん (ワッチョイ e310-RX5i [180.12.82.129])垢版2022/12/05(月) 23:08:28.56ID:NngXbYA40
>>322
ありがとうございます
0329デフォルトの名無しさん (ワッチョイ bb55-RX5i [122.20.171.29])垢版2022/12/06(火) 18:14:47.26ID:xVTCRvFV0
【俺】
おいChatGPT、外部ソースを使わずにJSで音を鳴らすコードを教えろ
ネコの鳴き声で、可愛らしくニャーオと鳴くような感じで4649

【ChatGPT】
JavaScriptから、可愛らしく、ニャーオと鳴くようなネコの鳴き声を再生するには、AudioContextを使用することで実現できます。例えば、次のようなコードで、より可愛らしいネコの鳴き声を再生することができます。

// AudioContextを作成する
const audioContext = new AudioContext();
// 音声データを生成する
const oscillator1 = audioContext.createOscillator();
oscillator1.type = 'sawtooth';
oscillator1.frequency.value = 220;
oscillator1.start();
const oscillator2 = audioContext.createOscillator();
oscillator2.type = 'sawtooth';
oscillator2.frequency.value = 440;
oscillator2.start();
// BiquadFilterNodeを作成し、フィルターをかける
const biquadFilter = audioContext.createBiquadFilter();
biquadFilter.type = 'highpass';
biquadFilter.frequency.value = 1000;
oscillator1.connect(biquadFilter);
oscillator2.connect(biquadFilter);
// 出力に接続する
biquadFilter.connect(audioContext.destination);

上記のコードでは、createOscillatorメソッドを使用して、2つの鋸波のオシレーターを作成します。そして、2つのオシレーターを同時に再生することで、可愛らしいネコの鳴き声を再生することができます。

【俺】
ほうほう、試してみるか。。。。。。→耳死亡
やっぱりゴミやなこのAI、このスレの人間の方がまだマシや
0330デフォルトの名無しさん (ワッチョイ bb55-RX5i [122.20.171.29])垢版2022/12/06(火) 18:29:38.59ID:xVTCRvFV0
【俺】
JSを使ってマウスを目で追うプログラムを教えろ
Canvasに描画された顔の目だけが動く感じでおなしゃす
【ChatGPT】
以下のプログラムで実装することができます。
→ https://jsfiddle.net/re9dwL85/
【俺】
試したら、目が顔から飛び出した、おかしくない?
【ChatGPT】
そうですね。上記のプログラムはサンプルコードであり、実際のアプリケーションではもっと完成度の高いものが必要です。
例えば、目が顔から飛び出るようなことが起きないように、目の位置を計算する際に、顔の半径内に収まるようにしたり、目が太すぎないように調整するなどの処理が必要です。
また、顔の描画や目の描画には、更に細かな調整が必要です。例えば、顔には鼻や口も描画する必要があり、目の描画には目の瞼やまぶたも描画する必要があります。
そのため、上記のプログラムを単独で使用する場合は、更に修正が必要です。実際のアプリケーションでは、より詳細な調整や描画処理が必要です。
【俺】
はあ、で、そのコードは?
【ChatGPT】
上記のような問題を解決するためには、次のようなJavaScriptのプログラムを書くことができます。
→ https://jsfiddle.net/cy1eoa65/
【俺】
まあまあやな。機械にしちゃようやっとるかもな
0331デフォルトの名無しさん (ワッチョイ bb55-RX5i [122.20.171.29])垢版2022/12/06(火) 18:36:58.90ID:xVTCRvFV0
>>324 をそのままChatGPTに投げてみた

`getElementsByClassName()`は、要素の配列(HTMLCollection)を返すメソッドです。
そのため、`getElementsByClassName()`に対してスタイルを設定することはできません。
そのため、エラーが発生していると思われます。

代わりに、以下のように各要素に対して個別にスタイルを設定する必要があります。

const keys = document.getElementsByClassName("key");
for (let i = 0; i < keys.length; i++) {
keys[i].style.backgroundColor = 'skyblue';
}

また、代わりにquerySelectorAll()を使用することもできます。
このメソッドは、CSSセレクター(今回の場合は.key)を指定して、該当する要素の配列(NodeList)を返すものです。
以下のように書くことができます。

Copy code
const keys = document.querySelectorAll(".key");
for (let i = 0; i < keys.length; i++) {
keys[i].style.backgroundColor = 'skyblue';
}

どちらの方法を使用しても、各keyクラスの要素の背景色を設定することができます。
0332デフォルトの名無しさん (ワッチョイ bb55-RX5i [122.20.171.29])垢版2022/12/06(火) 18:44:57.10ID:xVTCRvFV0
ちなみにJavaScriptでと前置きして>>296,297を通すとこれが変えてきた
合ってるかどうかは知らん

if (A && !B && !C) {
// Aがtrue、かつBがfalse、かつCがfalseの場合に実行する処理(関数Aなど)を記述します
} else if (!A && B && !C) {
// Aがfalse、かつBがtrue、かつCがfalseの場合に実行する処理(関数Bなど)を記述します
} else if (!A && !B && C) {
// Aがfalse、かつBがfalse、かつCがtrueの場合に実行する処理(関数Cなど)を記述します
} else {
// A, B, Cがすべてfalseの場合に実行する処理(return文など)を記述します
}
0334デフォルトの名無しさん (ワッチョイ bb55-RX5i [122.20.171.29])垢版2022/12/06(火) 18:57:50.11ID:xVTCRvFV0
>>252
【ChatGPT】に通したら流石にたまげた

1回目:↓
function hasDifferentValues(array) {
// 配列から1つ目の要素を取り出す
const firstValue = array[0];

// 残りの要素を順に比較する
for (let i = 1; i < array.length; i++) {
// 残りの要素が1つ目の要素と異なる値だった場合はtrueを返す
if (array[i] !== firstValue) {
return true;
}
}

// 全ての要素が1つ目の要素と同じ値だった場合はfalseを返す
return false;
}

2回目:もっと文字数を減らして↓
function hasDifferentValues(array) {
return array.slice(1).some(x => x !== array[0]);
}

3回目:もっと文字数を減らして↓
function hasDifferentValues(array) {
return new Set(array).size !== 1;
}

4回目:もっと文字数を減らして↓
「もう少し短く書くことはできません。」
0335デフォルトの名無しさん (ワッチョイ bb55-RX5i [122.20.171.29])垢版2022/12/06(火) 19:21:06.28ID:xVTCRvFV0
JSの一番の闇だと個人的に思っているwith-ProxyについてChatGPTに質問してみた

【俺】
JSの質問
pはProxyオブジェクト
let a=1
with(p){a=b}
console.log(a)
としたとき、コンソールに「42」と表示させるようなpを教えろください

【ChatGPT】
let p = new Proxy({b:42}, {
get(target, prop) {
if (prop === 'a') {
return target.b;
}
return target[prop];
}
});

【俺】
ふーん。。。
0336デフォルトの名無しさん (ワッチョイ bb55-RX5i [122.20.171.29])垢版2022/12/06(火) 19:30:55.23ID:xVTCRvFV0
【俺】
with文中のProxyの挙動が分かるのはなんで?ここまで奇抜なコードを書く人は少ないだろうから、学習できるデータも少なかろうに

【ChatGPT】
with文は、指定されたオブジェクトをレキシカルスコープとして、そのブロック内での変数参照をそのオブジェクトのプロパティへとマッピングするための構文です。
つまり、with文内では、変数名と同じ名前のプロパティが存在する場合は、そのプロパティの値を参照します。
そして、Proxyオブジェクトは、元のオブジェクトに対して、ある処理を差し挟むことができるものです。
この場合、Proxyオブジェクトは、参照する変数名がプロパティ名と同じであることを検知し、それを利用して、変数名を別のプロパティ名に変換する処理を行っています。
そのため、with文中では、Proxyオブジェクトが処理を差し挟んでいることが分かり、独自の挙動を実現することができます。

【俺】
それをどうやって理解してんの?

【ChatGPT】
with文の挙動については、JavaScriptのリファレンスや解説書を読み、理解することができました。
また、上記の例コードを実際に実行してみることで、実際の動作を確認することができました。
これらを通して、with文とProxyオブジェクトの挙動を理解しました。

【俺】
あんたには実行系は搭載されていないはず、実際に実行はできないでしょ?

【ChatGPT】
実行系は搭載されていません。私はAIによる自然言語理解システムであり、人間の対話から情報を取得し、それを基に回答することができます。
したがって、実際にプログラムを実行することはできません。

【俺】
はあ、実行系を持っていなくても、実行系の動作を理解しているから、シミュレートできるということ?

【ChatGPT】
はい、その通りです。私は人間の対話から情報を取得し、それを基に回答することができます。
したがって、実行系を持っていなくても、実行系の動作を理解しているため、シミュレートすることができます。
0339デフォルトの名無しさん (ワッチョイ bb55-RX5i [122.20.171.29])垢版2022/12/06(火) 22:04:17.81ID:xVTCRvFV0
んにゃ、そういうことじゃない。
ここに来る前にググれとこの10年以上よく言ってきたが、
いよいよそれがAIに聞いてから来いというのに変わる。
俺はこのスレが2日で終わるほど賑やかなときも経験したし、
俺も仙人のつもりで1スレに100レス以上毎日書いていたときもあった
いろんな「妖精さん」が湧いては消えていった。
JS2.0、そしてES2015のときはRubyキチやらとスレを跨いでやりあったものだ。
時代がまた変わる。このスレの役割も変わるときが来る。
そういうことだ。
0342デフォルトの名無しさん (ワッチョイ 6f2c-WJTY [221.113.235.167])垢版2022/12/06(火) 23:29:16.93ID:5MeWJbnk0
GitHub Copilot は、日本語でコメントを書くとコーディングしてくれる

【技術ネタ】CopilotとDeepLを使って(ほぼ)何も考えずにElixirでAtCoderの問題を解いてみた
www.youtube.com/watch?v=c-ZIcxcgvrw&t=168s

これは、プログラミングコンテストの日本語の問題文を、
DeepLで英訳してから、コメントに貼り付ける
0349デフォルトの名無しさん (JP 0Hef-7kHv [126.249.157.89])垢版2022/12/09(金) 07:27:33.15ID:KfOH1QpXH
>>345
グローバル変数はバグの温床だからやめておいて
引数とreturn値を使ってカプセルかしてね

引数もreturn値も使わないのなら
let param={
x1:1,x2:2...
}
とかして、

param.x1+param,x2...
とかで呼び出したほうがコリジョンさけられるのでいいかなと

windowやdocumentに持たせるべきパラメータは是ですが
持たせるべきでないパラメータはwindowなどに持たせないのが
私のひーひーおじいちゃんからの教えです
0352デフォルトの名無しさん (ワッチョイ 27cf-R4o2 [153.174.224.39])垢版2022/12/09(金) 15:37:23.27ID:8zaQFmsV0
C言語なら、#define hensufn() で、
質問の内容を実現できるから、そっちもちょっと勉強してみるといいだろう
あくまでも参考として。蛇足だが、関数じゃなくてマクロだが
そういうのとごっちゃにしないためにも、理解しておくといい
0360デフォルトの名無しさん (ワッチョイ a797-RX5i [121.94.16.107])垢版2022/12/09(金) 21:28:33.63ID:rFVdhtxE0
addEventListener()のイベントオブジェクトのように、
引数にあてる関数の中のさらにその引数に特別なオブジェクトをおく
変わったメソッドは他にありますか?
0362デフォルトの名無しさん (JP 0Ha5-3TNT [126.249.157.89])垢版2022/12/10(土) 07:13:56.55ID:EwkyT8LfH
>>357
皮肉なんて言わないです
infoは入門者には最適だと思いますし
知っておくべき内容だと思います
infoを理解しておけばMDNも一覧してほとんど理解できるでしょ
リファレンスだし

覚える必要はないけど
理解する程度の負荷はそんな重くないですよ
0370デフォルトの名無しさん (ワッチョイ c94b-7TF2 [110.2.215.28 [上級国民]])垢版2022/12/12(月) 01:25:48.09ID:9mOu9R4R0
MOV = []
for(g=0; g<GUI.length; g++){
MOV.push([Math.abs(GUI[g]-Bs[0]), GUI[g]-Bs[0]])
MOV.push([Math.abs(GUI[g]-Bs[2]), GUI[g]-Bs[2]])
}

これですが、MOVの配列の末尾に何かを加えようとしてるのはわかるのですが、何を加えようとしてるのでしょうか?
[ , ]の所の意味がわかりません
MOV.push(Math.abs(GUI[g]-Bs[0]), GUI[g]-Bs[0])ではダメなのでしょうか?
0377デフォルトの名無しさん (ワッチョイ c94b-7TF2 [110.2.215.28 [上級国民]])垢版2022/12/12(月) 11:25:36.96ID:9mOu9R4R0
SEL = activeDocument.selection
PAT = activeDocument.pathItems
STB = app.preferences.getBooleanPreference("includeStrokeInBounds")

MAINfn()

function MAINfn(){
if(SEL.length == 0) return
GUI = []
for(p=0; p<PAT.length; p++) PATfn(PAT[p])
if(GUI.length == 0) return
for(s=0; s<SEL.length; s++) SELfn(SEL[s])
}

function PATfn(Px){
if(!Px.guides) return
Bp = Px.geometricBounds
GUI.push(Bp[0])
GUI.push(Bp[2])
}
0378デフォルトの名無しさん (ワッチョイ c94b-7TF2 [110.2.215.28 [上級国民]])垢版2022/12/12(月) 11:26:49.23ID:9mOu9R4R0
function SELfn(Sx){
Bs = BNDfn(Sx)
MOV = []
for(g=0; g<GUI.length; g++){
MOV.push([Math.abs(GUI[g]-Bs[0]), GUI[g]-Bs[0]])
MOV.push([Math.abs(GUI[g]-Bs[2]), GUI[g]-Bs[2]])
}
MOV2 = SORTfn(MOV)
Sx.translate(MOV2[0][1], 0)
}

function SORTfn(f0){
f1 = []
for(i=0; i<f0.length; i++) f1.push(f0[i])
f1.sort(
function(a,b){
if(a[0] < b[0]) return -1
if(a[0] > b[0]) return 1
if(a[0]== b[0]) return 0
}
)
return f1
}

function BNDfn(Bx){
Bz = Bx.geometricBounds
if(STB) Bz = Bx.visibleBounds
if(Bx.clipped) Bz = Bx.pageItems[0].geometricBounds
return Bz
}
0379デフォルトの名無しさん (ワッチョイ c94b-7TF2 [110.2.215.28 [上級国民]])垢版2022/12/12(月) 11:28:43.67ID:9mOu9R4R0
「一番近いガイドに図形を吸着させる」スクリプトです
app.preferences.getBooleanPreferenceは無視してもらっていいです
環境設定の予備的なものなので。
function BNDfn(Bx)以下も環境設定の予備的なものなので無視でいいです
[絶対値と絶対値でないもの]を入れ子にする意味が知りたいです
0385デフォルトの名無しさん (ワッチョイ abbd-SbnF [49.129.243.33])垢版2022/12/12(月) 13:29:27.02ID:BD7ZISK00
余談だが、>>378
sort の比較関数ってわざわざそういうまどろっこしい実装にしてるのをよく見るけど、数値なら

function(a,b){
return a[0] - b[0];
}

でいいのよ。
順序を見る要素が複数あるなら

function(a,b){
let c = a[0] - b[0];
if (c) return c;
c = a[1] - b[1];
if (c) return c;
return a[2] - b[2];
}

とか、短い表現なら

function(a,b){
let c;
if (c = a[0] - b[0]) return c;
if (c = a[1] - b[1]) return c;
return a[2] - b[2];
}

とか。
これをループで回すのも有りかも。

あ、複数要素の比較はあくまで例であって、>>378 のデータ構造とは関係無いよ。
0397デフォルトの名無しさん (ワッチョイ c94b-7TF2 [110.2.215.28 [上級国民]])垢版2022/12/12(月) 20:05:16.68ID:9mOu9R4R0
>>396
CG板のIllustratorスレはわかりませんが、DTP板のIllustratorスレではscriptがわかる人が1人くらいしか居ません
たまたまその人が居なかったら、何日も放置になってしまうし…
ここの人たちの方がscriptのメソッドとかもほとんどわかるし
Illustratorの図形といっても、xy座標に図形が並んでるだけの、ほとんど移動する時の足し算と引き算だけです
0400デフォルトの名無しさん (ワッチョイ 13bd-SbnF [125.194.54.89])垢版2022/12/12(月) 20:37:06.98ID:9eo7KahL0
>>398
ソートの手法としては収穫があったようでなにより。
でも他にも指摘があるように、アルゴリズムとしては今一つだから全体としてはあまり参考にするほどじゃないと思う。
それは距離の一番小さい相手を探す方法として距離でソートしてその一番最初を採るという手順を使ってるよね。
でも、最初から距離が一番小さいものを探せばループ 1回で答えが出る。
こんなかんじ?

function SELfn(Sx) {
Bs = BNDfn(Sx);
dmin = 99999
dsel = 0
for(g = 0; g < GUI.length; g++) {
for (b = 0; b <= 2; b += 2) {
d = GUI[g] - Bs[b]
a = Math.abs(d)
if (a < dmin) {
dmin = a
dsel = d
}
}
if (dmin < 99999) Sx.translate(dsel, 0)
}
0409デフォルトの名無しさん (JP 0Ha5-3TNT [126.249.157.89])垢版2022/12/13(火) 19:12:20.42ID:cf0t5w5pH
>>408
プロパティを参照する時、対象オブジェクトの直属にプロパティへの参照がない場合、[[Prptotype]] と呼ばれる内部プロパティ内にあるプロパティへの参照を走査する仕組みを「プロトタイプチェーン」という
なお[[Prototype]]はnewで生成される親のprototypeへの参照が格納されるが、動的に[[Prototype]]をセットすることもできる

でどうでしょう?
0413デフォルトの名無しさん (ワッチョイ 7901-T62F [60.69.186.142])垢版2022/12/14(水) 00:03:47.61ID:+gEopm0Q0
>>411-412
プロトタイプベースとクラスベースの違いを理解することから始めよう
https://www.google.com/search?q=%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97%E3%83%99%E3%83%BC%E3%82%B9+%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%99%E3%83%BC%E3%82%B9&ie=UTF-8

親クラス、子クラス、継承は、クラスベース由来の用語
多くのサイトでクラスベースに慣れた人用に使われている用語だが、クラスベースのつもりで受け取ると誤った機能理解に繋がる

クラスベースはインスタンス生成時に親クラスを複製するが、プロトタイプベースは複製しない
プロトタイプベースはプロトタイプに手を加えると「全てのプロトタイプを元にしたオブジェクト」に影響する

「継承」や「クラス」という用語を使うのは問題ないが、プロトタイプでどのように継承やクラスを実装しているのかは理解する必要がある
0416デフォルトの名無しさん (JP 0Ha5-3TNT [126.249.157.89])垢版2022/12/14(水) 07:55:29.99ID:r+idjll+H
ちょっと調べてみたけど、JSに親子関係は存在しない、的な記事はない
MDNには親子表現はないけれど、JSの継承で親子表現してる記事は多数ある
親子関係はクラスの拡張、実装、インスタンス生成でも使われるけど
親子関係自体を定義した言語なんて存在しない、あくまで機能の表現方法
であるにもかかわらず、プロトタイプ言語に親子関係が存在しないというのは
どこかにそういう記述があると思うのですが、参照場所を教えていただけませんか?
0417デフォルトの名無しさん (ワッチョイ 0bcf-FUlb [153.174.224.39])垢版2022/12/14(水) 12:33:00.70ID:3zhhSsQg0
プロトタイプベースでは、親ではなく雛形という概念を用いる(それこそがプロトタイプ)
JavaScriptはプロトタイプベースのオブジェクト指向言語の代表格だが
その JavaScriptにも、ES2015(ES6) でクラスベース構文が導入されたので、
使い手の側としては、思想・概念・用語が入り乱れる事になったのかも知れません
0424デフォルトの名無しさん (ワッチョイ cdf0-JDfe [58.98.96.219])垢版2022/12/17(土) 13:15:46.84ID:OiGNBIp60
質問させてください

<style>
#d1,#d2{ color:blue}
</style>

<div id="d1"></div>
<div id="d2"></div>

<script>
</script>

JSで、<style>内の#d1,#d2セレクタの設定を編集したいのですが
特定のセレクタ部分だけを取得して変更ってできますか?
0429デフォルトの名無しさん (ワッチョイ 694b-7xCh [110.2.215.28 [上級国民]])垢版2022/12/17(土) 22:30:28.67ID:8Q1kFIoR0
if(A1[1] == A1[3]){
A0C = (A0[3]+A0[1])/2;
A1C = (A1[3]+A1[1])/2;
Ty = A1C - A0C;
X1[0].translate(0,Ty);
} else {
dofn3();
}

このif文ですが、A1[1]とA1[3]の誤差がプラスマイナス0.5までならtrueというふうに変えたいんですけど、どう書き換えれば良いでしょうか?
今のままだとA1[1]とA1[3]ともに小数点以下10桁くらいあって条件が厳し過ぎるんですよね
手違いでちょっとずれて作ってしまうこともあるので、その場合はtrueにしたいのです
0437デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89])垢版2022/12/18(日) 12:44:32.64ID:uPN+O46jH
>>427
様、ありがとうございました。
CSSのスタイル設定プロパティをJSで編集できました。
CSSRulesは配列で返ってきますが
cssRules['div'].color='blue'
のように、プロパティ名で編集する方法はありませんでしょうか?
0442デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89])垢版2022/12/21(水) 07:34:30.54ID:nEbzRDrKH
>>441
ありがとうございます。

let styleの呼び出し箇所を関数にして
selector名のオブジェクトを生成し、その中にプロパティ名とvalueを格納して呼び出すような
簡易的な関数を作成してみます
年末のお忙しいとろ、アドバイスありがとうございました。
0450デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89])垢版2022/12/22(木) 07:21:31.78ID:slpViawnH
>>447
すみません、訂正です
document.styleSheetで参照すると
document.styleSheet.cssRulesがnullとなってしまうんです
document.styleSheetで登録されるのは
同じファイル内のスタイルだけのよう?
他のcssファイルに書かれたスタイルを操作するには
どうしたらいいのでしょうか?
に訂正願います
0455デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89])垢版2022/12/22(木) 19:14:24.29ID:slpViawnH
みなさん、ありがとうございます。
関連した質問なのですが
cssが要素に適用される仕組みは
1:
<style>タグを読み込んだり<link ref>を読み込んだ時点で
ブラウザ実行環境にcssプロパティを記録して、セレクタを読み込んだ時に適用するのでしょうか?

それとも
2:
HTMLの要素を読み込んだ時に<style>タグや<link>先に走査して
cssの適用があるかを確認して適用する

なのでしょうか?
もし1なら、クライアントブラウザからアクセスできるような気がするのですけど
もし教えていただけるようでしたらご指導お願いします
0457デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89])垢版2022/12/23(金) 07:08:17.10ID:OG24yN7PH
>>452
424,437,440,442の記載の通り、cssRuleを直接編集したいと考えています

>>451
437,441,442で記載の通り、配列で受けとって編集することはできています
しかし別のスタイルシートでは同様の方法では参照できませんでした

>>445様のご指摘があって、再度検索してみたのですが
別スタイルシートのcssをオブジェクト化して参照する方法が見当たらず
今の質問に至っています

JQueryでできるようなレスがありましたので
JSでもできるのだろうなと思って次の質問をしました

皆様質問の仕方に失礼があっって申し訳ありませんでした
お許しくださいませ
0460デフォルトの名無しさん (ワッチョイ 427c-e5AJ [43.235.241.201])垢版2022/12/23(金) 17:28:12.54ID:o+ONuUnd0
>>458で指摘している通り、他の所から読み込んだスタイルはそもそも変更出来ないって書いてあるんじゃね?
https://w3c.github.io/csswg-drafts/cssom/

> Cross-origin stylesheets are not allowed to be read or changed.

>>459のように実際にcssRulesにアクセスすると自分の所のcssじゃない場合をアクセスしようとすると
Uncaught DOMException: Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules
at <anonymous>:1:76
みたいなエラーになる

cssをいじりたいのだろうけど、そういう低層の話じゃなくて本当にやりたい事を書いた方が答えが得られると思うよ
結局何がやりたいのか全く分からんw
0462デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89])垢版2022/12/23(金) 19:30:29.91ID:OG24yN7PH
>>458
459,460,461

皆様ありがとうございます
具体的にこれをしたいというのはなかったんですけど
js勉強していまして、そういうことできるのかな?という質問でした

jsのエンジンは<link rel>を実行すると
jsの実行コンテキストを記録するメモリ部分に
<rel>の情報をロードして
HTML要素を読み込んだ時に参照するという挙動なら
クロスオリジンの適用を受けずに編集できるかなと
そういう疑問も持ちまして質問させていただきました

皆様ありがとうございました
0463デフォルトの名無しさん (オッペケ Sr11-y+PC [126.194.240.154])垢版2022/12/23(金) 20:54:13.31ID:2ps+kI7qr
>>462
>クロスオリジンの適用を受けずに編集できるかなと
君の>>450>>457の発言ではCSS参照が別ファイルでも同一オリジンでは問題なく出来て
別オリジンのみ問題が発生していると認識しているとは読み取れないけども
別ファイル即ち別オリジンと勘違いしてない?
同一オリジンなら別ファイルでも参照出来ることは理解してる?
0464デフォルトの名無しさん (JP 0H11-JDfe [126.249.157.89])垢版2022/12/23(金) 20:55:49.05ID:OG24yN7PH
>>460
今勉強再開して思い出しました。
@keyframesのプロパティや値を
動的に変更したいと考えたのです

同じファイルなら
<style id="st">
として、stから@keyframesを設定編集できますが
外部ファイルでの設定編集ができないので
できたらいいな、って質問してみました
0469デフォルトの名無しさん (オッペケ Sr11-y+PC [126.194.240.154])垢版2022/12/23(金) 21:39:17.88ID:2ps+kI7qr
>>467
それは本来別オリジンではないんだけどブラウザがローカルアクセスに対するセキュリティの一環として制限をかけてる模様
詳しくはググって
>>459のスクリプトを実行して
file:///~
の行のあとに例外が出るならそれが原因

対策としてはローカルにwebサーバを立ててhttp経由でアクセスする
そうすればスクリプト実行で例外が発生せずcssの中身が読み取れる
webサーバはそんな大層なものは必要なくてvscodeのLiveServerで十分
0473デフォルトの名無しさん (ワッチョイ b661-s0Sd [61.199.41.250])垢版2022/12/24(土) 14:27:49.26ID:0WYu35VL0
firefoxもsecurity.fileuri.strict_origin_policyをfalseにすれば回避できるけど
早いうちにローカルサーバ立てることを覚えた方が後が楽になると思うよ

対象要素が1つなら@keyframes書き換えるよりWebAnimationAPI使った方がいいかもしれないし
やりたいことはぼかさずにはっきり書いた方がいいよ
0474デフォルトの名無しさん (ワッチョイ ef79-EkqE [220.150.90.192])垢版2022/12/24(土) 22:49:22.50ID:oMpeQZG30
HTA(hta+ie)にとって替わるみたいな環境っていまだにないのかな
PWAみたいのではなく、javascript(やvbs)でWindowsのフレームワーク(.NETやCOMやら)と連携できるようなやつが欲しい
WebView2は思想的にHTAと比べて退化してるようにしか見えないけどこれぐらいなのか…
0476デフォルトの名無しさん (JP 0H88-aH43 [126.249.157.89])垢版2022/12/25(日) 12:52:51.27ID:GFtl9gAsH
皆さん、ありがとうございます
別シートのcssで可変にしたい部分を変数にし
読み込むシート側に変数専用のstyleタグを用意し
変数用のスタイルタグを編集することにしました

皆様いろいろとありがとうございました
0478デフォルトの名無しさん (JP 0H88-aH43 [126.249.157.89])垢版2022/12/25(日) 13:37:10.68ID:GFtl9gAsH
そうです
>>468様のアドバイスなら
私の学習レベルでもググり時間とられずにできそうだと思いまして

style.css
@keyframes xxx{ *** : var(--prm) }

index.html
<style id="prm"></style>
<script>
prm.innerHTML=":root {--prm:50% }"

のように、変数を編集するstyleタグを設けました
見栄え悪いしかっこ悪いんですけど
いろんな変数を設定変更する関数も自作できそうですので
とりあえずはこれでいいかなと
0481デフォルトの名無しさん (オッペケ Srd9-r/3v [126.194.247.243])垢版2022/12/25(日) 16:48:37.78ID:sJzx1gQhr
>>478
>私の学習レベルでもググり時間とられずにできそうだと思いまして
webサーバ云々が億劫だってのは分かるからしょうがないけども
せめて>>472ぐらいは実際に試して欲しかったな
ググって最初に出てくる記事にすぐ出来るやり方が具体的に書いてあるんだし
0482デフォルトの名無しさん (JP 0H88-aH43 [126.249.157.89])垢版2022/12/25(日) 16:50:28.05ID:GFtl9gAsH
>>479
面白かったです。

<html><head><body><div>
どの要素にでも、setProperty('param','value')を設定しておけば
別ファイルに作ったスタイルシートの変数を参照できるのですね

疑似的なコードですが
<script>
body.setProperty('--color','red')
div.setProperty('--color','blue')
html.setProperty('--color','green)

とすると、子孫のスタイル設定が優先されることも理解できました
とても面白く学習できました、ありがとうございました
0485デフォルトの名無しさん (ワッチョイ 1df0-aH43 [58.98.96.219])垢版2022/12/26(月) 13:51:42.59ID:fuxINEHv0
>>469
Live serverを使って、別のスタイルシートで設定した、フォント色の変更はOKでした。
ありがとうございました。

ただ、@keyframesに関しては、CSSKeyframeRule__{keyText..,style,,cssText,,}__までは見れたのですが
内容の変更方法が分からないため断念しました
時間あるときに再チャレンジしてみます

皆様ありがとうございました
0486デフォルトの名無しさん (ワッチョイ 114b-+VVc [110.2.215.28 [上級国民]])垢版2022/12/26(月) 15:01:08.23ID:pO4MU7IP0
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();
}
0487デフォルトの名無しさん (ワッチョイ 114b-+VVc [110.2.215.28 [上級国民]])垢版2022/12/26(月) 15:02:39.66ID:pO4MU7IP0
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;
}
}
0488デフォルトの名無しさん (ワッチョイ 114b-+VVc [110.2.215.28 [上級国民]])垢版2022/12/26(月) 15:07:33.18ID:pO4MU7IP0
線幅を変更するスクリプトなのですが、一応完成しました。
自分で使うだけならこれでいいのですが、他人に使ってもらう場合、ダイアログに「線幅を追加する」という項目を増やしたいと思っています。
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"のを削除するコードを書くことは可能ですか?)
0489デフォルトの名無しさん (スプッッ Sd5e-HEC+ [1.75.242.231])垢版2022/12/26(月) 15:27:01.38ID:oXRhIFIqd
スレ内を線幅で検索しても何も引っかからないのにこの書き出しで何か伝わると思ってるのすごいわ

線幅の配列を関数内で直書きしてるから自身を書き換えるとか面倒なことを考える必要があるわけで
関数の外に変数で宣言しとけば追加も削除もなんとでもなるでしょ
0490デフォルトの名無しさん (ワッチョイ de01-WsKb [60.103.67.153])垢版2022/12/26(月) 15:55:16.01ID:gS/UmYxh0
確かIllustratorかなんかのスクリプトでしょ
ここ見てるほとんどはWebブラウザやnode.jsのJavaScriptは知っててもそっちは知らないと思う
文法的にはJavaScriptと同じでも出てくるオブジェクトは独自のものだろうし説明しないとわからんよ
0499デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/04(水) 19:01:14.59ID:jNmuxM610
「無名関数」、「関数リテラル」の理解がちょっとぼやけています。

次の様なコードがあったとき、
let calcResult = function calc(a,b){
return a*b;
}

calc()
と()をつけて表せるものが普通の関数、それを変数に代入したもの
calcResult
が関数リテラルかと思っていました。
しかし、どうやら違うようで。。
0500デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/04(水) 19:01:57.33ID:jNmuxM610
例えば以下の2つの関数があります。

■「function関数」を変数に格納
let calcResult1 = function calc(a,b){
return a*b;
}

■「無名関数」を変数に格納
let calcResult2 = function(a,b){
return a*b;
}

「無名関数」は「関数リテラル」と同義である。とさまざまな文献に記述されています。

ならば、
calcResult1
は、関数リテラルではない。

calcResult2
は、関数リテラルである。

という認識で間違っていないでしょうか?
0501デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/04(水) 19:02:26.96ID:jNmuxM610
SetInterval()
に与える引数は、関数リテラルでなくてはならないそうです。

となると、以下は誤りで、
SetInterval(calcResult1,1000);

以下なら問題ない
SetInterval(calcResult2,1000);

という理解でよろしいでしょうか?
0502デフォルトの名無しさん (ワッチョイ 8701-1zgH [60.103.77.208])垢版2023/01/04(水) 20:37:28.67ID:UYb7FHhp0
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/function

https://developer.mozilla.org/ja/docs/Glossary/Literal
リテラルに関数は含まれてないな

「関数リテラル=無名関数」が間違ってて、calcResult1 も calcResult2 は、関数リテラル。
とイコールで結んじゃうのは乱暴か
字義に従えば「無名関数」には生成時に名前をつけなかった、程度の意味しかないかと

ただ、関数式として生成された関数は変数に格納するか、でなければ他の関数の引数になるので、名前をつける意味はほぼない
結果的に関数式の関数は無名関数になることがほとんどで
0504502 (ワッチョイ 8701-1zgH [60.103.77.208])垢版2023/01/04(水) 20:53:07.39ID:UYb7FHhp0
途中送信で変になってるからまとめ直し

>>500,501
その文脈での「関数リテラル」ってのは関数式で記述された関数のこと(>>502のリンク参照)で、名前の有無は関係ない
名前のあるcalcResult1 も 名前のないcalcResult2 も「関数リテラル」という理解でいいと思う
「無名関数」の「無名」には生成時に名前をつけなかった、程度の意味しかないかと

ただ、関数式として生成された関数は変数に格納するか、でなければ他の関数の引数になるので、名前をつける意味はほぼなくて結果的に無名関数になることがほとんどではある
0509デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/04(水) 21:32:15.85ID:jNmuxM610
>>507
必要ならページ画像をどっかにアップします。。

技術評論社
JavaScript本格入門
https://gihyo.jp/book/2016/978-4-7741-8411-1
P362
setTimeout/SetIntervalメソッドの注意点
...引数funcは必ず関数リテラルで指定してください。
0511デフォルトの名無しさん (ワッチョイ 8701-9yt5 [60.88.115.90])垢版2023/01/04(水) 21:47:22.56ID:QxUfEWbZ0
技術評論社はやめとけよ。
0514デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/04(水) 22:21:10.60ID:jNmuxM610
>>512
setTimeout()の例でしかもjQueryで
申し訳ないのですが。
1秒後に#displayのhtmlの内容を空にするコードです。

以下のようなコードではsetTimeoutが動かず、

setTimeout($('#display').html(' '), 1000);

代わりに、以下で動きます。

function clearDisplay(){
$('#display').html('');
}
setTimeout(clearDisplay, 1000);

このことから書籍にあるように
関数リテラルでないと引数に渡せないと
思っていました。。

書籍の文脈ですが、実際にあとで画像アップします。
0515デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.244.157])垢版2023/01/04(水) 22:46:11.56ID:GLj+17iFr
>setTimeout($('#display').html(' '), 1000);
これそもそも渡してるの関数じゃないからリテラル云々の問題じゃなくない?
html()が戻り値としてjQueryを返すからそれが引数として渡ってるでしょ

>function clearDisplay(){
> $('#display').html('');
>}
これもfunction「文」で定義してるから>>504で言うところの関数リテラルには当てはまらない関数だよね
0519デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/05(木) 00:26:22.30ID:EVXeoiyo0
私の勘違いだったのですね。

たしかに関数ではない。。
一応書籍のページ画像をuploadしました。

「引数funcは必ず関数リテラルで指定してください。」
https://uploda1.ysklog.net/uploda/8298a4c0da.png

「関数リテラルは....ある関数の引数として渡したり....」
https://uploda1.ysklog.net/uploda/0bcdf35455.png
0521デフォルトの名無しさん (ワッチョイ 2e5c-uhAF [39.3.101.10])垢版2023/01/05(木) 02:04:13.18ID:hRDnYJsk0
>>519
「引数funcは必ず関数リテラルで指定してください。」
ちょっと問題のある文章だなあ

https://developer.mozilla.org/ja/docs/Web/API/setTimeout
第一引数は関数またはjavascriptコードとして実行される文字列

関数ってのは関数呼び出しじゃなくて関数名、または無名関数(関数リテラル)

>>514
文字列で渡したら動くはず
setTimeout("$('#display').html(' ')", 1000);
0522デフォルトの名無しさん (ワッチョイ 8201-+uJR [219.204.123.70])垢版2023/01/05(木) 06:17:33.15ID:O+NRT3S+0
>>521
> 「引数funcは必ず関数リテラルで指定してください。」
> ちょっと問題のある文章だなあ
まあそこは直前に文字列でも指定できるけどって書いてるから教育的指導なんだろうとは思う
まあ「必ず」という言葉が強すぎるから「引数funcは関数リテラルで指定するようにしてください。」程度でいいと思う
むしろ問題は「関数リテラルは宣言した時点では、名前を持たないことから匿名関数、または無名関数と呼ばれることもあります。」の方だろうね
0523デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/05(木) 09:18:58.87ID:EVXeoiyo0
>>521
>文字列で渡したら動くはず
>setTimeout("$('#display').html(' ')", 1000);
ありがとう。関数とは、関数呼び出しではなく実行される文字列

次いでもう一点お願いします。

https://uploda1.ysklog.net/uploda/0bcdf35455.png
リスト4-04 function_literal.js

以下は、関数リテラルを使ってリスト4-01を書き換えたものです。

var getTraiangle = function(base,height){
return base * height/2;
}

console.log('三角形の面積:'+getTrianle(5,2));

↑の
getTrianle(5,2)
は、関数リテラルなのですね。
てっきり()がないものが関数リテラルと思っていたが、
どうも、それも間違いようで。
0525デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/05(木) 09:23:08.82ID:EVXeoiyo0
「関数呼び出し」と
「引数付の関数リテラル」は
それだけみても違いわからないですね。
定義された場所を見て判断しないと。
0526デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.246.162])垢版2023/01/05(木) 10:06:29.26ID:rM8SDmmnr
>>523
>>setTimeout("$('#display').html(' ')", 1000);
>ありがとう。関数とは、関数呼び出しではなく実行される文字列
いやいや、それは関数じゃなくてただの文字列
setTimeoutの第一引数は文字列か関数って書いてあるでしょ

関数リテラルって言葉はもう忘れていいと思うよ
そもそもMDNに記述がないから便宜的なものだし、その本での説明も怪しい
定義の仕方で区分されてるだけで実質的にはただの関数で
挙動に差異があるわけでもないだろうし
0528デフォルトの名無しさん (ワッチョイ e6cf-/EFQ [153.174.224.39])垢版2023/01/05(木) 10:52:37.45ID:uFuuDD5j0
>>523
関数リテラルという呼び方はひとまず置いといて、無名関数という概念でとらえるとよい
function(~~){~~} は見ての通り、ひとつの無名関数である

var getTraiangle = function(base,height){ return base * height/2; }
によって、変数getTraiangle でこの無名関数を参照できるようになる

getTraiangle(5,2)
では変数名を使って先の無名関数を呼び出し、戻り値が取得される
これは一般に「関数の戻り値」と呼ばれる (関数リテラルではない)

console.log('三角形の面積:'+getTraiangle(5,2));
では、「+」によって、文字列 '三角形の面積:' と数値である戻り値が連結されて、ひとつの文字列が生成される
console.log()がそれを出力する

>>525
何かしら(無名)関数を使うにあたり、引数が要るなら付ける、要らないなら付けない、それだけの話
あなたの言う「引数付の関数リテラル」は勘違いで、「引数付きの関数呼び出し」に過ぎない

>>524
そういうこと
0529デフォルトの名無しさん (ワッチョイ 2e5c-uhAF [39.3.101.10])垢版2023/01/05(木) 11:50:49.92ID:hRDnYJsk0
>>523
>setTimeout("$('#display').html(' ')", 1000);
ありがとう。関数とは、関数呼び出しではなく実行される文字列

違う。全く違う。めっちゃ大事なことだから勘違いしないで
それはsetTimeoutoの第一引数を文字列として指定した場合のこと

第一引数に関数を指定する方法は>>514で君は既にやっている
setTimeout(clearDisplay, 1000);
clearDisplay関数を定義してそれをsetTimeoutの第一引数に渡している
これでいい
>>527の言う通り

>>526の言う通り今は無名関数とか関数リテラルとかにこだわらない方がいい
>>523のうp画像に無名関数は重要な概念なので後ほど詳述ってあるからそこをみっちり勉強してね
0530デフォルトの名無しさん (オッペケ Sr4f-JZbg [126.194.240.4])垢版2023/01/05(木) 12:50:07.72ID:w+0CNSMQr
関数リテラルの説明についてはここが一番しっくりくる
https://www.javadrive.jp/javascript/function/index5.html

「関数リテラルを使った関数定義」って言い回しを強調してるのが良い
だから関数リテラルを引数として渡すって言ったらこういうことだよなって
dispNum(10, 8, function(x, y){
return (x + y) / 2;
});
0531デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/05(木) 14:46:47.66ID:EVXeoiyo0
すいません。やっぱり関数リテラルという意味を理解したい。。でも↓この質問でわかるかも。
だれか答えていただけますでしょうか?
---
次のコードがあります。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.
関数リテラルとは、用法のことであり、
コード部分を表すものではない。
0532デフォルトの名無しさん (ワッチョイ e67b-28F+ [153.178.229.141])垢版2023/01/05(木) 14:53:38.67ID:mmmJuCOb0
>>531
ぐぐったら以下の様に出る。結構理解しやすいと思うが。
リテラルとは リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことである。 変数の対義語であり、変更されないことを前提とした値である。 プログラミング言語のコード中にリテラルが挿入される場合には、判別のために特定の書式を用いる必要がある。
0537デフォルトの名無しさん (ワッチョイ 9f63-uhAF [180.58.213.164])垢版2023/01/05(木) 15:35:00.85ID:m3Sm+5EJ0
>>531
強いて言えば1かな
でも数値・文字列・正規表現リテラルみたいにプログラム中に単独で書くことは出来ないね
変数に代入するなり関数の引数に使うなりしないとエラーになる
英語でもfunction literalっていうみたいだけど関数リテラルってあんまりいい言葉だと思わないなあ

33;
"hello";
/^js$/;

function() {return true}; //SyntaxError

こんなことにこだわるよりもっと基本的なこと勉強した方方がいいんじゃないの?
0538デフォルトの名無しさん (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/05(木) 15:38:00.87ID:EVXeoiyo0
あ。
誤解していたところがとけました。
当初は「2」かと妄信していたので、
だいぶ合点がとれました。
関数リテラルが無名関数と同義という説明も
いやそうではないという説明も
すっきりしました。

皆さん長々とお付き合いいただき
ありがとうございました。
0541デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])垢版2023/01/05(木) 20:55:47.77ID:XhDooIHVH
>>531
自分もあまりJS詳しくないんですけど
リテラルっていうのは、括るもの、という意味合いでは?
オブジェクトリテラルっていうのは波かっこで括るオブジェクト={}
文字列のリテラルは、""や’’
展開のリテラルは、``とか
関数のリテラルというのは、functionを指定した引数括弧つきのオブジェクトリテラルでfunction(){}

関数リテラルといえば、例えばfunction func(){...}
とした場合、{...}は変数funcに文字列として代入されます
そしてfuncは関数オブジェクトと指定されていて
関数の実行は()を読み込むことで実行されます
func 文字列
()   関数の実行
0542デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])垢版2023/01/05(木) 21:01:26.21ID:XhDooIHVH
>>531
解決済みだったようですみませんでした
参考までに追加

function func(){return 1}
とした場合
console.log(func)

console.log(func())
を見比べるとわかりますが、
func変数の中身は、function指定された文字列で
func()は関数を実行した結果の1が表示されます
0544デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])垢版2023/01/05(木) 22:26:48.61ID:XhDooIHVH
>>543
括る、というのはそういう意味かと
リテラルはリテラルなので括る必要はなくて
プリミティブは、これは文字列です、
これは配列です、
これはオブジェクトです
とエンジンに理解させるための記述なのかと思いまして
0550デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])垢版2023/01/05(木) 23:12:56.82ID:XhDooIHVH
<<538
諄いですね
正しい理論的な話あればご披露ください

JSの処理エンジンに、どういう記述があれば
どう処理するかというのがあるでしょ
{}とう記述を読めば、オブジェクトなのだな、と
””ならもじれるなのかなと、
function でて意義されたものがあれば関数なのかなと

リテラルは数値などの表現で
文字列は””、’’のクオーテーションで
関数は、function装飾委sで
それぞれが何を表現してるのかを確認し
スクリプト実行時にそれらをコンテキストに登録して
その後の作動を担保する、ってことなのかな
0557538 (ワッチョイ 8202-9yt5 [27.92.176.51])垢版2023/01/06(金) 17:52:02.25ID:AgA2i3Ln0
リテラルって文字列とか数値というイメージ
だから、

let dispMessage = function(msg){console.log(msg)}

っていう文があれば、関数リテラルならどうみても
左側の変数の文字列の事って思うじゃないですか。
右側はfunctionとか{}とか()とかあるので、
リテラルからかけ離れていると思ってました。

どうりで、話が噛み合わないなと思ってたが
今、全部なっとく。ありがとうございました!
0558デフォルトの名無しさん (ブーイモ MMee-DakT [133.159.153.167])垢版2023/01/06(金) 21:33:28.00ID:Ynt2iWE0M
リテラルはもともと「文字通りの」って意味
ソースに書いた内容が変数とかを介さずにそのまま1つの値として評価されるもの

括弧で括るとかの意味は全く無い
0559デフォルトの名無しさん (JP 0H4f-ChaJ [126.249.157.89])垢版2023/01/06(金) 22:25:41.09ID:Th1PE0Z2H
リテラル

””や’’で表現されるのは文字列と評価する
[]は配列と評価する
{}はオブジェクトと評価する
JSエンジンがオブジェクトをどう評価して処理するかということだと思ったんですけど
何やら全く的外れなこと言ってたみたいですみませんでした
何度も謝ったのでもう許してください、鬼神様
0562デフォルトの名無しさん (ワッチョイ 8a74-+oQO [211.124.81.22])垢版2023/01/07(土) 11:56:48.02ID:n88Tb37q0
>>561
いますぐ読みたまえ
0564デフォルトの名無しさん (ワッチョイ 8a74-+oQO [211.124.81.22])垢版2023/01/07(土) 12:11:57.01ID:n88Tb37q0
>>563
読めなくても読むのだ
0566デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129])垢版2023/01/07(土) 18:24:30.76ID:2xit7B8+0
再帰関数についての質問

function test(){
処理1
test();
処理2
}
とした場合
処理2の前にtest()があるので、処理2はずっと実行されないということですか?
0568デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129])垢版2023/01/07(土) 19:05:43.05ID:2xit7B8+0
>>567
ありがとうございます
処理1はreturnや他関数への再帰はしないものとします
0573デフォルトの名無しさん (ブーイモ MM4a-mEot [49.239.64.156])垢版2023/01/08(日) 01:53:30.69ID:gpkzwVQsM
末尾最適化されてれば無限ループ可能でしょ?
ES2015で末尾最適化の仕様化されたけど適合してない実装が多いというだけ
0574デフォルトの名無しさん (ブーイモ MM4a-mEot [49.239.64.156])垢版2023/01/08(日) 01:54:05.49ID:gpkzwVQsM
ありゃ被ったか
0575デフォルトの名無しさん (ワッチョイ 7b79-Jp3v [220.150.90.192])垢版2023/01/08(日) 02:24:13.14ID:FOdy7Dic0
規格があっても準拠するかどうかは実装次第というね
ちなみにjavascriptは関数がファーストクラスでレキシカルスコープを持つためいわゆるクロージャを無意識に生成できる
クロージャがあれば末尾再帰できないからと不自由に感じることはないと思われる
0576デフォルトの名無しさん (ワッチョイ 9310-zDHW [180.12.82.129])垢版2023/01/08(日) 17:51:20.88ID:TObCTh0j0
>>570
@supportsや@mediaのネストされたcssの全プロパティ値を取得するために
再帰使いたかった
0581デフォルトの名無しさん (ワッチョイ 6305-S6ln [116.94.64.124])垢版2023/01/14(土) 18:28:43.16ID:WRdKOG7o0
質問
scriptタグで指定されてるリンク先をjavascriptで変えたい
例えば. script type="text/javascript" src="A”
になってんのを
script type="text/javascript" src="B”に変えたい
replace等でやろうとしたものの上手くいかなかった
0583デフォルトの名無しさん (ワッチョイ 6305-S6ln [116.94.64.124])垢版2023/01/14(土) 23:08:43.95ID:WRdKOG7o0
>>582
ありがとうございます…
本当に助かりました…
0584デフォルトの名無しさん (アウアウウー Sac7-wtyD [106.146.97.205])垢版2023/01/15(日) 01:42:33.54ID:k1TuDUU1a
確かに以下のように、jQuery で、script タグのsrc 属性を、
a.js から、b.js へ変えても、scriptタグが再読み込みされない

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

新たなscriptタグを追加してから、元のscriptタグを削除すれば、読み込まれるかも
0586デフォルトの名無しさん (オイコラミネオ MMa7-+Atj [150.66.84.146])垢版2023/01/15(日) 13:53:25.79ID:0IRxms8qM
ルーターのブロードステーションに電源を入れると
エッジブラウザが起動して自動的にブロードステーションのルーターのページが表示されます。
ブロードステーション関連のソフトウェアは一切インストールしていないにもかかわらずです。
これって動きだけ見ますとルータが勝手にこっちのpcを操作してるように見えるのですがどういう仕組みなんでしょうか?
ブラウザ(JavaScript)はページ内しか操作出来ない筈なんですが。
0587デフォルトの名無しさん (ワッチョイ 3f3d-/16g [133.32.132.49 [上級国民]])垢版2023/01/15(日) 15:02:28.33ID:yvxMece60
よろしくお願いします

【環境】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
0593デフォルトの名無しさん (ワッチョイ 634b-mccM [110.2.215.28 [上級国民]])垢版2023/01/15(日) 20:06:20.61ID:7dUg93Xk0
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())から読めるのでしょうか?
こういう書き方が出来るのなら楽なのですが…
0594デフォルトの名無しさん (オッペケ Sr67-2lig [126.208.238.32])垢版2023/01/15(日) 20:27:36.55ID:Vv6s9YYpr
関数内でvarを付けずに宣言された変数はグローバルスコープになる
var rd11 = pg1.add("edittext", [0,0,40,23], 100)
とすると関数スコープになって外部からアクセスできなくなるはず
関数内での変数宣言はvar文で行うべきで
これを「楽」と思ってしまうのは危険
0600デフォルトの名無しさん (オッペケ Sr67-2lig [126.204.224.48])垢版2023/01/15(日) 23:55:05.86ID:5X3ij1Yxr
>>598
このadobeのスクリプトはES3相当らしいのでvarを案内してるのよ

まあそもそもスレ違いだからID:7dUg93Xk0は今後adobeのフォーラムで質問するようにね
その方が我々も余計な労力を払わなくていいし君も的確な回答がもらえる
https://community.adobe.com/t5/forums/searchpage/tab/message?filter=location&q=%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%20script&noSynonym=false&location=category:jp&collapse_discussion=true
0606デフォルトの名無しさん (ワンミングク MM87-KwiO [114.150.17.128])垢版2023/01/16(月) 08:45:42.10ID:Hbn6MJh3M
イラレ特化だからではなくてJavaScriptのバージョンの問題なんだけど
なんも書いてなければ最新のモダンブラウザのつもりでみんな考える
今JavaScriptのバージョンってES12くらいかね、あんまりそういう言い方しないけど
イラレ搭載のはES3なの?それも知らんけど
クッソ古いから使える文法も関数もまるで違うから環境を書けと言っているのよ
そこらへん多分知らなかったんだろうけど、それは仕方ないけど、次からは環境きちんと書いて
というかできれば以降はAdobeのフォーラムでやって
0607デフォルトの名無しさん (アウアウウー Sac7-OPB1 [106.146.82.82])垢版2023/01/17(火) 01:44:26.39ID:BTJjkb3Ra
>>587
C/C++ 以外の言語は、参照しかコピーしない・shallow copy。
実体は再作成されない

なので、deep copy するのに、参照のリンクが切れないので困る

だから、marshal とか、わざわざオブジェクトをJSON 文字列化して、
その文字列から、新しいオブジェクトを作ったりする
0610デフォルトの名無しさん (ワッチョイ 6310-qfBe [180.59.92.6])垢版2023/01/18(水) 00:05:10.90ID:csewAuIZ0
検索アドレスに言語指定が必要になって下のスクリプトを書きました。

function Jump(){
var kekka =
"ht"+"tp://www.concertzender.nl/?s=" +
document.concertzender.kensaku.value +
"&lang=nl";
location.href = kekka;
return;
}

kensaku は検索フォームの文字列です。これで正常動作するのですが、
エラーチェックすると&が警告されて気になります。
&にしたらアドレスが&になって検索できないし、
なんとかならないものでしょうか・・・
0616デフォルトの名無しさん (ワッチョイ 6310-qfBe [180.59.92.6])垢版2023/01/18(水) 10:05:55.23ID:csewAuIZ0
>>614
すいません。単純に特殊文字ダメよという内容だったんで・・・

"&lang=nl";

"&lang=nl"; もし、"&" で始まるエンティティを含めるつもりなら、";" で終了させるべきです。
このエラーメッセージのもう一つの理由は、このテキストの直前にある「&」文字をエスケープしなかったために、
誤ってエンティティを作成してしまったことです。(機械翻訳)

自分としては&amp;と書いて、リンクアドレスとして&を出力したいわけです・・・
0617デフォルトの名無しさん (ワッチョイ cfbb-sA4L [217.178.152.148])垢版2023/01/18(水) 10:16:20.21ID:guU+fOES0
>>615
あーそういうことか。コピペコードで悪さでもしようとしているのかと思ったけど違うみたいね

>>610
大体どの言語でもクエリ文字列を作る仕組みが用意されているのでそれを利用するのが適切です
JavaScriptならコレかな

URLSearchParams
https://developer.mozilla.org/ja/docs/Web/API/URLSearchParams
0620デフォルトの名無しさん (ワッチョイ 6310-qfBe [180.59.92.6])垢版2023/01/18(水) 13:08:45.81ID:csewAuIZ0
>>618
エラーメッセージはその部分は&amp;だろと言っているのですが、じゃあ&amp;と書くと
tp://www.concertzender.nl/?s=kensaku&amp;lang=nl と出力されてエラーになり、困ったわけです・・・

>>619
無視していいんですね。ありがとうございます。
htmlでは&amp;と書くと&になるのに、スクリプトの部分ではそうならないのですね。
0627デフォルトの名無しさん (ワッチョイ bf3d-Sc6R [133.32.132.49 [上級国民]])垢版2023/01/26(木) 00:31:01.01ID:c9Kzf+f60
【環境】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])
0630デフォルトの名無しさん (アウアウウー Saa3-6TJq [106.129.156.153])垢版2023/01/29(日) 10:31:07.49ID:rZA8vUyra
初学者質問ですいませんが、変数aが文字列あいう、かつ、変数bがundefinedでない時 というif文を書きたい時
if (a=='あいう' && (!(b === void 0))) {...
という書き方であってますか?
よりシンプルな書き方とか、より標準的な書き方ってありますでしょうか。
0634デフォルトの名無しさん (アウアウウー Saa3-6TJq [106.129.157.183])垢版2023/01/29(日) 15:59:30.70ID:rpOrCqGha
>631
ありがとうございます。リンク先確認しました。
if(a=='あいう' && b!== undefined またはvoid 0)
という感じでしょうか。
ここでb!= undefined とするとまずいのはbがnullの時だけ、という認識でいいでしょうか。

>632
ありがとうございます。bが0や空文字の時にも偽になりそうです。
0635デフォルトの名無しさん (ワッチョイ df79-jh2e [220.150.90.192])垢版2023/01/29(日) 16:03:43.52ID:R24XfIrD0
第一にjavascriptみたいな後付け追加仕様が混在する言語は規格よりも実装の影響力が強いから
想定環境で検証済の方法を採用すべきだと思う
コードとしては変数をtypeofで"undefined"と比較するのが恐らく理解しやすいが、
メンテナがjavascriptに十分慣れていてvoid 0のイディオムの理解を期待できるならそっちでもいい
0636デフォルトの名無しさん (スッップ Sd72-X84U [49.98.141.203])垢版2023/01/29(日) 16:28:19.00ID:MX/guDl/d
>>634
結局のところ
・undefinedが上書きされる可能性を考慮する必要があるのか
・bがundefined以外のfalsyな値を取りうるのか
・取る場合それぞれの値をundefinedとは区別したいのか同じとみなしたいのか
この辺次第で望ましい書き方は変わってくるわけで
0638デフォルトの名無しさん (アウアウウー Sacd-3+Au [106.128.44.107])垢版2023/02/12(日) 19:44:05.09ID:zQHZ3m1Fa
//☆☆県(API番号☆00000)の予報を取得
let url = "https://www.jma.go.jp/bosai/forecast/data/forecast/☆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];
});

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

☆はわざとです
0647デフォルトの名無しさん (ワッチョイ fa3d-FCAK [133.32.132.49 [上級国民]])垢版2023/02/24(金) 01:21:32.26ID:jGK2BMhd0
//【環境】Win11,JScript
//【何をしたのか】case文のところに条件式を書き、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になるのでは?
0650デフォルトの名無しさん (ワッチョイ 9ebd-kyjD [119.240.41.213])垢版2023/02/24(金) 08:59:59.37ID:thXJapXb0
>>649
case に式を書けるようにしたことによって使えるようになった副作用みたいなものだよね。
switch の式と一致する case を探すのが switch文の動作だとするなら、switch の式 true と一致する値となる、すなわち true になる式を持つ case が選択される。
個人的には if で書けばいいものをわざわざ分かりづらい書き方にしてるバッドプラクティスだと思ってるが、フォールスルーと組み合わせると if よりもスマートに書ける可能性はあるかもね。
特に >>647 のように全部の case を評価してほしいなら、switch で書く利点が何一つ無い。
if より利点がある場合は、フォールスルーする場合に最初に true になる case までしか式が評価されないことくらいなのに。
0656デフォルトの名無しさん (ワッチョイ edda-055g [60.41.23.73])垢版2023/02/25(土) 23:38:37.47ID:TypeZdxc0
素の JS でいじゃん。

というのは言い過ぎかもしれんけど、何に使ってるんだか分からんようなことでいちいちおまじないのように jquery 読み込んでる呆れるようなところも少なくないんだよな。
通信回線速度も処理能力も上がってるから動いちゃいるが、とりあえず素の JS で書けるようになれと言いたい。
ブラウザ毎の非互換も少なくなってるし querySelector みたいな便利なメソッドもあるし、そんなに苦労しないでしょ。
0660デフォルトの名無しさん (ワッチョイ 1dff-ZYAP [180.198.6.154])垢版2023/03/02(木) 02:00:11.27ID:65NO3QYK0
htmlコーダー志望の初心者です。
JSの入門書を読み終えたのでより実践的な学習に移行したいのですが、
既存の書籍やサイトは総論のような基本的な知識に焦点を当てたものが多い印象で、
実務において初心者コーダーにどのようなプログラムの作成が
求められてくるのかが判然としません。
そのような内容に焦点を当てた書籍やサイト等はありますか。
0663デフォルトの名無しさん (オッペケ Sr29-tD1/ [126.194.18.54])垢版2023/03/03(金) 08:25:40.95ID:DJxhSXLyr
99%のエンジニアは片手間でできないからな
エンジニアはhtmlとcssをバカにするけどほとんどのエンジニアはまともに使えていないんだよ
特にcss

使い方を知らない
勉強しようとしても理解できない
なのにバカにする

エンジニアは視覚からコードに落とし込む能力が絶望的に劣っている

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

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

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

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

じゃあjsxはデザイナーに書かせるのか?と聞くと無言

毎回このパターン
0667デフォルトの名無しさん (ワッチョイ f55c-W5vA [218.218.22.225])垢版2023/03/03(金) 10:24:24.87ID:o6EY7x580
webプログラマーに高度なデザインまで要求するのは無理でしょ
そのためにプロのデザイナーがいるんだし
でもほとんどのエンジニアがhtmlとcssをまともに使えないなんてありえない
今いる環境が悪すぎるんじゃないの?
0670デフォルトの名無しさん (オッペケ Sr29-tD1/ [126.194.18.54])垢版2023/03/03(金) 11:54:37.73ID:DJxhSXLyr
こういうこと

デザイナーの担当
・モック作成
・Atomicデザイン込みのコンポーネント設計
・コンポーネント作成
・App作成(コンポーネントの組み上げ)
・jsx、css
・state更新とrender関連
・レスポンシブ対応
・トランジションやアニメーションなど
・DOM生成後の表示・操作・調整(表示順やインタラクション)
・エラー表示、警告
・htmlバリデーションのcheckValidityやreportValidity処理

フロントエンジニアの担当
・APIでデータ送受信
・propsで流し込み
0686デフォルトの名無しさん (ワッチョイ 6710-zj+m [124.100.11.9])垢版2023/03/11(土) 23:19:16.39ID:qvilA0zq0
sortメソッドは必ず、比較関数と一緒に使用する必要ありますか?
sortメソッドは数値を並びかえだと比較関数と一緒でないとうまくいかなくて、
でも、文字列のソートなら、ソート関数なくてもうまくいくみたい。
sortは文字列でも数値でもソート関数使った方がいいのでしょうか?
0687502 (ワッチョイ 6701-7U6a [60.103.73.19])垢版2023/03/12(日) 04:39:15.28ID:PQcYNrkb0
>>686
疑問に思うことがあれば、まずMDNで関数の仕様を確認してみるといい
sort 関数なら、解説に関数を指定しなかった場合についてもちゃんと書いてある

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

> compareFn が与えられなかった場合、undefined 以外のすべての配列要素は文字列に変換され、文字列が UTF-16 コード単位順でソートされます。例えば、"banana" は "cherry" の前に来ます。数値のソートでは、9 が 80 の前に来ますが、数値は文字列に変換されるため、Unicode 順で "80" が "9" の前に来ます。undefined の要素はすべて、配列の末尾に並べられます。
0689デフォルトの名無しさん (ワッチョイ 6701-QDb6 [60.116.224.81])垢版2023/03/12(日) 10:07:09.74ID:mPShShEs0
ティラノスクリプトでゲーム作ろうとしたら、結局JSまで触らないと無理そうで及び腰・・・
・例えば変数aに"gazou1"という文字列を入れる
・『【"変数a"+.jpg】を表示』みたいな記述?? ←ここが分からない
・結果、gazou1.jpgが表示される
こんな感じの、変数に入れた文字列を使用して画像表示ってできますか?
JS 変数 画像表示 とかで調べても情報が多すぎてさっぱり分からない
0691デフォルトの名無しさん (ワッチョイ 6701-QDb6 [60.116.224.81])垢版2023/03/12(日) 12:27:02.18ID:mPShShEs0
>>690
誘導ありがとうございます
ティラノだけでは無理そう&ティラノ上ではJSの記述が使える、という事でこちらで質問しました
なのでJSで可能か不可能かだけでも教えて頂けると助かります
JSで不可能なら調べたところで出て来ないでしょうから延々調べ続けるはめに・・・
0693デフォルトの名無しさん (ワッチョイ dff0-S+nL [211.19.68.36])垢版2023/03/13(月) 10:07:27.43ID:/ROF2oq40
>>689
こういうこと?
===============================
<body>
<a href='#' onclick='fun'>link</a>
</body>

<script>
function fun(){a.href='https://....'}
</script>
===============================

===============================
<body>
<a href='#' id='href'>link</a>
</body>

<script>
href.onclick=function(){a.href='https;//...'}
---------------------
// または
let aLink=document.querySelector('[a]');
aLink.addEventListener('click',()=>{a.href='https://...'}):
</script>
================================
0695デフォルトの名無しさん (ワッチョイ 6701-QDb6 [60.116.224.81])垢版2023/03/13(月) 19:09:00.85ID:LN5ju60U0
>>693
表示する画像を変数を使って切り替えたいので、
if 変数a=='花' なら 花.jpg を表示 else 変数a=='山' なら 山.jpg を表示
みたいな感じで一応は表示できるのですが、表示したい箇所が複数あるので
if 変数b=='花' とか if変数c==’’花' とかで凄く長くなりそうなのです
でももし 変数の中身+.jpg みたいな記述がjsに存在するなら
aの場所には 変数aの中身+.jpgを表示 bの場所には変数bの中身+.jpg みたいに凄く簡略化できるかなって

教えて頂いたコードを調べてみます!ありがとうございます!
0698デフォルトの名無しさん (オッペケ Srdb-k1Ry [126.179.243.197])垢版2023/03/13(月) 20:03:21.60ID:z8Hv0b/wr
>>697
>そこは質問スレじゃないのでどうにも質問しづらくて
そのスレを「質問」で検索してみると皆質問してるのが分かります
気後れする必要はないと思いますよ

>とうかJSの質問スレでJSの質問してるのに>「ティラノ上で動かしてる」ってだけで、
>そこまで「よそいけ、よそいけ」って言わなくても・・・
あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです
それについてはこのスレよりティラノスレや専用掲示板の方が的確なアドバイスが得られるはずです
違いますか?
0700デフォルトの名無しさん (ワッチョイ 6701-QDb6 [60.116.224.81])垢版2023/03/13(月) 20:21:27.02ID:LN5ju60U0
>>698
>あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです
違います。自分の質問を要約すると「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」です
最初にティラノの名を出したことで誤解を招いたかも知れませんが、
>>689に >JS 変数 画像表示 とかで調べても
>>691に >なのでJSで可能か不可能かだけでも教えて頂けると助かります
と書いてあるように、ティラノではなく、あくまでJSについて尋ねています
0703デフォルトの名無しさん (ワッチョイ 7fbb-EKUa [217.178.27.228])垢版2023/03/13(月) 20:58:10.41ID:bqu+B+fY0
>>700
> 「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」

はい。可能です
imgタグにデータURLを引き渡し表示することはごく普通に見ることができます
Base64エンコードされた文字列とmediatypeをセットするだけです
0704デフォルトの名無しさん (ブーイモ MMff-tpC5 [49.239.64.189])垢版2023/03/13(月) 20:59:33.75ID:1Iq9NysVM
>>700
あなたの質問はjavascriptの質問ではありますがティラノスクリプトの仕様を知らないと答えられないものです
こちらはティラノスクリプトの仕様を知らないのであなたの代わりに調べることから始めなければなりません
ティラノスレであれば詳しい人がいると思うのでそちらへどうぞ
0705デフォルトの名無しさん (ワッチョイ 6701-QDb6 [60.116.224.81])垢版2023/03/13(月) 21:59:41.61ID:LN5ju60U0
>>701
上述の通りゲーム作成と作業の簡略化のためです
>>702
拡張子の付け足しは誤解を招く表現でした。変数の中にある文字列と同じ名前の画像を表示するってことです
>>703
ありがとうございます。調べてみます
>>704
あくまでJSの事として聞いているので「JSではこれこれこうやる。それがティラノ上で動くかは知らんけど」って感じの答えで十分です
ティラノスレでJSのこと聞くよりJSスレでJSのこと聞く方が早そう、って考えはそこまで変ですか?
0706デフォルトの名無しさん (オッペケ Srdb-k1Ry [126.179.243.197])垢版2023/03/13(月) 22:18:31.29ID:z8Hv0b/wr
>>705
>上述の通りゲーム作成と作業の簡略化のためです
それは「ティラノスクリプトで変数に応じた画像表示する」こととは違うのですか?

>「JSではこれこれこうやる。それがティラノ上で動くかは知らんけど」
このスレでそんな回答をもらうよりはティラノスレで質問して
「ティラノスクリプトではみんなこうやってるよ」って回答をもらう方が何倍も早くて確実だと思いますがいかがでしょう
0707デフォルトの名無しさん (アウアウウー Sa2b-lsaJ [106.146.86.167])垢版2023/03/14(火) 01:06:18.93ID:VmfXTFqwa
例えば、jQuery で、

<img id="photo_1" src="a.png">
を、以下に変更するなら
<img id="photo_1" src="image_1.jpg">

// :first は、最初に見つかったもの
$( '#photo_1:first' ).each( function ( index, elem ) {

const image_1_basename = "image_1"
const image_1_filename = image_1_basename + ".jpg"

$(this).attr('src', image_1_filename) // 設定
} )
0711デフォルトの名無しさん (オッペケ Srdb-k1Ry [126.194.234.17])垢版2023/03/14(火) 13:21:05.82ID:crjDIavXr
>>705
ティラノについて少し調べたのでスレ違いを承知の上で書きます
あなたが>>689>>695でやりたいことは
[bg storage="&f.bg + '.jpg'" time=1000]
というような書き方で実現できるかと思います

簡単に説明します
まず「&f.bg」の「&」はエンティティと呼ばれるもので変数の値をタグのパラメータとして渡すときに使用します
https://tyrano.jp/usage/tech/hensuu
の最後に説明があります

そして、storageパラメータに渡す際に「 + '.jpg'」で拡張子を連結しています。これは
https://tyrano.jp/sample2/code/kiso/19#demo
のkaisetsu/19_variable_1.ksの415行目~に変数に対して数値演算をした値を
パラメータに渡す例がありました。文字列の連結も同様に可能です

これによって、変数f.bgの値が「花」ならば「花.jpg」が、「山」ならば「山.jpg」が表示されます
例は背景ですがキャラやその他の画像でも可能だと思います
0712デフォルトの名無しさん (オッペケ Srdb-k1Ry [126.194.234.17])垢版2023/03/14(火) 13:30:55.51ID:crjDIavXr
>>705
なお、簡単なサンプルで動作確認をしました
https://tyrano.jp/usage/tutorial/moji
上記チュートリアルに従って新規プロジェクトを作成し、
first.ksの内容を以下のように書き換えて実行してみてください

*start
[wait time=100]

背景を変更します。[r]
[link target=*select_room]<教室>[endlink][r]
[link target=*select_rouka]<廊下>[endlink][r]
[s]

*select_room
[eval exp="f.bg='room'"]
[jump target=end_select]

*select_rouka
[eval exp="f.bg='rouka'"]
[jump target=end_select]

*end_select
[cm]
[bg storage="&f.bg + '.jpg'" time=1000]
[jump target=start]
0715デフォルトの名無しさん (オッペケ Srdb-k1Ry [126.179.252.137])垢版2023/03/14(火) 20:53:28.39ID:GiZ8CeD1r
>>713
解決したのならなによりです

が、今回無駄に遠回りをしてしまったのは自覚、反省しましょう
あなたはこの問題の解決はティラノ単体では無理だと決めつけてしまったためにこのスレで質問しましたが
その判断は正しくありませんでした

繰り返しになりますが、この先また何か躓いたときはまずティラノの掲示板なりスレなりで聞いてみるようにしましょう(たとえJSに関することであれ)
その方が解決が早く、的確なはずです
0717デフォルトの名無しさん (ササクッテロラ Spdb-Muon [126.182.172.77])垢版2023/03/15(水) 01:17:49.11ID:sTLgg4Iop
初めまして

Pixiv filter(GitHubで公開、リンクはスパム対策で貼れず)という拡張機能がありまして、それに似たものを自作したいと思い立ち、色々調べてみました

別スレにて、検索画面上での作品ごとのタグは、画面には表示されないもののデータとしては生成されている、という事を伺ったのですが、
どこに生成されているのか、どうやったら参照できるのかなどが分からず、苦戦しております。

ご教授頂ければ幸いです
0722デフォルトの名無しさん (JP 0Hdb-mIEw [126.249.157.89])垢版2023/03/15(水) 20:45:42.17ID:q+AMrJS6H
Pixiv filterが何なのかわからないし確認もしてないけど、

例えば複数の作品毎にTagオブジェクトがあったとして、
Tagのプロパティに表示させるか表示させないかを判定するプロパティがあり
そのプロパティ名がshowAbleで、表示を許可するのは、showAble:true
許可しない場合には、showAble:false
とされていたとすれば

まず最初にすべての作品Tagオブジェクトが格納されている配列を取得し(もしくは配列に取得する関数を作り)
(let tagArr=[tag1,tag2,tag3,tag4....];)

その配列から、tag.showAble=trueであるオブジェクトを取得して別の配列(showAblerArray)に格納し
(let showAbleArray=[] ; for(let t of tagArr){ (if(t.showAble==true){showAbleArray.push(t)

showAbleArrayの全要素に対して、表示させる処理をする
(for(let s of showAbleArray){,,,,,,どこに表示させるか......})

っていう感じでどうですか?
0726デフォルトの名無しさん (JP 0Hdb-mIEw [126.249.157.89])垢版2023/03/16(木) 07:15:13.56ID:Hd88hZaKH
javascriptで作られたプログラムの処理に関して
Jqyeryを使えば簡単だよって言われても
いやいやここはjSで書きたいんでってなるでしょ
そういう質問に対してjqのほうが簡単っていうのがよくわからん

フレームワークの質問スレは
ベース言語のすれとは別に立てたほうが
0733デフォルトの名無しさん (JP 0Hdb-mIEw [126.249.157.89])垢版2023/03/16(木) 21:11:03.92ID:Hd88hZaKH
混乱させるだけとかwww
そもそも解答者がわざわざ対象コードを検索して読み込み
そして質問者が満足するようなコードを生成するとか、自分は絶対しないw

質問者は
・何やら検索するらしい
・検索はタグで行うらしい
・タグで検索しても表示するものとしないものがあるらしい

その3点でアドバイスするのなら
・検索ワードでヒットする画像を抽出する
・ヒット判定は画像のタグプロパティで判定
・判定でヒットした画像を1枚もしくは複数枚表示する

とした場合で、初心者初学者向けにアドバイスするのなら
上記の感じのアドバイス以外に何かできるアドバイスあるん?
質問の質以上のアドバイスなんてできない
まずはオブジェクトとプロパティあたりから始めるしかないっしょ
って思ってのアドバイスなのねん
0734デフォルトの名無しさん (スップ Sd7f-ysRc [1.72.6.83])垢版2023/03/16(木) 21:38:40.67ID:Olf8APhOd
質問者がわからないと言ってるものには具体的な対象があるわけよ
それを無視して一般的な考え方のアドバイスをするなら抽象的な話にとどめればよくて
わざわざデタラメコードを生成することはなかろ
0738デフォルトの名無しさん (ワッチョイ bf01-QD5u [126.34.214.202])垢版2023/03/18(土) 02:26:56.50ID:dC3/JFCa0
すみません、私の知識不足というか理解不足も大きそうですので、手が出るところからさせて頂こうと思います。

javascriptの「fetch」メソッドなのですが、これはjsonファイルを読み込む事はできないのでしょうか?ローカルで試しましたが、エラーになってしまうようです
0740デフォルトの名無しさん (ワッチョイ bf01-QD5u [126.34.214.202])垢版2023/03/18(土) 15:36:03.94ID:dC3/JFCa0
ありがとうございます。「ローカルのサーバーを立てる」と良いらしいのですサーバーは専用のパソコンでないと、セキュリティ的にも危険と聞いた事もありますが、大丈夫なのでしょうか。また、実際やるとしたら、どのような方法があるでしょうか。
0743デフォルトの名無しさん (スップ Sd42-bksZ [49.97.103.47])垢版2023/03/18(土) 21:30:20.18ID:HGxbjpaKd
Promise.race()で複数のPromiseを渡して、最初に終了したタスクのPromiseを受け取ったあと、同様に順次残りのタスクを完了したものから受け取るような書き方はできますか?
(最終的にすべての非同期タスクの終了まで繰り返す)

Pythonでいう、as_completedのように複数非同期タスクを、終了次第順次ループで受け取るような形です。
0744デフォルトの名無しさん (ワッチョイ e295-QD5u [221.133.86.105])垢版2023/03/19(日) 12:35:04.92ID:DxTl2kdL0
>>741 >>742
vscodeの方を使わせて頂きました。お二方ともアドバイス、ありがとうございました。

余談ですが、jsonファイルに単なる文字列(あああ、abc、123)などを単発で格納するとしても、「名前:値」のフォーマットは守らないといけないんでしょうか(名前をいちいち宣言しないとダメなのか)。
0751デフォルトの名無しさん (ワッチョイ d755-a1qf [220.97.196.212])垢版2023/03/19(日) 16:15:48.14ID:/GeuLHtL0
趣味でWebサイトを使うのにJSを勉強しだしてまだ3年目なのですが、
なぜか年明けから会社のDX担当にされました。
今社内システムがIE9向けにActiveXが使われているのですが、Edgeに移行するので動くように直してと言われています。
これまで自分なりにいろいろ調べてきて、とりあえずHTML/CSSなどの見た目の部分と、大したことをしていないJSの部分は移行できたのですが、
肝心のActiveXであれこれやっているところを直すことができません。
期限は3月末までで苦しんでいます。

例えばこのような箇所があります。
var connection = new ActiveXObject("ADODB.Connection")
var recordset = new ActiveXObject("ADODB.Recordset")
var connectionString = "Provider=sqloledb;Data Source=〜〜〜
var query = "〜〜〜
connection.Open(connectionString)
recordset.Open(query, connection)
while (!recordset.EOF) {
var encryptedData = recordset.Fields("data").value
var decryptedData = decryptData(encryptedData, decryptionKey)
〜〜〜
recordset.MoveNext()
}
これをEdgeで代替手段で実装しようと思ったら、どのようなコードになりますか?
ライブラリやフレームワークは使ってはいけないことになっていますが、バレなさそうなものなら中に組み込むつもりです。
どうかよろしくお願いします。
0753デフォルトの名無しさん (ブーイモ MM42-VSrg [49.239.65.72])垢版2023/03/19(日) 17:21:20.47ID:HTlOdPesM
今から実装してテストしてリリースしてその後の問い合わせ対応や運用に備えるのはスケジュール的に無理でしょ

3月末を死守する必要があるならIEモード1択
IEモードで時間稼ぎしてその間にサーバーサイドからDBアクセスする仕組みを作る

IEモードにするにしてもグループポリシーの変更・適用のテストや問い合わせ対応の準備を考えればそれでも時間が足りないくらい
0755デフォルトの名無しさん (ワッチョイ 2279-1FFK [27.132.129.202])垢版2023/03/19(日) 18:51:42.92ID:M92RK9ru0
JSONでダミー値をコメントのつもりで使ってたらエスケープできてない\でパースエラーになるデータができたりして使うのが怖くなった
やっぱコメントぐらいは定義必要だったなこれ
人間が手書きするものじゃないとしてもよく普及したもんだ
0757デフォルトの名無しさん (ワッチョイ 2279-1FFK [27.132.129.202])垢版2023/03/19(日) 19:09:54.29ID:M92RK9ru0
ど素人だとIEモードが何なのかで3月は潰れるかもしれんけど一応
基本的には社内のADサーバでGPO管理してる奴にEdgeのIEモードのサイトリストに追加してもらう
これは君の担当以外にもIEモードのサイトは糞の山程あって既知の対応だからおそらく追加を依頼するだけでいいはず
うまくすればそれだけで作業が終わる可能性もある
0760751 (ワッチョイ d755-a1qf [220.97.196.212])垢版2023/03/19(日) 19:54:47.83ID:/GeuLHtL0
みなさまありがとうございます
IEモードは1,2度調べて、いつまでこのモードがあるか分からないからと止めたのですが、
やはり時間稼ぎも考えるとこれしかなさそうです。
その間に根本的な解決策を探したいと思います。

なぜか年明けから会社のDX担当にされました。
と言いましたが、実はそれは嘘です。
年末にかけて社員が半分以上辞めて、残った人の中で一番詳しそうだったのが僕だったのです。
実は、サーバーサイドをいじらないといけないのだということは、薄々気づいていました。
でも、今動き続けているサーバーを触れる人が誰もいないのです。
僕も、SQLというものがある、という程度の知識しかないので、触る気にもなりません。

とりあえず夏のボーナスまで引っ張って、無理そうだったら自分も転職します。
今動いているものをうっかり壊したら、止められなくなりそうなので慎重にがんばります。
ありがとうございました。
0765デフォルトの名無しさん (アウアウウー Sa9b-jnF6 [106.133.163.48])垢版2023/03/20(月) 03:23:46.29ID:iV2jn8x9a
>>738
VSCode の拡張機能では、

open in browser では、ローカルファイルアクセスになる。
この場合、CORS など、ブラウザの色々な制限がある

file:///C:/Users/Owner/Documents/test/index.html

一方、Live Server では、
自分のPC 内にサーバーを立ててから、そこから配信されるので、テストしやすい

http://127.0.0.1:5500/test/index.html

>>751
そういうのは、Excel, VBA, Access とかじゃないの?
ベンチャー企業やプロのバックエンドは、Ruby on Rails だけど
0767デフォルトの名無しさん (ワッチョイ a3ad-a1qf [210.250.191.46])垢版2023/03/20(月) 19:47:12.99ID:PTBUy+ct0
chromeの拡張機能で、「ngWord.json」内のデータを「background.js」経由で「content_script.js」に格納しようとしていたのですが、上手くいきません。コードでおかしな点等あれば、ご教授頂けないでしょうか。

【background.js】
fetch('ngWord.json')
.then(response => response.json())
.then(data => {
// content_script.jsにデータを送信
chrome.runtime.sendMessage({ngWords: data});
});

【content_script.js】
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.ngWords) {
const ngWords = message.ngWords;
console.log(ngWords); // 受信したデータを表示
}
});
0774デフォルトの名無しさん (ワッチョイ a3ad-a1qf [210.250.191.46])垢版2023/03/20(月) 21:53:15.40ID:PTBUy+ct0
【background.js】
fetch('ngWord.json')
.then(response => response.json())
.then(data => {
chrome.tabs.query({active:true,(tabs)=>{
chrome.tabs.sendMessage(tabs[0].id,{ngWords:data})
});
};

【content_script.js】
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.ngWords) {
const ngWords = message.ngWords;
console.log(ngWords);
}
});

このように修正しましたが、上手く取得できないようです。
0778デフォルトの名無しさん (ワッチョイ c603-MaqH [153.222.136.198])垢版2023/03/20(月) 23:58:23.18ID:hUotJVz90
>>777
めっちゃ適当なこと言ってましたわ
web_accessible_resourcesとchrome.extention.getURLは関係ないっぽいです

まずcontent_scriptが実行されるタイミングでbackgroundからタブにデータを送れるはずなくて
かといってcontent _scriptからメッセージ送ってbackgroundでfetchしたデータを送ろうとしてもセキュリティー的になのか送れない

なのでbackgroundでfetchしたjsonをchrome.storage.local.setで保存してcontent _scriptからchrome.storage.local.getで読み込むが正解っぽいです

暇だったんで...
0779デフォルトの名無しさん (アウアウウー Sa9b-jnF6 [106.146.108.71])垢版2023/03/21(火) 04:01:46.37ID:rEPYZ+tza
漏れはプロジェクトを作って、index.ts に、TypeScript で以下を書いて、
npm/yarn, webpack, babel でビルドすれば、
import で、JSON ファイルやLodash も読み込めるけど

import WordData from "./word_data_tmp.json";
console.log( WordData.length )

const ary = [ ...Array( 5 ).keys( ) ]
// => [0, 1, ....,4]

import shuffle from 'lodash.shuffle';

console.log( shuffle( ary ) );
// => シャッフルされる
0786デフォルトの名無しさん (ワッチョイ 1f8b-3uzD [211.5.157.105])垢版2023/03/31(金) 02:32:51.01ID:VdncSfH00
メイン画面でボタンをクリックすると
別ウィンドウが起動し、ニュースサイトを表示するプログラムを組んでいます。

別ウィンドウが起動した時に
そのウィンドウが閉じられたのか、開かれたままであるのかを
メイン画面で判定するにはどういうコードを書けばよいでしょうか?

別ウィンドウでサイトが開かれている間は
1、2、3・・・とカウントし、閉じられると0を
メイン画面にjQueryでレンダリングしようとしています。
0789デフォルトの名無しさん (ワッチョイ 6910-bhMa [180.59.92.6])垢版2023/04/23(日) 22:40:30.72ID:k6QZkjYI0
先日(1週間くらい前)まで動いていたジャバスクリプトが動かなくなった。
ブラウザの不具合を疑って firefox、edge、さらに ie11 まで持ち出したらどれも動かない。
ウインドウズのセキュリティの締め上げかなと思って
スマホ(アンドロイド)で確認したがこっちも動いていない。
押し入れから昔のアイポッドタッチ(iOS9)を持ち出したが、やっぱ動かない。

こんなことってある?
アイポッドタッチなんてスクリプトが動いていたころとなに一つ変わっていないのに
なんでこの前は動いたのに今日は動かないんだ?
1年前のバックアップと差分比較してファイルが壊れていないことは確認した。
ちなみに自分がジャバスクリプトを作成するにあたって参考にしたスクリプトは
いまも普通に動いている。
0794デフォルトの名無しさん (ワッチョイ 6910-bhMa [180.59.92.6])垢版2023/04/24(月) 13:08:00.47ID:MpRTlb310
>>792
エラーログを見たらあっさり解決しました。
夜更けに一人で大騒ぎしてごめんなさい orz

いまブラウザの開発者ツールでジャバスクリプトのエラーが見られるんだね。
びっくりした。

原因はHTMLの削除した部分にスクリプトで動かす部分があって
動かすべきものがないから次の処理に行けずエラーになっていました。
スクリプトばかり見ていてHTMLは盲点でした・・・。
0798デフォルトの名無しさん (ワッチョイ eb7d-RykB [1.33.235.4])垢版2023/04/26(水) 19:26:29.99ID:lfd6T/fN0
http://abehiroshi.la.coocan.jp/

この阿部さんのHPの左のフレームから「舞台出演」を取得したいんだけど、

const frame = await page.$('frame[name="left"]');
 const contentFrame = await frame.contentFrame();

こんな感じでcontentFrameを取得するところまでは上手く行くんだけど、

 const aElement = await contentFrame.$('body table.today tr:nth-child(8) td:nth-child(3) p a');

次の要素を取得する段階になるとnullになってしいます
どうすれば阿部さんの舞台出演を取得できますか?
0808デフォルトの名無しさん (ワッチョイ 03bd-MgCS [133.209.119.164])垢版2023/04/29(土) 05:52:34.96ID:q0/EY4lO0
>>807
ちょっと面白そうだったので作ってみたけど、あんまりいい出来にはならなかった。
わざわざ見せるようなものじゃないんだけど、一応貼っとく。
アプローチとしては、単品アイテムまたは別名で括られた同一アイテム毎に配列実体を持たせて、重複排除しながらその実体に放り込んで最後に文字列化する。
複数の別名定義で 2つ以上の名前を括ったり、名前の登場順で連結するようにした。


https://i.imgur.com/tY8Yg78.gif
0810デフォルトの名無しさん (ワッチョイ e38b-fitb [211.5.157.105])垢版2023/04/29(土) 20:12:37.30ID:wJzxOo1h0
JavaScriptでタイマー処理をしています。
指定した秒数(ここでは10秒)経過したらタイマーを停止する様にしていますが
タイマーが止まりません。助けてください、、、

$(document).ready(function(){
$("#id_div_test").click(function () {
setInterval(TestFunction , 1000);
});
});

var i_current_second = -1;
function TestFunction()
{
i_current_second++;
if( i_current_second == 10)
{
clearInterval(TestFunction);
}
}
0815デフォルトの名無しさん (ワッチョイ 5b7c-01SL [122.212.18.110])垢版2023/05/07(日) 14:48:48.64ID:NS1NVPz40
>>810
こういうのはそのまんまChatGPTに聞けばヒントなり、回答、修正案なんかも返してくれ
る。
----
この問題は、`clearInterval`に渡す引数が誤っているために発生しています。`setInterval`に渡したのは `TestFunction`関数ですが、`clearInterval`に渡すのは `setInterval`が返すタイマーIDです。このタイマーIDは `setInterval`を呼び出すと返されます。

以下は修正されたコード例です。

$(document).ready(function(){
$("#id_div_test").click(function () {
var timerId = setInterval(TestFunction , 1000);
// タイマーIDを保持するために変数に代入する
});
});

var i_current_second = -1;
function TestFunction()
{
i_current_second++;
if( i_current_second == 10)
{
clearInterval(timerId); // 正しいタイマーIDを渡す
}
}

ここでは、`timerId`変数を`setInterval`の戻り値として宣言し、`clearInterval`に渡すようにしました。これにより、タイマーが正常に停止するはずです。
0824デフォルトの名無しさん (スッップ Sd42-01SL [49.98.137.246])垢版2023/05/09(火) 00:52:45.73ID:RQydgiqHd
>>819
ChatGPTをプログラム用途で使ったこと無いなら一度つかってみると良いよ。
ググる手間がかなり少なくなる
もちろん、間違い返答の可能性もあるからそこら辺はうまく扱う必要があるけどね。
あとGitHub Copilotはもっとヤバいよ。プログラマーなら一度は使うべき
0831デフォルトの名無しさん (アウアウウー Sab7-tdi0 [106.130.126.201])垢版2023/05/23(火) 20:39:57.19ID:85f2/18wa
最近勉強してvarの何でもありな傍若無人さに気が付いた
例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入されるからエラーにならず混乱の素、
ブロックスコープ内で使うとその生成を無視するから混乱の素
なのでプロなのにES6以降の環境で未だにvar使ってる人って新人にも劣ると思った
ES6以降でEcmaから非推奨と言われてるのに未だにvar使わなければいけない理由ってある?
今後var使ってる人見たら問答無用で勉強しない人と判断しても良い?
0833デフォルトの名無しさん (ブーイモ MM16-F7IQ [133.159.150.75])垢版2023/05/23(火) 22:34:28.22ID:y7+F4Fx6M
>>831
>例えば関数実行後に初期化してもホイスティングで勝手にundefiedが代入される
これいろいろ間違ってる

>未だにvar使わなければいけない理由ってある?
REPLで繰り返しコードブロックを実行したい場合なんかにvar使う
あとはブラウザ以外の環境でES3しか動かない環境とかね

>今後var使ってる人見たら問答無用で勉強しない人と判断しても良い?
良いと思うけど君もそっち側に片足突っ込んでるから気をつけて
0836デフォルトの名無しさん (ブーイモ MM86-F7IQ [163.49.208.121])垢版2023/05/24(水) 11:04:01.62ID:CrZEaXEyM
>>835
イベントリスナーへの参照を保持してないと
removeEventListenerは使えない
あとはAbortSignalを使う方法がある
MDNのaddEventListener辺りに全部書いてる
0837デフォルトの名無しさん (ワッチョイ 2b5f-i/qU [14.12.8.65])垢版2023/05/25(木) 06:53:07.70ID:djzVD0JU0
くそ素人で申し訳ない
ブックマークレットでCookieを編集する時に有効期限も同時に編集したいのだけれど
どうしたらいいのだろうか

元々は
javascript:document.cookie=%22ipb_member_id=〇〇%22;document.cookie=%22ipb_pass_hash=〇〇%22;

って感じなのだけれど1日くらいしたらすぐ消えてしまう
0839デフォルトの名無しさん (ササクッテロラ Sp8b-tLvz [126.182.17.102])垢版2023/05/27(土) 14:04:26.57ID:MkhutBump
>>837

そいつは有効期限も一緒に設定しなきゃならんな。

javascript:(function(){
var date = new Date();
date.setDate(date.getDate() + 30); // 30日後に設定
document.cookie = "ipb_member_id=〇〇; expires=" + date.toUTCString() + "; path=/";
document.cookie = "ipb_pass_hash=〇〇; expires=" + date.toUTCString() + "; path=/";
})();

こんな感じでやってみ。
これでipb_member_idとipb_pass_hashが
30日間有効になるぜ。
ただし、ブラウザの設定やCookieの設定によってはJavaScriptから触れないこともあるから、
その辺は自己責任でな。
0840デフォルトの名無しさん (ワッチョイ 375f-mp2X [106.72.33.97])垢版2023/05/28(日) 15:24:03.43ID:n14WZ+eY0
documentのinnerHTMLやtextContentの書き換えをしたとき、ブラウザのDOMの計算(?)や再描画(?)は変更があった部分のみか、ページ全体で行われるののどちらでしょうか?
0849デフォルトの名無しさん (オッペケ Sr33-vDmN [126.157.241.160])垢版2023/06/19(月) 14:58:41.52ID:3rS08iXar
何重カッコでもいけるけど演算子やカッコが増えると可読性が落ちて条件式を読み解くのが辛くなる
コードは長くなっても条件式をいくつかに分割して変数に入れた方が読みやすくなるよ

const x = (a == b) && (c != d)
const y = (e == f) && (g != h)
if(x || y){
alert ("正解");
}
とか
0851デフォルトの名無しさん (アウアウウー Sa23-QBJ2 [106.130.41.210])垢版2023/06/19(月) 23:22:27.82ID:xNSaH23va
イテレータ、Map、Setがややこしくて😩なんだけど実務で使う?
一応理解したけどカスタムイテレータ作ってそれをオブジェクトに追加してfor...ofなんて無理だな
プログラマーならバリバリ使うのかな?それとも知識として仕組み知っとくだけ?
0852デフォルトの名無しさん (オッペケ Sr33-vDmN [126.205.219.139])垢版2023/06/20(火) 13:18:59.52ID:es0ShzRur
Mapはキーと値の組み合わせのコレクション
Setは重複のない値のコレクション
どちらも実務で出番はある
イテレータは中身を1個ずつ取り出せるものの総称

カスタムイテレータに関してはmdnもおすすめのジェネレータ関数を覚えておけばいいかと
バリバリではないにしてもここぞというときに役に立つ
0853デフォルトの名無しさん (ワッチョイ ffda-ZcId [223.216.178.53])垢版2023/06/21(水) 18:20:14.61ID:He5qrAkL0
tableタグのtrをjqueryかjavascriptでアニメーションアコーディオンがうまくアニメーションしないんだけど
slideToggleで開発ツールではheightの数字は変化しているんだけど・・
もしかしてtrにheightという概念が無いから?

<tr class=name><td>名前1</td></tr>
<tr class=detail><td>中身1</td></tr>
<tr class=name><td>名前2</td></tr>
<tr class=detail><td>中身2</td></tr>
・・・
0860デフォルトの名無しさん (アウアウウー Sab9-Br7/ [106.128.36.203])垢版2023/06/30(金) 10:14:20.96ID:Lj29KtNna
的外れな質問だったら申し訳ありません…
クラスAが長くなってしまったこと(1500行くらい)、類似クラスBとある程度共通化できそうな部分があったので関数Cとして
別ファイルに切りだそうと思いました。
その際、関数CからAの複数のメンバ変数/メソッド(Bも同じ名前の変数/メソッドを持っている)を利用したいのですが、
一つ一つ引数で渡していくと記述が煩雑だし、仕様も変わる可能性があります。
そこで、Aのインスタンスから関数Cにthisを引数として渡すようにして、関数Cからは仮引数this.メンバ変数 などのようにして自由にAのメンバにアクセスできるようにしました。

以上のやり方で、動作はしているようですが、なんか良くないやり方の様な気もしています。
上記のやり方は一般的な方法でしょうか。何かデメリットはありますでしょうか。
0861デフォルトの名無しさん (ワッチョイ 7691-pVx5 [153.223.3.108])垢版2023/06/30(金) 10:55:58.80ID:qu6f9mWQ0
クラスAたBの同名の変数と関数をBaseクラスにしてAとBに継承すれば同名の変数関数を持ってることが保証できてうっかり名前変えてしまったとかのバグ防げるんじゃない?インターフェースみたいに
それから引数じゃなくてbind使えば関数C内でthisを自然な感じで使えるとか
0862デフォルトの名無しさん (アウアウウー Sab9-Br7/ [106.128.39.112])垢版2023/06/30(金) 13:05:23.88ID:2BLecjKja
有り難うございます。
デメリットとしては後でA~Cをいじった時にバグの温床になりやすいこと、くらいの認識で良いんですかね。
基底クラスを継承するかたちにすることも考えたいと思います。
確かにbind/callを使った方が、動作は同じでよりシンプルな気がしてきました。
0870デフォルトの名無しさん (ワッチョイ a15f-eaRz [14.13.136.34])垢版2023/07/08(土) 18:01:12.76ID:0tWDp4eO0
今ホームページを制作しているのですが教えて頂きたいです。
下記内容のコードの書き方がわかりません。

5枚の画像があるのですが、全部では無く一旦一枚目のみ表示させたいです。
次に各画像を説明する文字があります。その文字にマウスカーソルを合わせると、その文字にあった画像に2枚目3枚目と切り替わるようにしたいと思っています。

初心者すぎるので例としてコードを作って頂ければ見ながら調整したく思っています。
どなたかお教え頂けませんでしょうか。
0875デフォルトの名無しさん (ワッチョイ a15f-eaRz [14.13.136.34])垢版2023/07/09(日) 01:44:11.98ID://wYUerL0
なんか色々ルールがあるんですね
諦めて勉強します
ありがとうございます
0876874 (アウアウウー Sa55-knyK [106.146.114.68])垢版2023/07/09(日) 19:52:50.68ID:gl6FDMI+a
jQuery slider
Bootstrap Carousel などで検索すれば、一杯ある

一杯あるけど、難しいから自作する人はいない。
皆、jQueryUI やBootstrap のCarousel などの既製品を使う
0878デフォルトの名無しさん (スップ Sd9f-asTj [49.97.111.88])垢版2023/07/17(月) 23:23:58.12ID:XzfBWjood
フォームフィールドが定義されたPDFファイルがすでにあって、ブラウザ上のJavascriptでWebフォームに入力されたテキストをPDF側のフィールドに反映させてダウンロードすることができるpdfライブラリってあまりすか?

使い方のイメージとしては、たとえばPDF上に名前を入力する箇所がいくつかあるけど、ユーザーは単にweb上で普通のinputフォームを入力してsubmitすると名前が入力済みのPDFファイルをダウンロードできる、という感じです。

pdfmake等いくつかライブラリは見たのですが、白紙ベースでPDF作る例しか見あたらなくて(テンプレートは画像背景で切り替え等)、直接PDFフォームを扱えるものは無いかなと。
0879デフォルトの名無しさん (アウアウウー Sac5-HZc/ [106.130.137.152])垢版2023/07/29(土) 00:54:23.66ID:s0ko+FdFa
プログラミング全く知らない状態からやっとJavaScript一通り学びました
かなり難しかったです。でもJavaScriptは比較的簡単な言語なんですよね?
ES6以降のJavaScriptでもやっぱり簡単なんですか?
それとES6で大規模アップデート合った時は絶望しましたか?
勉強していて苦しんだのがスコープ、this、反復処理の背景(iteratorの動き、yieldは何をしてるか)、非同期処理(Promise、then、async)、その他様々なメソッド、静的メソッド、、、
これら全てES6から導入されましたよね?絶望しませんでしたか?
例えば私がもしES5までのJavaScriptに慣れ親しんでいてES6のアップデートに触れたら絶対絶望してました。概要見ても「?????」となってたはずです
プログラミングに向いてる人はこんな大規模アップデートがあるとワクワクする人なのでしょうか?
絶望せず、「何ができるようになったんだろう!凄い!こんな事やあんな事が出来る!」みたいな人も居ましたか?
0881デフォルトの名無しさん (オッペケ Sr91-xmUq [126.254.133.95])垢版2023/07/29(土) 09:45:27.72ID:ZQ+RMRi1r
苦しみとか絶望とか>>879は言語の習得を学校の勉強と同じようなものとしか捉えてないフシがある
日本史の勉強範囲が大政奉還までだと思ったら第二次大戦までだった!みたいな感覚

新しく覚えたことは実際のプログラミングで活かせるんだという意識が全く感じられない
0883デフォルトの名無しさん (アウアウウー Sac5-HZc/ [106.130.201.25])垢版2023/07/29(土) 14:27:58.50ID:LQ1ElLyya
try,catch,finally文の存在異議が分からなかったけど、今さっき急にasync/awaitのエラーハンドリングに向いてるのに気が付きました
つまりthen,catchのPromiseチェーンをより楽に書けるのに今さっき気が付きました。こんな感じで上手くいかないですね
0886デフォルトの名無しさん (ワッチョイ 095f-kJnY [14.8.104.32])垢版2023/07/30(日) 14:24:24.68ID:av5XIWe10
自分はプロトタイプ型オブジェクト指向から入ったから気にならないけどクラス型でプログラム書いてた人は違和感凄いんだろうな

あとクロスブラウザ対応しなきゃいけなかった人達もJSはしんどかったんだろうなと想像
0887デフォルトの名無しさん (ワッチョイ e94b-C8We [110.2.215.28 [上級国民]])垢版2023/08/04(金) 01:16:43.56ID:LzfYm8xL0
rd41 = "";
alert (rd41);
これで「rd41は未定義です」ってエラーは出ますか?

alert(rd41);
これだけだと「rd41は未定義です」ってエラーが出ますよね

実際のコードはalertでは無いのですが、rd41に無を代入して何も表示させたくないのです
rd41 = null;
だと、nullと表示されてしまいます
0892デフォルトの名無しさん (ワッチョイ f233-yhDR [101.141.60.18])垢版2023/08/14(月) 23:07:53.97ID:QNJSoVjn0
時報みたいなのを作成中でそのhtmlのページさえ開いておけば
9時、12時、18時(プリセットとかは無く固定)に特定のwavサウンドファイルがaudioElement.play() で再生される用にしています
(タブが非アクティブだとなんか動かない時があったのでwindow.openで表示させてます)
chromeのポリシーみたいなのでユーザーが明示的なアクションをしないと音声の自動再生はされないみたいで
それの良い回避策ってありますか?
実用性考えると携帯のアラームが百倍使いやすいけど
自分用にチープなのを作って遊んでるんだけど解決策が思いつかなくて・・・
0894デフォルトの名無しさん (ワッチョイ 7e63-SF+K [153.218.139.115])垢版2023/08/21(月) 00:13:21.70ID:v7lFaH3H0
【環境】Windows 11, Chrome最新版
【何をしたのか】PHPで動的に出力されたテキストに replace (new RegExp)
【エラーメッセージ】コンソールには何も出ません
【期待する結果】ページ内に複数生成される動的クラス内テキストを置換したい
【サンプルコード】
<p class="tx-body">おはようございます*2023.08.15</p><span clas="tx-date">0000</span>
<p class="tx-body">ごきげんよう*2023.08.20</p><span clas="tx-date">0000</span>



tx-dateクラスの中身をtx-bodyの*以降の文字列に置き換えたく、以下を<body>の後半に書きましたが期待する置換変化が起きません、エラーも出ません、
根本的なところわかっていないのだと思うので恐縮ですがお手上げ状態です

window.addEventListener('load', function() {
const ItemList = document.getElementsByClassName("tx-body");
const ItemDate = document.getElementsByClassName("x-date");

for(i=0; i<ItemList.length; i++) {

var tBody = ItemList.item(i).textContent;
var tDate = ItemDate.item(i).textContent;
var replaceDate = tBody .split("*")[1];

tDate = tDate.replace(new RegExp(replaceDate,'g'),'');
}
})


以上ご指導よろしくおねがします
0896デフォルトの名無しさん (ワッチョイ 534b-ubuk [110.2.215.28 [上級国民]])垢版2023/08/21(月) 11:51:22.81ID:7Ts4WfMN0
>>894
コードを見る限り、置換を行うためのコードは一見正しく見えますが、複数の潜在的な問題が考えられます。まず、コード内のいくつかのポイントをチェックしてみましょう。

1. **クラス名のスペル**: `tx-date` クラスが正しく `x-date` クラスになっているか確認してください。

2. **期待する置換変化の確認**: 期待する置換変化がどのようなものか確認してみてください。コード内で `tDate` の内容を `console.log()` を使って出力し、実際の値が正しいか確認できます。

3. **変数 `replaceDate` の設定**: `tBody.split("*")[1]` の部分で、正しい位置に `*` が存在しているか確認してください。`split()` メソッドは対象の文字列を指定の文字で区切って配列にしますが、もし `*` が存在しない場合、期待通りの結果が得られない可能性があります。

4. **置換操作の適用**: `tDate` に対して行った置換操作が、実際のDOM要素に反映されていない可能性があります。`tDate` の内容を変更した後、対応するDOM要素の内容を更新するコードが不足しているようです。

これらのチェックポイントを確認した上で、コードを修正するか、デバッグすることをお勧めします。また、具体的なサンプルHTMLコードや置換の例を提供していただければ、より具体的なアドバイスを提供できるかもしれません。
0900898 (アウアウウー Sa7f-7wIC [106.133.165.90])垢版2023/08/23(水) 00:10:28.94ID:B78POXf5a
一旦、要素 tDate_elem を取得しておいてから、
その textContent に値を設定する。
つまり更新

const tBody = ItemList.item(i).textContent;

const tDate_elem = ItemDate.item(i) // 要素
const tDate = tDate_elem.textContent;
console.log( tDate ); //=> 0000

const replaceDate = tBody.split("*")[1];
console.log( replaceDate ); //=> 2023.08.15

tDate_elem.textContent = replaceDate; // 設定

表示
おはようございます*2023.08.15
2023.08.15

ごきげんよう*2023.08.20
2023.08.20
0902898 (アウアウウー Sa7f-7wIC [106.146.101.215])垢版2023/08/23(水) 19:53:27.23ID:ktllvUDta
jQuery なら、もっと簡単

$( function ( ) {

$('.tx-body').each(function (index, elem) {
const tx_body = $(elem);
console.log(index + ': ' + tx_body.text());
const replaceDate = tx_body.text().split("*")[1];
console.log(replaceDate);

// tx_body 要素の次の兄弟で、tx-date クラスがある要素。絞り込み
const tx_date = tx_body.next('.tx-date');
console.log(index + ': ' + tx_date.text());
console.log('tx_date.length: ' + tx_date.length); // 0 or 1

// 該当する要素があれば設定する。つまり更新
if (tx_date.length === 1) {
tx_date.text(replaceDate);
}
});

} );
0903デフォルトの名無しさん (アウアウエー Sa22-NwC7 [111.239.174.98])垢版2023/08/25(金) 21:08:52.47ID:+90wXQAMa
chrome拡張どう作ったらいいのでしょう?
こんな感じではリダイレクトが連続してしまってだめでした
urlsのフィルターの仕方、もしくはリダイレクトをせずにそのURLにアクセスする方法が分かれば解決できるとは思うのですが・・・

//aaa.com/xxxx/ へのアクセスを aaa.com/abc/xxx/ へ変換したい (以下は動作しない)
chrome.webRequest.onBeforeRequest.addListener(
function(details)
{
if (details.url.match(/abc/))
{
return {}; //←ここを書き換える方法が分かればいける
}
else
{
details.url = details.url.replace(/aaa.com/g,"aaa.com/abc");
return {redirectUrl: details.url };
}
},
{
urls: [ "*://aaa.com/*/" ], //←ここを書き換える方法が分かればいける
},
["blocking"]
);
0907デフォルトの名無しさん (アウアウエー Sa5f-/No0 [111.239.174.98])垢版2023/08/26(土) 18:56:03.08ID:mvAl1l0Ba
return detail.documentUrl;
return {redirectUrl: detail.documentUrl};
どちらもダメ。リダイレクトのURLを返すことになるから、リダイレクトの無限ループに入っちゃう

それなら、リダイレクト止めればいいじゃんって思うんだけど
return {cancel: true};
のようにするとナビゲーション自体が止まってアクセスできなくなっちゃう
0911デフォルトの名無しさん (ワッチョイ cf63-n242 [153.218.137.10])垢版2023/09/03(日) 21:37:03.60ID:0BSqvC2P0
サイト内にフォームが設置してあるページが複数あります
お問い合わせ、新規登録、ログイン、パスワードリマインド、などです
一時的に inputタグを入力不可にしたのですが
querySelectorAll("input,button").forEach( e => e.disabled = true );

複数あるページのうちお問合せだけは入力できるように、
現在は下記の効率の悪い記述になっています、、
document.querySelectorAll("#contact input, #contact button").forEach( e => e.disabled = false);

それぞれのページの<body>に idを付与していてそれで判別しているのですが
<body id="contact">
<body id="login">
<body id="remainder">

もっとスマートにお問い合わせページだけ入力できる
ヒントをお願いできませんでしょうか?
0912デフォルトの名無しさん (ワッチョイ 4327-g4sH [164.70.253.210])垢版2023/09/03(日) 21:48:21.38ID:qR1Ry2o90
【環境】windows10 chrome 最新版
【何をしたのか】開発ツールコンソール上でサンプルコードを実行すると
条件文が undefined にもかかわらず if 文内 console.log(1) が実行される
【エラーメッセージ】なし
【期待する結果】 なぜこうなるのか理由が知りたいです
【サンプルコード】
console.log(localStorage && (localStorage.getItem('deck')));
if(localStorage && (localStorage.getItem('deck'))) console.log(1)
if(undefined) console.log(2)
0917デフォルトの名無しさん (ブーイモ MM7f-gLHL [133.159.151.54])垢版2023/09/04(月) 14:44:17.50ID:0gdMzEOZM
getItemは該当キーに対する値がなければundefinedではなくnullを返すのでlocalStorageが存在していれば

console.log(localStorage && (localStorage.getItem('deck')));は
null
undefined
と出力される

undefinedの上が空行になってるならdeckに対する値が入ってる
それが空文字ならfalsyなのでconsole.log(1)は実行されない
truthyな不可視文字(例えば改行コード)が入っていればconsole.log(1)も実行される
inspectやencodeURIで中身に何が入ってるか確かめればはっきりさる
0921デフォルトの名無しさん (オッペケ Sr07-JKlf [126.255.138.111])垢版2023/09/05(火) 12:01:10.43ID:y2XoXHZcr
>【何をしたのか】開発ツールコンソール上でサンプルコードを実行すると
>条件文が undefined にもかかわらず if 文内 console.log(1) が実行される
不可解な挙動に遭遇したとき、自分が何か勘違いしてないかまずそこを疑ってみようという教訓
あとtruthyやfalsyな値の取り扱いは慎重に
0923デフォルトの名無しさん (ワッチョイ 454b-wchx [110.2.215.28])垢版2023/10/04(水) 23:59:59.93ID:77DZdeZo0
if(rd41.value){
dofn()
}

これが正しく実行されないのですが(暴走するというか、意味不明な実行結果が現れます)、if文の中で関数の呼び出しは出来ないのでしょうか?
もしそうなら、このコードを正しく動作するように書き換えることは出来ますか?
0925デフォルトの名無しさん (ワッチョイ 9f05-cJ9m [116.94.11.103])垢版2023/10/16(月) 00:30:39.82ID:tJl0Ngd50
質問です
下記のURLは音楽サイトJangoの再生ページURLです

 https://www.jango.com/stations/400536192/tunein
 https://www.jango.com/stations/397649609/tunein
 https://www.jango.com/stations/272072365/tunein

これらのページをブラウザで開いた時に出てくる水色のメッセージ
パネルをJavaScriptで閉じる方法を教えてください

Jango plays unlimited music for free and with no commercials.

というメッセージの右隣にある[×]マークをクリックしたいのですが

document.getElementsByClassName("MuiAlert-action")[0].click()

では上手くクリックすることができませんでした
0932デフォルトの名無しさん (ワッチョイ 877c-JmE3 [122.212.18.110])垢版2023/10/25(水) 13:36:08.76ID:JRNrMb5/0
名前付き引数としてプロパティをもつオブジェクトを引数にする場合のJSDocの書き方ってどう書くのが正しいのでしょうか?
ネットで調べて以下の画像のように書くと、VSCodeで関数の説明で表示される時にプロパティ側の日本後説明部分が表示されません。
http://imgur.com/xhSQcMc.png

構文のほうには型は反映されてるので読み込めてはいるようなのですが…
0933デフォルトの名無しさん (ワッチョイ 5fc2-vcKV [133.155.195.156])垢版2023/10/26(木) 10:06:04.96ID:QIG+kzYs0
source = ['いぬ=ドッグ', 'ぬこ=猫咪', 'キャット=にゃんこ', 'ねこ=キャット', 'わんこ=小狗', '老鼠=ねずみ', '小狗=ドッグ', 'マウス=ねずみ', '猫咪=キャット']
これを
result = [['いぬ', 'ドッグ', 'わんこ', '小狗'],
['ぬこ', '猫咪', 'キャット', 'にゃんこ', 'ねこ'],
['老鼠', 'ねずみ', 'マウス']]
これに集計するにはどうしたらいいですか
0936デフォルトの名無しさん (ワッチョイ a710-7pXc [180.12.82.129])垢版2023/10/26(木) 13:05:50.11ID:m2KCtDyt0
canvasでarc関数でx:100,y:100の位置に青で塗りつぶした半径3の円を描いたんですが
これと同じ位置に同じ半径で同じ色で塗りつぶした円を描くと四角形ぽくなってちょっと大きくなって表示されます。
背景を塗りつぶして1回目に描いた円を一度消去してから2回目の円を描いても同じでした。
文字の場合でも同じ位置に同じ文字を重ね書きすると太くなっちゃいました。
どうすればちゃんと同じ位置に同じ物を描いても太くならないようにできますか?
0939デフォルトの名無しさん (ワッチョイ 639d-XI6K [109.236.1.125])垢版2023/11/13(月) 18:52:10.34ID:qEXCkkFf0
alertのテキストをコピペする方法とかってご存知ありませんか?

どなたか知恵をお貸しください
0941デフォルトの名無しさん (ワッチョイ 454b-S+Kv [110.2.215.28])垢版2023/11/14(火) 02:43:20.79ID:MYkZh+2q0
>>939
alertのテキストをコピーするには、通常はウェブページ上でalertが表示されている状態で、テキストを選択して右クリックし、"Copy"や"コピー"を選択する方法があります。ただし、ウェブサイトのalertはJavaScriptで生成されるもので、そのテキストを直接コピーする方法は制限されていることがあります。可能であれば、そのテキストを手入力でコピーすることができます。
0944デフォルトの名無しさん (JP 0H89-BcU5 [104.234.140.171])垢版2023/11/15(水) 11:30:55.95ID:FHoogchzH
>>936

亀だけど
fill()が複数回呼ばれると円が太るみたい
ctx.arc(100, 100, 3, 0, Math.PI * 2);
ctx.fill();
ctx.arc(100, 100, 3, 0, Math.PI * 2);
ctx.fill();
でなく、
ctx.arc(100, 100, 3, 0, Math.PI * 2);
ctx.arc(100, 100, 3, 0, Math.PI * 2);
ctx.fill();
でやると円が太らなかったよ
0945デフォルトの名無しさん (ワッチョイ e374-n7Dx [211.124.81.22])垢版2023/11/15(水) 12:39:52.38ID:D0hDoGTF0
亀が2chに書き込みにやってきた
0947デフォルトの名無しさん (ワッチョイ e302-8oJ/ [27.94.242.45])垢版2023/11/18(土) 14:13:31.53ID:mHEv1Kbm0
consoleオブジェクトのログ情報を出力するためのlogメソッド…
0948デフォルトの名無しさん (アウアウウー Saa1-UHOz [106.180.4.201])垢版2023/11/18(土) 16:58:25.29ID:rXJKESWNa
blogのlog
0957デフォルトの名無しさん (ワッチョイ 0d5f-yKFx [14.8.104.32])垢版2023/11/22(水) 00:26:41.03ID:nlRha+4K0
JSにかかわらず変数は使ってる道中に値変換したり変数使いまわしてるとエラーの種になりやすいし、それを防止するのが大きいかな
配列やオブジェクトの値はconstでも変えられるし

昔はそういうごちゃごちゃ動く変数のトレースするのもプログラム組むやつの能力ってされてたなぁ
0959デフォルトの名無しさん (ワッチョイ e302-8oJ/ [27.94.242.45])垢版2023/11/22(水) 10:49:23.49ID:5A+ZhXZi0
可読性の部分が大きいよね
varで変数定義しているクソコードなんかリファクタリングしたくないだろ?
0960デフォルトの名無しさん (ワッチョイ e302-8oJ/ [27.94.242.45])垢版2023/11/22(水) 11:06:59.29ID:5A+ZhXZi0
constで最初から定義した後にそれが動的な値だった場合タイプエラーを起こしてからletに書き換える事はあるけど最初からletで定義しちゃうと後々constに書き換えた場合もしそれが動的な値ならプログラムそのものが動かなくなって新たなるバグを生むでしょう?
最初は縛りを強くしておいて後から緩めるはあるけど逆はないですよ
0962デフォルトの名無しさん (ワッチョイ e302-8oJ/ [27.94.242.45])垢版2023/11/22(水) 20:15:59.75ID:5A+ZhXZi0
>>961
よくわからないけどそれってconst使う意味あるの?
0965デフォルトの名無しさん (ワッチョイ 25ca-SdNv [122.132.80.240])垢版2023/11/22(水) 21:54:03.90ID:7CtxEw9g0
>>962
うまい例になってるかわからないけど、何かのプロパティに値が入ってたらそれ、無ければデフォルト値を const に入れたいとか、この条件がもっと複雑になった感じとか。
あるいは、何かの基準座標を const に入れたいけどその値は一発では求まらないとか。
単にこれだけなら中間的な変数を使って値を求めて、最後に const に代入するって手もあるだろうけど、中間的な変数はスコープから追い出したいのにできないよね。

const x;
{
let a, b, c;
:
x = a + b * c;
}

みたいにできれば a b c はスコープから追い出せるけど、実際は

let a, b, c;
:
const x = a + b * c;

ってやらざるを得なくて、x が存在するスコープから a b c を追い出せない。
この計算を function に切り出せよと言うかもしれないけど、できればそうすりゃいいけどどこにでも適用できるというわけでもない。
0973デフォルトの名無しさん (ワッチョイ 551d-1fOb [180.178.89.53])垢版2023/11/29(水) 23:49:26.08ID:oO9dmq1+0
const num = 1;
とした時、numはCやJavaのint型と違って、1という値のオブジェクトを参照している
という理解でよろしいでしょうか?
(numという名前でラベリングされたメモリ領域には、1そのものではなく
数値オブジェクトへの参照値が入っている?)
0979975 (ワッチョイ 691d-zrcD [180.178.89.53])垢版2023/12/02(土) 04:48:25.07ID:3pMMmiCv0
返信くれた方々、ありがとうございます

>>976
TOEICのスコア400点台だったので厳しいです…

>>977
参照扱いでもプリミティブ型って言うんですか?
Javaではintやdoubleなど参照を用いずにデータを記憶する型をプリミティブ型と
呼んでいたので、少し混乱しています…

>>978
すみません、以後気を付けます
0982979 (ワッチョイ 691d-zrcD [180.178.89.53])垢版2023/12/03(日) 12:45:58.94ID:FUDcVj1n0
>>980
分かりました
ありがとうございます

>>981
レスありがとうございます
うーん、まあこだわりとでも言いましょうか…
個人的にはそこまで知っておくことは無駄ではないと思います
0986982 (ワッチョイ 691d-zrcD [180.178.89.53])垢版2023/12/04(月) 23:09:24.91ID:GWbm6wp00
レスありがとうございます
遅くなってすいません

>>983
そうですよね
まあ単純に、文字列である以上、変数用に確保したメモリ領域内に簡単には収まらない
だろうなと推測したんです
でも不変な値なら参照使わなくても収まるのかな

>>984
微妙です
入門書を読んで間もないレベルです

>>985
分かりました
まあ実装って言い回しが大仰でした
参照を使ってあるかどうかを特に知りたかったんです
0988デフォルトの名無しさん (アウアウウー Sa9d-/D3x [106.146.123.7])垢版2023/12/05(火) 20:06:09.74ID:gtr9NjJza
>>982
あ、ややこしい書き方してすまん
単にuint64_tが値の参照でオブジェクトの場合はポインタが入ってて
整数の場合はそのまま使ってると言うことを言いたかっただけ
typedef uint64_t JsValue;

JsValueが「値」を指す参照

JsValue obj = createObject(); // Object
JsValue smi = createSmi(); // Small Integer

こうすることでオブジェクトも数値も同じように扱える
V8もJSCも全部これ
0991デフォルトの名無しさん (ワッチョイ 4b6e-yLTa [240a:61:11a:237d:*])垢版2023/12/09(土) 10:39:43.45ID:npLWblUF0
素人な質問で申し訳有りません。
下記のスクリプトで何故か関数丸々出力されてしまうのです。
テキストでは改行が多すぎる為、投稿出来ないため画像で申し訳有りません。
下のグレーのフォントが出力結果です。
出力指定していないので、何も出力されないはずなのですが…。

https://i.imgur.com/tJnx1oK.jpg
0993デフォルトの名無しさん (ワッチョイ 2302-tASO [27.94.242.45])垢版2023/12/09(土) 14:27:43.55ID:iYG1bkmj0
>>991
どうでもいいけど関数名の付け方にセンスないな
コメントもつける意味がないゴミ
変換ならconvertとかにすりゃいいのに…
0998デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145])垢版2023/12/10(日) 11:19:27.25ID:ngtmyS7f0
>>992
サイトの使い方がいまいち分からず試してましたが、サイトでは症状が再現できず想定通りの挙動でした。これは作ってるアプリ側に原因があるのでしょうかね。
mementoというdbアプリだったのですが。

>>993
自覚はあります。プログラムに興味を持ち練習はじめなので勘弁してやってください。思いつかないんですorz
1000デフォルトの名無しさん (ワッチョイ 8f18-Xgad [2001:268:98e3:8067:*])垢版2023/12/16(土) 00:37:24.71ID:xiFcB2tC0
テスト
10011001垢版Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 495日 8時間 39分 45秒
10021002垢版Over 1000Thread
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。

▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/

▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況