JavaScript の質問用スレッド vol.126

2023/12/09(土) 17:40:39.92ID:Mnb70srnr
!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.125
https://mevius.5ch.net/test/read.cgi/tech/1659855460/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
2023/12/23(土) 20:16:48.44ID:87/jUj+m0
>>47-48
起源というかね、こういうのは歴史的経緯を辿って理解した方が判りやすいという話よ
君らのつまらんレスを読むよりはずっとね
Javascriptでやってる事は関数のポインタとはわけが違うんだから
2023/12/23(土) 20:22:17.26ID:seU0bwIPM
>>49
それは絶対にない>わかりやすい
2023/12/23(土) 20:30:53.27ID:1KvsNCZl0
歴史を追いかけられるくらい論理的に文章組み立ててくれないか?
2023/12/23(土) 20:34:16.96ID:6J3b/0Sr0
>Javascriptでやってる事は関数のポインタとはわけが違うんだから

LISPが違うのはわかるけどJavaScriptは関数ポインタとそんなに違うんだっけ?
2023/12/23(土) 20:55:11.83ID:RHehsd3K0
>>49
賛同されなかったからつまらんレスとか言い出すのは大人げないよ
2023/12/24(日) 14:20:26.14ID:eKX/4s7na
>>52
だいぶ違うぞ
クロージャって言葉知ってる?
定義された場所のローカル変数を参照できるの
そしてローカル変数がクロージャによってキャプチャされたら
その変数はクロージャが死なない限りずっと保持される
これは関数ポインタとは訳が違う
そしてそれこそがscheme信者のアイクが取り入れたかったもの
クロージャじゃないなら関数ポインタと大して変わらんっちゃ変わらん
2023/12/24(日) 15:20:54.55ID:D70pmwho0
>>54
関数がクロージャを形成するかどうかと
関数を受け渡すときに関数へのポインタを使ってるかどうかは直交した別の問題
実際どのJavaScriptエンジンも関数へのポインタを使って変数への代入や関数の受け渡しを実現している

C言語はクロージャをサポートしないのでC言語の関数ポインタを使ってもクロージャにはならないのは当たり前

もう少し言えば関数を受け渡し可能にするためのスコープ解決の仕組み/ルールと受け渡す際に関数へのポインタを使ってるかどうかは別の問題
2023/12/24(日) 15:53:19.34ID:D70pmwho0
別スレで見かけたトンデモ記事書いてる人だと思うけどレキシカルスコープの話と第一級関数の話とレキシカルスコープを使ったクロージャによって第一級関数を実現する話を混同してるんじゃないか

Schemeはレキシカルスコープを使ったクロージャという考え方を広く普及させた言語ではあるがレキシカルスコープや第一級関数はScheme以前の昔から実現されてたものだし
レキシカルスコープを使ったクロージャもScheme以前の昔からあった考え方

Schemeが初めてレキシカルスコープを定義したかのように書くのはやめよう
2023/12/24(日) 16:19:26.43ID:+dT+Yo8pd
>>56
ちょっと指摘させてもらうと
誰も起源の話なんてしてないよ
2023/12/24(日) 16:48:55.22ID:awd0q31Fa
>>56
いや別に起源とかはどうでも良くて関数ポインタとは違うよって話をしてるだけなんだけど
2023/12/24(日) 18:14:29.42ID:uJ8b4azy0
>>57
>>43がしてるでしょ
この人同じように間違ったことをあちこちで書いてるから指摘しただけ
2023/12/24(日) 19:40:11.40ID:3LVtZ1UM0
彼は命題論理が理解できなくて、120年前の古文書まで読み返して、それでも分からなくて200年前の哲学書まで遡った結果、今でも命題論理が分かってないって人間だから、彼の歴史的経緯を遡れば理解しやすくなるって主張は実は彼自身によって反証されてたりする
2023/12/24(日) 22:35:22.54ID:ietP5AWI0
>>38 が分かりやすかったかどうか答えてくれれば解決だな
6238 (ワッチョイ bf74-uzyf [211.124.81.22])
垢版 |
2023/12/24(日) 23:33:56.01ID:M3Ha8RQ30
さっぱり分からん
2023/12/24(日) 23:38:36.92ID:3LVtZ1UM0
おっIP同じやし38本人やん
まあそうだよな。あの説明でわかりやすく人間なんておらんやろ
2023/12/25(月) 06:04:30.08ID:G5r1XQvR0
クロージャは第一級市民関数。
関数外のローカル変数などの文脈を取り込む。
つまり、スコープがゆるい

一方、Ruby の関数はスコープがきつくて、
関数外のローカル変数を通さないので、第一級関数ではない。
ただし、ブロックはブロック外のローカル変数を通すから、クロージャ

他に、レシーバーとメソッドを持ち運ぶ、メソッドオブジェクトもある
2023/12/25(月) 08:32:20.98ID:xnbzJK+y0
>>38,62
何がどうわからないのか、を詳しく説明してくれ。
具体的なところがさっぱり分からん。
2023/12/25(月) 21:05:49.32ID:HhwD874b0
そりゃそもそもLISPやSchemeを全く知らない人だったんでしょ
分かりやすくなる要素なんて1ミリもないわな
2023/12/25(月) 21:28:48.99ID:XllulW5ca
struct Closure {
struct Env env;
struct Function func;
};

Closureの最もシンプルな実装
Envはキャプチャしたローカル変数を保持する環境
Functionは関数ポインタやらを保持してるオブジェクトだと思ってくれ
たったこれだけのことに過ぎない
関数ポインタにenvが追加されただけのものだ
2023/12/26(火) 01:40:31.83ID:XlP1bh7b0
クロージャやレキシカルスコープがどうやって実現されてるかという質問なら[[Environment]]のことを教えてあげるのはいいと思うけど
そういう話は誰もしてないからねぇ
2023/12/26(火) 12:17:20.00ID:iZHdB3Jl0
結局のところ>>38の問題って関数は変数に代入できないものだっていう固定観念を他の言語に持ち込んでるところだと思う

プログラミング言語なんて所詮ヒトがそれぞれの都合で作ったものであって言語が違えば考え方や常識も違う
そこを理解して他の言語の固定観念を持ち込まないようにしないとこの先もしっくりこないこと、受け入れられないことだらけだろう
2023/12/26(火) 18:41:41.07ID:DtaEhUmP0
関数を変数に直接代入できないCの系譜の言語が最も広く普及してるから
そういう言語をやってきた人が関数を変数に直接代入できる言語に初めて接したら>>38のように驚くのは極々自然のこと

何が固定観念なのかなんてそれが覆るまで分からないんだから固定観念を持ち込むなとか言っても何の役にも立たないよ
2023/12/26(火) 19:02:16.70ID:ar+aUrwZ0
今回のことで固定観念だったと気づければそれでいいと思うよ
そうすれば次からは疑ってかかることができるわけだし
2024/01/05(金) 08:36:00.72ID:kvxPBg+iM
糞長い式が真値のときだけ変数に代入したくて
if (糞長い式) {
X = 糞長い式
}
と書いてるんですが糞長い式を一度で済ますにはどうしたらいいですか
73デフォルトの名無しさん (ワッチョイ 1f74-rafF [211.124.81.22])
垢版 |
2024/01/05(金) 09:10:31.40ID:PLcvVAqJ0
>>72
いますぐ糞をして寝ることだ。
糞!
74デフォルトの名無しさん (ワッチョイ 1f74-rafF [211.124.81.22])
垢版 |
2024/01/05(金) 09:12:10.60ID:PLcvVAqJ0
X = 糞長い式 ? 糞長い式2 : X;
2024/01/05(金) 09:26:22.59ID:B0YNzjLy0
Y = 糞長い式
if (Y) {
X = Y
}
2024/01/05(金) 09:52:24.63ID:UVxCqy8T0
2回評価したくないときもあるし>>75

https://docs.python.org/ja/3/whatsnew/3.8.html#assignment-expressions
そこまで糞長くないならセイウチ演算子
2024/01/05(金) 11:11:29.09ID:j+cl8so10
X = 糞長い式 || X;
わかりやすい>>75でいいと思うわ
2024/01/05(金) 18:15:32.86ID:xFVV62H30
カルノー図やクワイン・マクラスキー法で書けないほど複雑だと
どうにもならない
if else if else にうまく展開するか
switch 文をうまく使うとかかなあ
79デフォルトの名無しさん (ワッチョイ fd9f-stEI [122.133.203.183])
垢版 |
2024/01/08(月) 08:24:08.50ID:HV7sMHf30
質問させていただきます。

タグの属性onclick等で設定したイベント処理では
処理側の関数ではeventオブジェクトを参照出来ないのでしょうか?

色々探してるのですが見つけられなくて・・・よろしくお願い致します。
2024/01/08(月) 10:20:56.34ID:FNFcnj+v0
>>79
onclick属性のイコールの右側にある値は無名関数をそのままラップしたもので、eventオブジェクトはその関数の第一引数に渡される
つまり<タグ onclick="func(arguments[0]);">とすれば取得できる
81デフォルトの名無しさん (ワッチョイ 8d43-iBaE [114.148.50.247])
垢版 |
2024/01/08(月) 10:51:13.68ID:adS5ZNXz0
>>79
引数で渡されてくるけど?
HTMLのタグの中に書く事例では意味も解らずその引数を省略しているのが多い

それより、今どきはHTMLと分離した、こっちの書き方がおすすめ
https://developer.mozilla.org/ja/docs/Web/API/Element/click_event
2024/01/08(月) 13:07:07.19ID:cXOMuDOl0
>>79
onclick属性値の中でもeventは使える。
<p onclick="console.log(event);">

ところで、「処理側の関数」とは?
2024/01/08(月) 13:58:47.00ID:pIW6TUAd0
ブラウザの開発者ツールにあるデバッガをつかえば気づける
止めたところの環境が丸見えになるから
2024/01/08(月) 20:55:54.87ID:gJaMg8aw0
例えば、jQuery なら、これで5つのキーのkeydown をキャッチできる

$( function ( ) {
$( 'body' ).keydown ( function( e ) {
switch( e.key ) {
// 32:空白、37:←、38:↑、39:→、40:↓
case " " :
case "ArrowLeft" :
case "ArrowRight" :
case "ArrowUp" :
case "ArrowDown" : console.log( e.key );
}
} )
} );
2024/01/08(月) 21:08:17.54ID:Jg6SbkUr0
<button onclick="hoge(this)">ってやると意図しない動きすることあるからルールで禁止してるところもあるよね
86デフォルトの名無しさん (ワッチョイ 0510-JApz [180.12.82.129])
垢版 |
2024/01/11(木) 09:49:12.76ID:L0eqWFW50
子要素は含まないようにelementを取得するにはどうすればいいですか?
これだとテーブルの中のフォームをスライドさせてもalertが表示されてしまいます。
子要素は含まないテーブルのみのelementを取得することはできますか?


<table style="width:500px;height:300px;background:#ffff00" id="aaa">
<tr><td><input type="range" style="width:inherit"></td></tr>
</table>

<スクリプト>
const elm = document.getElementById("aaa");

elm.addEventListener(

"mousedown",
function(e){alert("www");}

);
</スクリプト>
87デフォルトの名無しさん (ワッチョイ b536-QPx5 [2400:4052:5062:9ff0:*])
垢版 |
2024/01/11(木) 10:30:37.07ID:8+5yXztZ0
何をやりたいのかがわからない説明
とりあえずプログラムを意識せずに
やりたいことの要件を日本語でよろしく
 
2024/01/11(木) 10:35:49.26ID:oja63d6W0
function(e){
// input要素以外をクリックした場合の処理
if (e.target.tagName !== 'INPUT') {
alert("www");
}
}
89デフォルトの名無しさん (ワッチョイ 0510-zseD [180.12.82.129])
垢版 |
2024/01/11(木) 13:03:40.31ID:L0eqWFW50
>>87
子要素を除外したelementを取得したいってことっす
>>88
ありがとうございます試してみます
90デフォルトの名無しさん (ワッチョイ b536-QPx5 [2400:4052:5062:9ff0:*])
垢版 |
2024/01/11(木) 14:18:15.97ID:8+5yXztZ0
それ、バブリングを意識しないとダメかもよ
91デフォルトの名無しさん (ワッチョイ 231b-JApz [2400:4151:a4a0:6500:*])
垢版 |
2024/01/11(木) 14:44:36.31ID:bfPtSoSL0
先ほどは手元にソースコードがなかったので即席で質問してしまいました。
やりたいことはテーブル部分でタッチムーブしたときブラウザのスクロールを禁止にしたいのですが、
テーブルにあるスライダーまでロックされて動かせないようになってしまうので、
スライダーを除外したテーブル部分のelementだけ取得できれば上手くできるのでは?と思ったから先ほどのような質問をしてしまいました。
ようするにブラウザのスクロール禁止にするけどスライダーは動かせるようにしたいんです。

<table style="width:500px;height:300px;background:#ffff00" id="aaa">
<tr><td><input type="range" step="1" min="0" max="10" value="1"></td></tr>
</table>

<スクリプト>
const elm = document.getElementById("aaa");

elm.addEventListener(
"touchmove",
function(e){

e.preventDefault(); //ブラウザのスクロールを禁止にする
}
);
</スクリプト>
2024/01/11(木) 15:08:55.09ID:k0wEY4GK0
よく分からんが、cssでそんなのがあるな
https://developer.mozilla.org/ja/docs/Web/CSS/overscroll-behavior
2024/01/11(木) 16:34:13.87ID:tWeEPqJO0
>>91
preventDefault()をstopPropagation()に変えるだけでいいかもしれない
この場合は多分preventDefault()はいらない
94デフォルトの名無しさん (ワッチョイ 8d43-n7AJ [114.166.5.254])
垢版 |
2024/01/11(木) 22:20:25.19ID:vnpK4WpS0
clickやmousedownに仕込む話したど思ったのでバブリングを指摘したけれど
スマホの場合にスライダー操作でスクロールしちゃうのを止めたい場合の話なら別問題
スクロールはブラウザ側の仕組みでDOMのイベントバブリングを止めてもダメ
それとターブルじゃなくて、スライダーをtouchmoveしたときにスクロールを止めたいのじゃないですか

要件としては
スライダーのtouchstartでブラウザのスクロール機能を無効にして
スライダーのtouchendでブラウザのスクロール機能を有効に戻す
スクロールの有効・無効は、スクロール要素のcssのスタイルで制御できるので、JavaScriptでstyle要素のoverflowYまたはoverflowXを'hidden'または'auto'と値を切り替える
95デフォルトの名無しさん (ワッチョイ 231d-JApz [2400:4151:a4a0:6500:*])
垢版 |
2024/01/11(木) 22:41:54.15ID:bfPtSoSL0
>>93
ありがとうございます。
スライダーのelementにe.stopPropagation()をしたらスライダーを動かせるようになりました
>>94
ありがとうございます。試してみます。
96デフォルトの名無しさん (ワッチョイ 85e7-UQX2 [2404:7a87:26a0:9e00:*])
垢版 |
2024/01/13(土) 03:22:15.94ID:bBKen2/T0
すいません、vueの質問はここでいいですか?
2024/01/13(土) 11:42:05.46ID:sUiBS1y50
↓あたりにどうぞ
JavaScriptフロントエンド総合 Part.11
https://mevius.5ch.net/test/read.cgi/tech/1660898820/

Vue vs React vs Angular vs Svelte Part.11
https://mevius.5ch.net/test/read.cgi/tech/1660969032/
98デフォルトの名無しさん (ワッチョイ ad01-1c9G [126.168.252.135])
垢版 |
2024/01/14(日) 17:21:53.60ID:vAN1c9wS0
ありがとうございます
2024/01/26(金) 17:25:13.36ID:2+81uqBd0
WebフロントエンドでのJavaScriptを勉強中です
「jQueryでできることは素のJSでもできるのがほとんどになったから、jQuery不要」という話しが出てきますが、
エレメントの操作などで、素のJSだと記述する文字が長く、jQueryだとすごく短く書けるので、それだけでも十分便利と感じています。

document.querySelector('selector')
⇒ $('selector')

jQuery不要の場合、効率良く書くために代わりに何を使っているのか気になります。
大型のフレームワークとかでしょうか?フレームワーク使うと、ここのエレメントの参照・操作などはもはや不要になるのでしょうか?
2024/01/26(金) 19:57:32.14ID:vs+8Yc4d0
jQueryの技術覚えてもjQueryにしか使えない。素のJS技術はどんなフレームワーク使っても役に立つ
2024/01/26(金) 20:11:15.77ID:Uafucq2BM
>>99
コード補完機能(任意のスニペット呼び出しを含む)のある現代のエディタではその全てをキータイプする必要は無いし、どうしても短く書きたいならショートハンドを定義すればいい
たとえば、5ch互換掲示板ビューアであるブラウザ拡張機能「read.crx 2」では、同拡張機能の共同メンテナの方が作成したjQueryライク(互換ではない)なショートハンドライブラリ「shortQuery.js」が使われてる(だいぶ前にいわゆる「脱jQuery」のお供として導入されたハズ)

なんにせよ、初心者が今からjQueryを学ぶのは悪手
2024/01/26(金) 20:12:23.71ID:Z5KyuX5d0
素のjs分からずにjquery使えるわけないだろ
2024/01/26(金) 21:41:55.02ID:bxMKu9aD0
>>99
その通り
ReactやVueに代表されるような昨今のフレームワークは開発者がDOMを直接操作しない
2024/01/26(金) 21:48:25.16ID:KJ09lp1IM
そう思ってるとこんなん当然知ってますよねみたいなノリでevent処理とかrefとか出て詰むゾ
2024/01/28(日) 11:39:44.53ID:WhNL7KNN0
>>99
jQueryの現在はHPフロントエンジニアさんが
抱負なライブラリでHPに花をそえるために使っているだけ
ウェブアプリ屋さんはjQueryが邪魔くさい時があるので使わない
どの分野を目指すのかが決まっているなら
その分野で何が主流なのかを見極めたほうがいい
2024/01/28(日) 19:30:17.30ID:1z8oB9tQ0
動的に作られる特定の要素にだけイベント追加するのがラク

jQueryがバニラJSに勝ってる唯一の点だけど、そういう処理を入れるくらいDOMの操作使ったアプリ作るなら他のフレームワークのほうが良いだろう
2024/01/28(日) 20:16:55.07ID:9hZosd/l0
ゆうて古から続くjqueryの資産はいたる所にあるから、読めることくらいは出来ないとな
難しいもんではないんだし
2024/01/28(日) 23:52:21.72ID:Plt7vTfv0
>>106
バニラでも祖先ノードでmatches(selectors)を使えば対応可能なので、それほどjQueryに優位性はない気がする。
それから、jQueryはバブリングフェースのみ対応という弱点がある。
バブリングしないイベントタイプに関してはaddEventListener()に優位性がある。
2024/01/29(月) 01:34:06.63ID:fIBxeYXl0
他から持ってきたコードが指すjQueryが最近のじゃなくて
だれが互換性担保するのってのが一番困る
jQueryを直接つかう分には検証できるけど
依存しているライブラリは採用せんでほしい
110デフォルトの名無しさん (ワッチョイ f95a-w/9U [2400:4052:5062:9ff0:*])
垢版 |
2024/01/30(火) 09:12:09.86ID:GdANFjKZ0
jQuery使いの人は行き当たりばったりな人が多い
jQueryライブラリファイルの読み込みが沢山あってなんじゃこりゃみたいな
2024/01/30(火) 11:06:06.79ID:kUs11O+K0
jQueryが出た頃はSelectors APIもなかったからな
行き当たりばったりというより昔の標準APIが貧弱でライブラリに頼るしかなかった
2024/01/31(水) 00:18:29.61ID:Z4CJtIhd0
jQuery は短く書けるので、ちょっとしたデモには良い。
でも、React, Vue.js では使わない

Bootstrap も、5 からは使わない。
popper.js に変わった
2024/01/31(水) 08:00:03.26ID:8Xe2gISY0
>>110
しかもバージョンがところどころ違ったり読込先や仕方が違ったりする
2024/02/03(土) 01:34:02.49ID:VXfZdpMe0
>>99
■jQueryの良さは健在だが……
機能のある程度はES2015で代替出来るが
jQueryの良さは健在、そこはお前さんの言ってる通り

それとは全く別の話
手続き型的な手法でDOMを触ってるのが前時代的

■DOMを触るのが不味い理由
DOM作り直しは要素の改ざんな訳だ
DOMを更新するためには、探索して選択、それを作り変えるの2ステップがあるけど

別の機能がDOMを消したり書き換えたら
見つけられなくてエラー出るかも知れないよね?
選択できても改ざんされてて加工出来ずにエラー吐くかも知れないよね?

担保するのは全て貴方の目視テスト
10機能作ったら10x9の90通りのマトリックステスト作ってね
このように機能を作る度にnの2乗みたいなテストを目視でさせられる
全部で100機能作りましょうとかなるとありえん無理

■代替はJSフレームワーク
HTML作るテンプレートエンジンでsmartyやBlade、pugとか色々あるけど
あんな感じでDOMを生成する何かを用意しておいて
JS内で変数が変更されたのを検知して、勝手に新しいDOMツリーを作り直して嵌め込んでくれよって思わん?

その思想で作られてるのがReactやVue、Angular等のJSフレームワーク
JSフレームワークが用意した「変数の変更通知を行う」お作法を覚えて動かすとDOMが常に最新のあるべき姿になる

これによりDOM操作回りはJSフレームワークという外部の業者が全て責任持ってやってくれる
俺達はDOMの元であるテンプレートを読み込ませたら
ただ変数がちゃんと正しい値になってるか?を保証すれば完璧に動作するよね

変数書き換えたら常にあるべき姿のDOMに書き換わるシステムに、jQueryで改ざんし始めると衝突して邪魔になる
次のDOM更新でjQueryが書き換えた内容そっくり消えるしな

だからこれからのWeb開発にjQueryは不要なんだよ
決してES2015が優れてて代替出来るから不要になったという話では無い
2024/02/03(土) 06:58:45.76ID:hL2W++6M0
変数更新してるだけに見えて、別処理が勝手に動くというのも実はアレだけどな
今はリアクティブが流行してるからそこにケチつける風潮ないけれど
2024/02/03(土) 10:15:49.25ID:HeN++Rh50
>>99 (ワッチョイ 4d7c-MQtI [122.212.16.94])
これだけ回答をもらって無反応か
最近の質問者はこういう人が多いな
2024/02/03(土) 10:49:13.33ID:YZYv2rY+a
反応欲しいなら知恵袋にしとけって
2024/02/04(日) 02:28:25.82ID:ipvGCo7I0
JavaScriptで作れるプログラムって、webブラウザ以外になにかありますか?
全然ユーザーがいないのはダメだけど
ある程度需要がありそうな用途
2024/02/04(日) 03:05:45.75ID:w9OYnB1OM
>>118
WebブラウザとWebページを区別できるようになろう
2024/02/04(日) 05:18:25.36ID:7DDGpERD0
でもまあwebブラウザが全てではあるよね
他に出番無いし
2024/02/04(日) 07:00:09.01ID:wRU34d220
今はNode.jsでサーバ側もJSってこともある
122デフォルトの名無しさん (ワッチョイ bd43-tydm [114.148.57.9])
垢版 |
2024/02/04(日) 10:50:30.37ID:Vls4Se8V0
そうだね
node.jsでJavaScriptはサーバサイドだけじゃくてデスクトップアプリでも使われている
代表格はVScode(node.js+Electron)がある
Webpackもnode.jsだし
身近なところでは汎用掲示板ビューアSikiがnode.js+ElectronでJavaScriptだね
   
2024/02/04(日) 12:44:47.52ID:ieWwGMGa0
CSSもHTMLも生で書くのは平成だしな
普通SASSやらPugやら使うだろ
JSだってWebpackやらBrowserify越しに使うやろ

まぁNode.jsじゃトランスパイル遅いから
GOやRustのツールに置き換える流れにはなってるが
じゃあ最初からCやGO、Rustでやれば良かったよねとはならないフットワークの軽さがNode.jsにはあるからな
2024/02/04(日) 12:55:11.06ID:m4gIKl+m0
Rustで書いたJSトランスパイラは速いけどRust自体のコンパイルは遅い
2024/02/04(日) 23:16:57.06ID:/yrx0E0+0
あることをローカルマシンでやりたくて、Python入ってっから、それでやろうとしたらできなくて(いや正確にはすごく遅い)Node.jsになってしまった。何かは言わない。
126デフォルトの名無しさん (ワッチョイ fd09-tjaG [210.131.245.99])
垢版 |
2024/02/05(月) 09:44:15.86ID:Q9Y3g4UN0
node.jsの良さはJavaScriptでプログラミングできる事
Electron使えばUIもHTMLで書けるので便利
なれたらJavaScriptでデスクトップアプリを書くのが楽しくなった
2024/02/05(月) 15:57:34.49ID:thNH7tNN0
>>126
Electronはファイルがデカいから
俺が何か作る時はCLI一択だわ

対話的な物作る時は
Tauriで作ってみたいなぁと思う
2024/02/05(月) 18:19:30.64ID:1m9RfVzn0
>>118
Visual Studio Codeがjavascriptで作られている
2024/02/05(月) 19:17:51.68ID:+Fh+RIwSa
vscodeが糞な理由が分かった気がした
2024/02/06(火) 07:31:11.51ID:JsprpZ5q0
ElectronとAngularで作られてるシステム見させてもらったんだけど、reactに書き換えるって言ってたな

ならnativeでよくね?
2024/02/06(火) 14:51:45.98ID:nsw90RpoM
reactとreact nativeって書き換えが必要なの?
ゴミかな?
132デフォルトの名無しさん (ワッチョイ bd43-tydm [114.148.57.9])
垢版 |
2024/02/06(火) 15:07:15.20ID:4bvVpi0E0
>>0127
TauriはWebViewなので
Electronの様にWebRequestを簡単に操れない
Rustに拘らないのなら
使い慣れた開発言語でWebViewを組み込んだ方が手っ取り早い
2024/02/07(水) 01:01:55.81ID:8Eizk2eA0
YouTube 動画で見たけど、

北米では、Flutter よりも、React Native が多いらしい
134デフォルトの名無しさん (ワッチョイ fd09-tydm [210.131.245.99])
垢版 |
2024/02/07(水) 10:23:32.40ID:Q0zrTHJg0
JavaScriptで書ける環境の話から
かなり脱線気味
2024/02/11(日) 13:06:38.03ID:4EmF6N4v0
業務がWebアプリなのは危険だと言い出した管理職がいて
Electronでチャチャとデスクトップソフト風にしたら
仕事が早いとお褒めいただいたw
何も変わっちゃいなんだけれどそれはナイショ
136デフォルトの名無しさん (ワッチョイ 0e46-9m7S [2001:240:242e:628f:*])
垢版 |
2024/02/11(日) 14:27:08.42ID:cAyMWgFh0
危険だという懸念が素人の無理解から来てるだけなのか妥当な懸念なのか分からないから何とも言えんな
前者なら悪くない回避策
2024/02/11(日) 21:47:35.74ID:VNWSIW9O0
ブラウザのアドインに情報吸われる危険性は下がるね
2024/02/11(日) 23:27:36.16ID:Z05z2D4x0
まあ一般的に考えて危険やな
その認識は正しいさすが管理職
2024/02/12(月) 12:55:25.07ID:3q7oTZTX0
管理職が正しい
どんなに堅牢なシステムでも狙われたら終わり
だから今はクラウドじゃなくてオンプレ回帰してる
2024/02/12(月) 15:27:53.80ID:2z81MgsB0
もうネット使うなよ
2024/02/12(月) 15:53:51.52ID:BAGnA5Sa0
Access でいいよ
2024/02/17(土) 10:17:04.46ID:eAolMzZEd
VBAとC#でちょくちょくアプリ作ってる程度のもんなんですけど
最近VS Code使ってjavascriptの勉強始めたわけですよ
デフォルトの環境で扱ってる限り、typoの指摘が甘くて気づくのに時間かかってしまってつらいです
Visual StudioでC#つかってるとかなり丁寧に指摘してくれるんで助かるんですが
Codeはその辺厳しいですね

Code Spell Checkerを入れてみたんですけど、よさそうな対策は他にありますか?
2024/02/17(土) 10:48:07.30ID:Hugfzc2R0
JSはデフォだとどんなパラメータも持ちうるのでtypoを機械的に見つけにくい言語。
なのでjsdocゴリゴリ書く(もっとやるなら@ts-checkも)かTypeScript使うと良いよ
2024/02/17(土) 14:57:51.18ID:eAolMzZEd
>>143
ありがとうございます
TypeScriptも視野にいれてちょい調べてみます
2024/02/17(土) 15:05:36.03ID:MLAS2UwQ0
>>142
VSと比較するならWebStormじゃなきゃ辛いし
VSCodeのままでもLSPなりで魔改造すれば頑張れるやろ
2024/02/17(土) 17:54:57.60ID:3rmfz0Aa0
>>142の言うtypoが具体的にどんなのか気になる
厳しいのはCodeじゃなくてJavaScriptなのを誤解してそう
2024/02/17(土) 18:56:27.31ID:snWQTW2N0
JSもDataflow Proposalsが導入されたら
普通に使い続けるんだがなぁ
148デフォルトの名無しさん (ワッチョイ 7310-HqFJ [180.12.82.129])
垢版 |
2024/02/19(月) 18:24:10.88ID:waVDHmuE0
マウスボタンを押しながらマウスを移動させてからマウスボタンを離すと
マウスボタンを離したときにmouseupだけでなくmousemoveも反応してしまうんだけど仕様ですか?
これ知らなくて動作が思うように行かなかった。
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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