JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
※前スレ
+ JavaScript の質問用スレッド vol.122 +
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ efff-U/Pn [183.76.238.232])
2017/04/02(日) 23:30:38.56ID:Qcd0Qmy10282デフォルトの名無しさん (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 10:58:53.79ID:asjsDRkW0 sort関数に追加の引数を渡すことってできますか?
array.sort(mySort())に引数を与えて条件によって処理を変えたいのですが。
普通にmySort()に引数を入れるとソートで使われる引数に値が入ってしまってダメでした。
array.sort(mySort())に引数を与えて条件によって処理を変えたいのですが。
普通にmySort()に引数を入れるとソートで使われる引数に値が入ってしまってダメでした。
283デフォルトの名無しさん (ワッチョイ b78b-VUc9 [210.228.102.1])
2020/10/14(水) 11:29:33.74ID:B+LQat5m0 function mySort(value) {
if(value===1) {
return (a, b) => a-b
} else if (value===2) {
return (a, b) => b-a
}
}
array.sort(mySort(1)) // 昇順
array.sort(mySort(2)) // 降順
if(value===1) {
return (a, b) => a-b
} else if (value===2) {
return (a, b) => b-a
}
}
array.sort(mySort(1)) // 昇順
array.sort(mySort(2)) // 降順
284282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 11:48:53.44ID:asjsDRkW0 ありがとうございます。
新しいjsでは大丈夫でしたが、ES3という超古いバージョンなのです。
書き忘れていました。後出しで申し訳ありません。
(アドビのソフトで使われているjsです)
新しいjsでは大丈夫でしたが、ES3という超古いバージョンなのです。
書き忘れていました。後出しで申し訳ありません。
(アドビのソフトで使われているjsです)
285デフォルトの名無しさん (オッペケ Srcb-Qzhr [126.179.243.62])
2020/10/14(水) 12:41:33.59ID:p6YQijR2r >>284
bindみたいな引数束縛する関数を作る
bindみたいな引数束縛する関数を作る
286デフォルトの名無しさん (オッペケ Srcb-Qzhr [126.179.243.62])
2020/10/14(水) 12:44:22.07ID:p6YQijR2r287282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 13:05:25.23ID:asjsDRkW0 >>285
ちょっと自分のスキルでは難しそうです。
ちょっと自分のスキルでは難しそうです。
288デフォルトの名無しさん (ワッチョイ b72c-F9zC [114.144.98.145])
2020/10/14(水) 13:40:46.13ID:z5Uy/Vd30 Function.prototype.bind()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
bind this か?
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
bind this か?
289デフォルトの名無しさん (オッペケ Srcb-D9NN [126.208.250.170])
2020/10/14(水) 13:53:20.67ID:z5/Y8RhDr ソート関数なんて自前で作ればいい
290デフォルトの名無しさん (ワッチョイ ff61-fMdf [153.160.139.47])
2020/10/14(水) 13:58:43.04ID:bGR5EKGW0 ES3だと
return (a, b) => a-b
↓
return function(a, b) { return a - b; };
じゃね?
だいたいsortと比較関数でクロージャにしちゃって引数でなくローカル変数でやっちゃうよね
return (a, b) => a-b
↓
return function(a, b) { return a - b; };
じゃね?
だいたいsortと比較関数でクロージャにしちゃって引数でなくローカル変数でやっちゃうよね
291282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 14:10:27.29ID:asjsDRkW0 returnの挙動はともかく、
mySort(value)自体がES3だとできないのです。(aにvalueが入ってしまう)
とりあえず今はグローバル変数で対応していますが、
引数でやる方法がないのかと思いまして。
mySort(value)自体がES3だとできないのです。(aにvalueが入ってしまう)
とりあえず今はグローバル変数で対応していますが、
引数でやる方法がないのかと思いまして。
292デフォルトの名無しさん (ワッチョイ 97d2-f5T3 [124.103.45.183])
2020/10/14(水) 16:00:56.30ID:zqMcknRo0 比較関数はどうやって指定しているんですか?
293デフォルトの名無しさん (ブーイモ MMcf-geX2 [163.49.200.143])
2020/10/14(水) 17:00:41.74ID:Tfis7AoIM294282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 17:08:39.53ID:asjsDRkW0 >>293
今やってることは大雑把には以下の通りで、
mySortにa,b以外の値cを渡してそれを元に処理を追加したいのですが
cの渡し方がわかりません。
var ary=[10,12,53,41,5,6,];
ary.sort(mySort);
function mySort(a,b){
return a-b;
}
今やってることは大雑把には以下の通りで、
mySortにa,b以外の値cを渡してそれを元に処理を追加したいのですが
cの渡し方がわかりません。
var ary=[10,12,53,41,5,6,];
ary.sort(mySort);
function mySort(a,b){
return a-b;
}
295デフォルトの名無しさん (ワッチョイ b74e-T8Cx [210.138.216.243])
2020/10/14(水) 17:20:07.02ID:Azmo5ss/0 var ary=[10,12,53,41,5,6,];
ary.sort(mySort(-1));
function mySort(c){
return function(a,b){
return c<0 ? a-b : b-a;
};
}
ary.sort(mySort(-1));
function mySort(c){
return function(a,b){
return c<0 ? a-b : b-a;
};
}
296282 (ワッチョイ ff7b-yH5j [153.198.55.63])
2020/10/14(水) 17:28:28.99ID:asjsDRkW0 ありがとうございます。まさに希望どおりです。
こんな書き方もできるんですね。
こんな書き方もできるんですね。
297デフォルトの名無しさん (ワッチョイ b74e-T8Cx [210.138.216.243])
2020/10/14(水) 18:41:11.04ID:Azmo5ss/0 高階関数やクロージャについて調べてみると理解進むよ。
ちなみに今でも全然通用する概念。
ちなみに今でも全然通用する概念。
298デフォルトの名無しさん (アウアウクー MM49-1tAR [36.11.229.191])
2020/10/24(土) 02:35:59.30ID:gS1xqNx8M 質問させてください。
nodejsで line botを作っていて応答文字に改行を入れたいのですが
ダブルクォートで囲った中に”\n”で改行するという仕様のようなのです。
例
return client.replyMessage(ev.replyToken, {
type: "text",
text: “あああ\nいいい”
});
しかし今作っているbotは文字列を変数に格納しており
const aaa = スクレイピングで拾ってきた文字列
const bbb = スクレイピングで拾ってきた文字列
const ccc = aaa + “\n” + bob
return client.replyMessage(ev.replyToken, {
type: "text",
text: ccc
});
では改行されませんでした。
text: `${ccc}` でもダメでした。
\nがそのまま表示されてしまいます。
ダブルクオートで囲い直す方法ってございませんでしょうか?
よろしくお願い致します。
nodejsで line botを作っていて応答文字に改行を入れたいのですが
ダブルクォートで囲った中に”\n”で改行するという仕様のようなのです。
例
return client.replyMessage(ev.replyToken, {
type: "text",
text: “あああ\nいいい”
});
しかし今作っているbotは文字列を変数に格納しており
const aaa = スクレイピングで拾ってきた文字列
const bbb = スクレイピングで拾ってきた文字列
const ccc = aaa + “\n” + bob
return client.replyMessage(ev.replyToken, {
type: "text",
text: ccc
});
では改行されませんでした。
text: `${ccc}` でもダメでした。
\nがそのまま表示されてしまいます。
ダブルクオートで囲い直す方法ってございませんでしょうか?
よろしくお願い致します。
299デフォルトの名無しさん (ブーイモ MMd1-Gto1 [202.214.230.69])
2020/10/24(土) 11:37:48.17ID:4WVjWXseM >>298
wrap: true
wrap: true
300デフォルトの名無しさん (アウアウクー MM49-1tAR [36.11.229.191])
2020/10/24(土) 12:36:00.80ID:gS1xqNx8M301デフォルトの名無しさん (アウアウクー MM49-1tAR [36.11.229.191])
2020/10/24(土) 13:25:10.82ID:gS1xqNx8M すみません。自己解決しました。
\ではなくバックスラッシュでした。
ありがとうございました。
\ではなくバックスラッシュでした。
ありがとうございました。
302デフォルトの名無しさん (ブーイモ MM8b-gqeA [163.49.205.254])
2020/10/24(土) 21:42:06.09ID:6VJCwZcaM そもそも文字列はシングルクオートで囲う癖つけとくと便利だと思う
テンプレート文字列にするのもいいけど
テンプレート文字列にするのもいいけど
303デフォルトの名無しさん (アウアウエー Sa7f-U5Vn [111.239.187.220])
2020/11/08(日) 22:08:22.01ID:EfB5Dlnya requirejsやってるんだけどシェルのexportコマンド的なの無いの?
304デフォルトの名無しさん
2020/11/24(火) 13:11:50.94ID:FWk6XcjL function hoge(){} //引数なし
hoge(a=11,b=33)
名前付き引数を可変的に追加できて
関数hoge側でkey(aとb)名も受け取れるようにしたいんだけど無理?
argumentsはkey名は無視されたし
hoge({a=1,b=3})で関数内でfor key in objみたいにするしかないのかな
hoge(a=11,b=33)
名前付き引数を可変的に追加できて
関数hoge側でkey(aとb)名も受け取れるようにしたいんだけど無理?
argumentsはkey名は無視されたし
hoge({a=1,b=3})で関数内でfor key in objみたいにするしかないのかな
305デフォルトの名無しさん (ワントンキン MM8a-SQf5 [153.250.6.142])
2020/11/24(火) 14:02:04.95ID:cyXA9vgjM function foo(a, b, ...rest)
306デフォルトの名無しさん
2020/11/25(水) 01:19:47.68ID:UPK+j49C >>305
無理でした
無理でした
307デフォルトの名無しさん (ワッチョイ 194e-nRkK [210.138.216.243])
2020/11/25(水) 16:04:16.70ID:zD7zhP2P0 いまいち何がしたいのかよくわかんないけど
function hoge(o = {}){
console.log(Object.keys(o))
}
hoge({a: 1, b: 3})
//=> ["a", "b"]
function hoge(o = {}){
console.log(Object.keys(o))
}
hoge({a: 1, b: 3})
//=> ["a", "b"]
308デフォルトの名無しさん
2020/11/25(水) 16:45:55.85ID:UPK+j49C >>307
端的にいうと
引数は
hoge(x=1,y=2,a="ho",b="ge")
hoge(z=2,x="abc")
みたいに指定できて
{x:1,y:2,a:"ho",b:"ge"}や{z:2,x:"abc"}
みたいに関数で受け取りたい
(もちろんx,yやa,b,cみたいなkey名はこれに限らず)
端的にいうと
引数は
hoge(x=1,y=2,a="ho",b="ge")
hoge(z=2,x="abc")
みたいに指定できて
{x:1,y:2,a:"ho",b:"ge"}や{z:2,x:"abc"}
みたいに関数で受け取りたい
(もちろんx,yやa,b,cみたいなkey名はこれに限らず)
309デフォルトの名無しさん (ワッチョイ ebda-flI+ [153.144.243.166])
2020/11/25(水) 17:12:47.42ID:ulXBn3sm0 JSにそういう記法はないので無理
Pythonを使え
Pythonを使え
310デフォルトの名無しさん (ワッチョイ 194e-nRkK [210.138.216.243])
2020/11/25(水) 17:15:26.00ID:zD7zhP2P0 えっ…じゃあこうだけど??
function hoge(o = {}){
console.log(o)
}
hoge({x: 1, y: 2, a: "ho", b: "ge"})
//=> {x: 1, y: 2, a: "ho", b: "ge"}
function hoge(o = {}){
console.log(o)
}
hoge({x: 1, y: 2, a: "ho", b: "ge"})
//=> {x: 1, y: 2, a: "ho", b: "ge"}
311デフォルトの名無しさん
2020/11/25(水) 17:52:06.24ID:UPK+j49C312デフォルトの名無しさん (ワッチョイ 194e-U2xp [210.138.216.243])
2020/11/25(水) 19:21:16.56ID:zD7zhP2P0 >>311
あーそうゆうことね。
()呼び出しでなくタグ付きテンプレート呼び出し、
eval使っていいなら、
function hoge(s) {
let o={},p=new Proxy(o,{set:(o,p,v)=>(o[p]=v,!0),has:()=>!0});
eval(`with(p){${s[0]}}`)
console.log(o);
}
hoge`x=1,y=2,a="ho",b="ge"`
//=> {x: 1, y: 2, a: "ho", b: "ge"}
あーそうゆうことね。
()呼び出しでなくタグ付きテンプレート呼び出し、
eval使っていいなら、
function hoge(s) {
let o={},p=new Proxy(o,{set:(o,p,v)=>(o[p]=v,!0),has:()=>!0});
eval(`with(p){${s[0]}}`)
console.log(o);
}
hoge`x=1,y=2,a="ho",b="ge"`
//=> {x: 1, y: 2, a: "ho", b: "ge"}
313デフォルトの名無しさん (ワッチョイ 194e-U2xp [210.138.216.243])
2020/11/25(水) 19:29:03.94ID:zD7zhP2P0 hoge`
x = 1,
y = 2,
a = "ho",
b = "ge",
z = x + y,
c = a + b
`
//=> {x: 1, y: 2, a: "ho", b: "ge", z: 3, c: "hoge"}
x = 1,
y = 2,
a = "ho",
b = "ge",
z = x + y,
c = a + b
`
//=> {x: 1, y: 2, a: "ho", b: "ge", z: 3, c: "hoge"}
314デフォルトの名無しさん
2020/11/25(水) 19:36:00.93ID:UPK+j49C315デフォルトの名無しさん (ワッチョイ 33bd-W+Es [133.200.2.96])
2020/11/25(水) 21:38:45.31ID:3CNxpkun0 const hoge = [{id:"xxx",
num:5000},
{id:"yyy",
num:2000},
{id:"zzz",
num:9000},]
こういう配列でnumが一番大きいobjectを取得するシンプルな方法ってありますか?
思いついたのは
const foo = hoge.find((i)=>{
return i.num === Math.max(...hoge.map((v) =>{
return v.num
}))
})
なんですけどこれだけの処理に二重でループ回すのはナンセンスな気がしてしまって・・・
num:5000},
{id:"yyy",
num:2000},
{id:"zzz",
num:9000},]
こういう配列でnumが一番大きいobjectを取得するシンプルな方法ってありますか?
思いついたのは
const foo = hoge.find((i)=>{
return i.num === Math.max(...hoge.map((v) =>{
return v.num
}))
})
なんですけどこれだけの処理に二重でループ回すのはナンセンスな気がしてしまって・・・
316デフォルトの名無しさん (ワッチョイ c101-kvF8 [126.3.57.183])
2020/11/25(水) 21:48:23.27ID:UiakocYp0 >>315
sortかfotEachしたら?
sortかfotEachしたら?
317デフォルトの名無しさん (ワッチョイ c101-kvF8 [126.3.57.183])
2020/11/25(水) 22:03:22.81ID:UiakocYp0318デフォルトの名無しさん (ワッチョイ 33bd-W+Es [133.200.2.96])
2020/11/25(水) 22:12:00.77ID:3CNxpkun0319デフォルトの名無しさん (ワッチョイ 194e-U2xp [210.138.216.243])
2020/11/25(水) 22:14:27.47ID:zD7zhP2P0 const foo = hoge.sort((a, b) => a.num - b.num).pop()
とか
const foo = hoge.sort((a, b) => b.num - a.num)[0]
とか。
しかし両者ともhogeを書き換えてしまうので、
const foo = [...hoge].sort((a, b) => a.num - b.num).pop()
とか
const foo = [...hoge].sort((a, b) => b.num - a.num)[0]
のほうが望みのものかもね。
あとは
const foo = hoge.reduce((acc, r) => r.num > acc.num ? r : acc)
とか。
とか
const foo = hoge.sort((a, b) => b.num - a.num)[0]
とか。
しかし両者ともhogeを書き換えてしまうので、
const foo = [...hoge].sort((a, b) => a.num - b.num).pop()
とか
const foo = [...hoge].sort((a, b) => b.num - a.num)[0]
のほうが望みのものかもね。
あとは
const foo = hoge.reduce((acc, r) => r.num > acc.num ? r : acc)
とか。
320デフォルトの名無しさん (ブーイモ MMeb-/4Ud [163.49.208.217])
2020/11/25(水) 22:26:19.76ID:iWjekW4fM sortしなくていいケースでsortするのは無駄
reduceかfor-ofで
reduceかfor-ofで
321デフォルトの名無しさん (ワッチョイ 194e-U2xp [210.138.216.243])
2020/11/25(水) 22:29:12.37ID:zD7zhP2P0 >>318
> numは存在しない場合もありました
このような後出し要件の場合は、安全なアクセス関数を追加で用意して差し込むのが簡単。
例えば、
const getNumSafe = ({num = -Infinity}) => num
const foo = hoge.reduce((acc, r) => getNumSafe(r) > getNumSafe(acc) ? r : acc)
のように。
> numは存在しない場合もありました
このような後出し要件の場合は、安全なアクセス関数を追加で用意して差し込むのが簡単。
例えば、
const getNumSafe = ({num = -Infinity}) => num
const foo = hoge.reduce((acc, r) => getNumSafe(r) > getNumSafe(acc) ? r : acc)
のように。
322デフォルトの名無しさん (ブーイモ MMeb-/4Ud [163.49.214.133])
2020/11/25(水) 22:30:06.01ID:drNJreauM ライブラリ可ならlodashのmaxBy
323デフォルトの名無しさん (ワッチョイ 33bd-W+Es [133.200.2.96])
2020/11/25(水) 22:50:57.62ID:3CNxpkun0324デフォルトの名無しさん (ワッチョイ 592c-OOND [114.144.98.145])
2020/11/27(金) 01:16:52.95ID:lOUpIwv20 Lodash は多くのライブラリも使っているから、使うべき!
プロジェクトのライブラリの依存関係を検索すると、
多くのライブラリが、Lodash に依存してる
プロジェクトのライブラリの依存関係を検索すると、
多くのライブラリが、Lodash に依存してる
325デフォルトの名無しさん (ワッチョイ 194e-nRkK [210.138.216.243])
2020/11/27(金) 03:15:11.50ID:W+zDVYCR0 Netflixはlodash切って素のJSで書き直したけどな。
326デフォルトの名無しさん (オッペケ Sr1d-kvF8 [126.194.236.168])
2020/11/27(金) 12:17:00.93ID:Syvn71JBr ライブラリが必要な程、複雑な処理ではない気がするけどな
hoge.reduce((max, current) => max < current.num ? cutrent.num : max, -Infinity);
hoge.reduce((max, current) => max < current.num ? cutrent.num : max, -Infinity);
327デフォルトの名無しさん (オッペケ Sr1d-Gu+o [126.157.78.99])
2020/11/27(金) 18:55:39.16ID:gUqD3P5er 使うモジュールだけにしときな
328デフォルトの名無しさん (ワッチョイ 53f0-P4WK [115.65.191.12])
2020/11/30(月) 16:28:41.73ID:gpUfY6cE0 動的型付け言語って本当にわかりづらい
javascriptでオブジェクト指向的なプログラムを組もうと思って
簡単な本でjavascriptを勉強してるんだけど
interfaceないのにどうやってオブジェクト指向的な開発してるんですか?
typescriptしたほうがいいんだろうか?
javascriptでオブジェクト指向的なプログラムを組もうと思って
簡単な本でjavascriptを勉強してるんだけど
interfaceないのにどうやってオブジェクト指向的な開発してるんですか?
typescriptしたほうがいいんだろうか?
329デフォルトの名無しさん (オッペケ Sr1d-HgZM [126.133.242.112])
2020/11/30(月) 16:37:41.46ID:0Mqgtux2r >>328
してください
してください
330デフォルトの名無しさん (オッペケ Sr1d-kvF8 [126.194.236.168])
2020/11/30(月) 19:07:05.83ID:CqWD2gHur >>328
class使って下さい
class使って下さい
331デフォルトの名無しさん (ワッチョイ 1b46-P4WK [111.98.111.65])
2020/11/30(月) 19:08:03.35ID:1U/wXaEH0 >>330
インターフェイスやabstracut使わずにどうやれと
インターフェイスやabstracut使わずにどうやれと
332デフォルトの名無しさん (オッペケ Sr1d-kvF8 [126.194.236.168])
2020/11/30(月) 19:19:23.06ID:CqWD2gHur >>331
あるもので何とかする気のない人にどう答えろと
あるもので何とかする気のない人にどう答えろと
333デフォルトの名無しさん (ワッチョイ 1b46-P4WK [111.98.111.65])
2020/11/30(月) 21:04:19.76ID:1U/wXaEH0 javascriptでオブジェクト指向開発は、今のところは無理ってことですかね?
334デフォルトの名無しさん (ワッチョイ c101-kvF8 [126.3.50.58])
2020/11/30(月) 21:19:10.37ID:4TqWiQB+0 >>333
君にとってはそうだな
君にとってはそうだな
335デフォルトの名無しさん (ワッチョイ 194e-HgZM [210.138.216.243])
2020/11/30(月) 21:50:12.17ID:owcTZSsV0 バカは何使おうが無理
336デフォルトの名無しさん (アウアウカー Sa6d-T9pK [182.251.184.232])
2020/11/30(月) 23:43:04.66ID:TJ10WaD1a 独学におすすめの本はありますか?
プログラム自体はphpの基礎ができる程度です
プログラム自体はphpの基礎ができる程度です
337デフォルトの名無しさん (ワッチョイ 1b46-P4WK [111.98.111.65])
2020/12/01(火) 06:15:24.88ID:Zg5lb2px0 >>334
あなたには出来ると言いたげですね
あなたには出来ると言いたげですね
338デフォルトの名無しさん (オッペケ Sr1d-kvF8 [126.194.236.168])
2020/12/01(火) 08:10:06.86ID:RQP4Xz+Pr >>336
『JavaScript for impatient programmers』
『JavaScript for impatient programmers』
339デフォルトの名無しさん (ワッチョイ 53f0-P4WK [115.65.191.12])
2020/12/01(火) 10:44:14.97ID:L1BkVMXS0 javascriptって面白い挙動するんだね
class s{
constructor(){
this.s1="s1";
let .s2="s2";
alert(); }// ---@
alert(){window.alert();}} //---A
new s();
-------------------
@を
alert(s1) ×
alert(this.s1) 〇
alert(s2) 〇
alert(this.s2) ×
と、Aで引数を受け取らなくてもalertで値が表示される
@alert(s2)とし
Aalert(){window.alert(this.s1):}
とすると、s2がalertされるし
@alert()とし
Aalert(){window.alert(this.s1):}
とするとalertには何も表示されない
とても不可思議な挙動
class s{
constructor(){
this.s1="s1";
let .s2="s2";
alert(); }// ---@
alert(){window.alert();}} //---A
new s();
-------------------
@を
alert(s1) ×
alert(this.s1) 〇
alert(s2) 〇
alert(this.s2) ×
と、Aで引数を受け取らなくてもalertで値が表示される
@alert(s2)とし
Aalert(){window.alert(this.s1):}
とすると、s2がalertされるし
@alert()とし
Aalert(){window.alert(this.s1):}
とするとalertには何も表示されない
とても不可思議な挙動
340デフォルトの名無しさん (ワッチョイ 5961-3gg3 [114.167.47.202])
2020/12/01(火) 11:40:52.32ID:bVbF5nud0 >>339
(1)で(2)を呼びたいならthis.alert()でないとだめ
ブラウザ上ではwindow.は省略可能なので(1)のalertはwindow.alertその物
スクリプト系の言語ではc++やc#等とは違ってthis相当の物を省略できないのが多い
(1)で(2)を呼びたいならthis.alert()でないとだめ
ブラウザ上ではwindow.は省略可能なので(1)のalertはwindow.alertその物
スクリプト系の言語ではc++やc#等とは違ってthis相当の物を省略できないのが多い
341デフォルトの名無しさん (ワッチョイ 592c-OOND [114.144.98.145])
2020/12/01(火) 12:07:45.77ID:WP+WGTcn0 >>336
プロ向きなら、サイの表紙の2冊のサイ本
初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017
JavaScript 第6版、2012、David Flanagan
ただし、これらは、Google などの開発者が読む、プロ向きの本。
最低でも、Ruby は出来ないと、難しすぎて読めないと思う
JavaScript は、言語仕様が肥大化してる。
Rubyみたいに、簡単には学べないから、適当にお茶を濁した方がよい。
キリがない
プロ向きなら、サイの表紙の2冊のサイ本
初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017
JavaScript 第6版、2012、David Flanagan
ただし、これらは、Google などの開発者が読む、プロ向きの本。
最低でも、Ruby は出来ないと、難しすぎて読めないと思う
JavaScript は、言語仕様が肥大化してる。
Rubyみたいに、簡単には学べないから、適当にお茶を濁した方がよい。
キリがない
342デフォルトの名無しさん (オッペケ Sr1d-kvF8 [126.133.193.52])
2020/12/01(火) 13:31:02.54ID:53WLqSe7r343デフォルトの名無しさん (ワッチョイ 1b46-P4WK [111.98.111.65])
2020/12/01(火) 19:23:33.17ID:Zg5lb2px0 >>340
勉強になります、ありがと先生!
勉強になります、ありがと先生!
344333 (ワッチョイ dff0-jrSk [115.65.191.12])
2020/12/02(水) 10:31:40.93ID:B0C6cOGW0 javascriptの挙動を確認したいので
本体が何処にあるか調べてるのですが不明です
javascript本体はどこにあるのでしょうか?
本体が何処にあるか調べてるのですが不明です
javascript本体はどこにあるのでしょうか?
345デフォルトの名無しさん (オッペケ Sraf-/AfY [126.133.193.52])
2020/12/02(水) 13:01:48.46ID:PzRtqWYIr >>344
本体の定義は何?
本体の定義は何?
346デフォルトの名無しさん (ワッチョイ fb2c-lBG8 [114.144.98.145])
2020/12/02(水) 13:44:59.62ID:vDg6xkSY0 Node.js なら、コマンドプロンプトで、
where node
と入力すると、
C:\Program Files\nodejs\node.exe
where node
と入力すると、
C:\Program Files\nodejs\node.exe
347デフォルトの名無しさん (ワッチョイ f34e-2/bE [210.138.216.243])
2020/12/02(水) 14:00:48.75ID:s/Tj40p50 「javascript本体はどこにあるのか」か。
ちょっと哲学的な問いだな。
俺としては、「Ecma International にある」説を推したい。
しかし物理的実体があるわけではないので Ecma International 本部があるジュネーヴにはない。
ちょっと哲学的な問いだな。
俺としては、「Ecma International にある」説を推したい。
しかし物理的実体があるわけではないので Ecma International 本部があるジュネーヴにはない。
348デフォルトの名無しさん (ワッチョイ 1f71-jrSk [157.107.79.242])
2020/12/02(水) 17:09:47.94ID:ll4y5RKs0 ブラウザに組み込まれてるのでは?(クソザコ素人)
349デフォルトの名無しさん (オッペケ Sraf-/AfY [126.133.193.52])
2020/12/02(水) 18:10:51.81ID:PzRtqWYIr350デフォルトの名無しさん (ワッチョイ df02-jrSk [119.106.222.232])
2020/12/02(水) 18:15:26.80ID:kLO/ox290 単純にコードはどうやって見られますかって話では。
351デフォルトの名無しさん (オッペケ Sraf-/AfY [126.133.193.52])
2020/12/04(金) 08:30:08.52ID:0LJPp7yer 質問は放置されたか
352デフォルトの名無しさん (ワッチョイ dff0-jrSk [115.65.191.12])
2020/12/04(金) 15:48:35.50ID:Q52RE+DV0 書き込み不可でした
質問の仕方が悪くてすみません
javascriptが関数などをどう処理してるのかを知りたくて
javascriptのソースファイルを見たいなって思ってました
googleのchromeファイルを見てたんですけどちょっと分からなくて質問してみました
実際にはバイナリなりで読めない状態なのかもしれませんけど
所在だけでもしっておきたいなと
質問の仕方が悪くてすみません
javascriptが関数などをどう処理してるのかを知りたくて
javascriptのソースファイルを見たいなって思ってました
googleのchromeファイルを見てたんですけどちょっと分からなくて質問してみました
実際にはバイナリなりで読めない状態なのかもしれませんけど
所在だけでもしっておきたいなと
353デフォルトの名無しさん (ワッチョイ f34e-2/bE [210.138.216.243])
2020/12/04(金) 16:14:05.08ID:2+VKdPy10 >>352
そういう説明が欲しかった。
chromeのJavaScript実行エンジンはV8だから、V8のソース読めばおk。
以下に手順が説明されているよ。
https://v8.dev/docs/source-code
そういう説明が欲しかった。
chromeのJavaScript実行エンジンはV8だから、V8のソース読めばおk。
以下に手順が説明されているよ。
https://v8.dev/docs/source-code
354デフォルトの名無しさん (ワッチョイ dff0-jrSk [115.65.191.12])
2020/12/04(金) 17:56:05.68ID:Q52RE+DV0355デフォルトの名無しさん (ワッチョイ c73d-eZUT [124.25.115.164])
2020/12/04(金) 18:35:57.72ID:mOVEEZtP0 function(5, 10){
この5や10を別の数字や文字に変更することは出来ますか?
この5や10を別の数字や文字に変更することは出来ますか?
356デフォルトの名無しさん (オッペケ Sraf-/AfY [126.133.193.52])
2020/12/04(金) 19:13:20.61ID:0LJPp7yer357デフォルトの名無しさん (ブーイモ MMbf-fY0N [163.49.215.238])
2020/12/04(金) 19:23:39.37ID:UxB6Tf8eM 関数に引数で渡された変数の中身じゃなくて変数の名前って取得できますか?
358デフォルトの名無しさん (ワッチョイ c73d-eZUT [124.25.115.164])
2020/12/04(金) 19:25:42.17ID:mOVEEZtP0359デフォルトの名無しさん (オッペケ Sraf-/AfY [126.133.193.52])
2020/12/04(金) 19:34:15.00ID:0LJPp7yer >>357-358
変数値は再代入で変えられる
変数名はグローバル変数を除いて変更(元の名前を削除)出来ない
そもそも、変数名を変えようとするのは不具合の種になる
オブジェクトのプロパティやnew Mapのkey等、限られた空間で安全に変更するのが好ましい
変数値は再代入で変えられる
変数名はグローバル変数を除いて変更(元の名前を削除)出来ない
そもそも、変数名を変えようとするのは不具合の種になる
オブジェクトのプロパティやnew Mapのkey等、限られた空間で安全に変更するのが好ましい
360デフォルトの名無しさん (オッペケ Sraf-/AfY [126.133.193.52])
2020/12/04(金) 19:36:52.05ID:0LJPp7yer >>357
無理
無理
361デフォルトの名無しさん (オッペケ Sraf-/AfY [126.133.193.52])
2020/12/04(金) 19:41:14.45ID:0LJPp7yer362デフォルトの名無しさん (ワッチョイ c73d-eZUT [124.25.115.164])
2020/12/04(金) 20:52:39.53ID:mOVEEZtP0 >>359
ありがとうございます
ありがとうございます
363デフォルトの名無しさん (アメ MMaf-oX+r [218.225.232.26])
2020/12/04(金) 21:02:15.15ID:8jcPt1TuM JavaScriptの効率的な学習方法を教えて下さい
入門書のひらがなJavaScriptは終わりました。
次は、Progateか一つ上の書籍かと思っていますが、どの書籍にすべきか迷っています
入門書のひらがなJavaScriptは終わりました。
次は、Progateか一つ上の書籍かと思っていますが、どの書籍にすべきか迷っています
364デフォルトの名無しさん (ワッチョイ bf5c-3VNM [115.36.86.55])
2020/12/04(金) 23:49:00.70ID:73Qqn1aF0 山田何とかの著書一択
365デフォルトの名無しさん (ワッチョイ 6f01-/AfY [126.3.33.117])
2020/12/05(土) 07:37:21.02ID:7XRe2Ndx0 >>363
> JavaScriptの効率的な学習方法を教えて下さい
目指している目標に依る
何かを作るだけならサンプルコードのコピペに行き着く人が多い
基礎から下積みするなら、一日でも早く仕様書を読めるようになる事が最も効率的なので、仕様書に近い書籍を選ぶ事になる
> JavaScriptの効率的な学習方法を教えて下さい
目指している目標に依る
何かを作るだけならサンプルコードのコピペに行き着く人が多い
基礎から下積みするなら、一日でも早く仕様書を読めるようになる事が最も効率的なので、仕様書に近い書籍を選ぶ事になる
366デフォルトの名無しさん (ワッチョイ bfa5-lq0O [219.126.141.232])
2020/12/05(土) 07:48:18.47ID:T+MIshnP0 最初からtypescriptを使うことが最も近道
367質問者 (スップ Sdbf-sakO [1.75.0.54])
2020/12/05(土) 07:57:03.24ID:wSoVmOU1d 目的は参照ボタンを選択してファイル選択ダイアログを開き、選択したローカルファイルの中を読む事です。
ただ、
<input type=`file`〜>で表示されたファイルパスを取得する事は出来ない(セキュリティ上)?
ローカルファイルを読むにはファイルパスが必要なので、どうすれば良いでしょうか?
すみませんよろしくお願いいたします。
ただ、
<input type=`file`〜>で表示されたファイルパスを取得する事は出来ない(セキュリティ上)?
ローカルファイルを読むにはファイルパスが必要なので、どうすれば良いでしょうか?
すみませんよろしくお願いいたします。
368デフォルトの名無しさん (ワッチョイ 6f01-/AfY [126.3.33.117])
2020/12/05(土) 08:04:08.32ID:7XRe2Ndx0 >>363
『ひらがなJavaScript』が見つからないのだが…
https://www.google.com/search?q=%E3%81%B2%E3%82%89%E3%81%8C%E3%81%AAJavaScript
『ひらがなJavaScript』が見つからないのだが…
https://www.google.com/search?q=%E3%81%B2%E3%82%89%E3%81%8C%E3%81%AAJavaScript
369デフォルトの名無しさん (ワッチョイ 6f01-/AfY [126.3.33.117])
2020/12/05(土) 08:16:49.84ID:7XRe2Ndx0371デフォルトの名無しさん (ワッチョイ 6f01-/AfY [126.3.33.117])
2020/12/05(土) 09:52:09.52ID:7XRe2Ndx0372367 (スップ Sdbf-sakO [1.75.0.54])
2020/12/05(土) 12:30:15.84ID:wSoVmOU1d373デフォルトの名無しさん (ワッチョイ 4f61-ysoX [114.167.47.202])
2020/12/05(土) 13:25:14.38ID:r/OmkE6S0 フルパスは取れないファイルが読めるだけ
374367 (スップ Sdbf-sakO [1.75.0.54])
2020/12/05(土) 18:02:57.10ID:wSoVmOU1d375367 (スップ Sdbf-sakO [1.75.0.54])
2020/12/05(土) 18:22:16.72ID:wSoVmOU1d 補足
すみません。
サブ画面ではファイルパスの設定だけ。
メイン画面ではじめて、サブ画面で設定したファイルを読み込むという事をしたいのですが、無理なのでしょうか?
よろしくお願いいたします。
すみません。
サブ画面ではファイルパスの設定だけ。
メイン画面ではじめて、サブ画面で設定したファイルを読み込むという事をしたいのですが、無理なのでしょうか?
よろしくお願いいたします。
376デフォルトの名無しさん (アメ MMaf-2/bE [218.225.232.80])
2020/12/05(土) 20:51:52.66ID:uqDUGTNRM > セキュリティの問題で取りにくいのは知ってます。
ぜんぜん知ってない。知ったかするな。
取り「にくい」だけで頑張れば取れるのなら何のセキュリティ対策にもならないだろ。
ぜんぜん知ってない。知ったかするな。
取り「にくい」だけで頑張れば取れるのなら何のセキュリティ対策にもならないだろ。
377デフォルトの名無しさん (ワッチョイ 47da-6Pbp [153.144.243.166])
2020/12/05(土) 21:00:16.20ID:BzIEWbaf0 フルパスがあればローカルファイルが読める環境というのがよくわからんがそれならElectronとか使えばいいんでねよくわからんが
378デフォルトの名無しさん (ワッチョイ fb2c-XXx1 [114.144.98.145])
2020/12/05(土) 21:12:05.00ID:3OUqO/Qz0 ブラウザ内のHTML から、ローカルPC 内の情報が取れるのか?
Node.js みたいなサーバーを立てていないと無理なのでは?
Electron も内部で、Node.jsを使っているし
Node.js みたいなサーバーを立てていないと無理なのでは?
Electron も内部で、Node.jsを使っているし
379367 (スップ Sdbf-sakO [1.75.0.54])
2020/12/05(土) 21:32:44.16ID:wSoVmOU1d >>376
すみません。出来ないんですね。
設計者はサブ画面でファイル選択ダイアログを使用してexcelファイルを選択して、メイン画面でexcelファイルを取り込む事をやりたいんでしょうが、無理なんですね。設計者に言います。
それにしても、
POI技術で
https://blog.java-reference.com/poi-read-excel/
最初に
is = new FileInputStream("D:sample.xlsx");
パスを指定してますが、これは一般的には固定のローカルファイルパスを指定するもんなんですね。
>>377
ありがとうございます。調べてみます。
すみません。出来ないんですね。
設計者はサブ画面でファイル選択ダイアログを使用してexcelファイルを選択して、メイン画面でexcelファイルを取り込む事をやりたいんでしょうが、無理なんですね。設計者に言います。
それにしても、
POI技術で
https://blog.java-reference.com/poi-read-excel/
最初に
is = new FileInputStream("D:sample.xlsx");
パスを指定してますが、これは一般的には固定のローカルファイルパスを指定するもんなんですね。
>>377
ありがとうございます。調べてみます。
380デフォルトの名無しさん (ワッチョイ 4f61-ysoX [114.167.47.202])
2020/12/05(土) 21:36:30.80ID:r/OmkE6S0 javascriptじゃないじゃん
381デフォルトの名無しさん (ワッチョイ 47f2-oX+r [153.232.6.174])
2020/12/05(土) 21:37:30.98ID:ryDIbbB50382デフォルトの名無しさん (ワッチョイ 6f01-/AfY [126.3.33.117])
2020/12/05(土) 23:22:08.87ID:7XRe2Ndx0 >>374
ファイル内容読むのにフルパスは必要ない
>>375
フルパスを受け渡す必要はない
ファイル内容を渡せばいい
https://developer.mozilla.org/ja/docs/Web/API/Window/postMessage
ファイル内容読むのにフルパスは必要ない
>>375
フルパスを受け渡す必要はない
ファイル内容を渡せばいい
https://developer.mozilla.org/ja/docs/Web/API/Window/postMessage
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 生活保護の受給額ってなんでこんなに安いの?
- お前らは“スカイマイルタワー”建設計画を知っているか?
- これ誰か分かるか?
- 支払い詰まってインターネット止まった
- 万引きJC「すいません許してください!何でもしますから!」←どうする?
