JavaScript を自ら学ぶ人のための質問スレッドです。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
前スレ
+ JavaScript の質問用スレッド vol.125 +
https://mevius.5ch.net/test/read.cgi/tech/1518940081/
(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)
探検
+ JavaScript の質問用スレッド vol.126 +
レス数が950を超えています。1000を超えると書き込みができなくなります。
2018/06/02(土) 14:31:23.04ID:B1JKBGEy
887デフォルトの名無しさん
2019/01/20(日) 00:37:29.30ID:62lK6b9v const double = n => n * 2;
[1, 2, 3].map(double);
//=> [2, 4, 6]
ワロタwww
>>886によるとこのdoubleは関数じゃないらしいw
double(1)みたいな呼び出しじゃないからだってwwwww
[1, 2, 3].map(double);
//=> [2, 4, 6]
ワロタwww
>>886によるとこのdoubleは関数じゃないらしいw
double(1)みたいな呼び出しじゃないからだってwwwww
888デフォルトの名無しさん
2019/01/20(日) 00:42:24.82ID:62lK6b9v class Hoge {
constructor(x) {
this.x = x;
}
}
console.log(typeof Hoge);
//=> function
> Hogeのどこが関数なの?
wwwww
constructor(x) {
this.x = x;
}
}
console.log(typeof Hoge);
//=> function
> Hogeのどこが関数なの?
wwwww
889デフォルトの名無しさん
2019/01/20(日) 01:16:35.87ID:U54SgNBZ >>888
お前はこの意味がわかってないんだな
> 関数形式で呼ばれたか、コンストラクタとして呼ばれたかで分けるってことだよ
list.map(Hoge) のHogeは
関数形式で呼ばれたか、コンストラクタとして呼ばれたか
どっちか言ってみ
お前はこの意味がわかってないんだな
> 関数形式で呼ばれたか、コンストラクタとして呼ばれたかで分けるってことだよ
list.map(Hoge) のHogeは
関数形式で呼ばれたか、コンストラクタとして呼ばれたか
どっちか言ってみ
890デフォルトの名無しさん
2019/01/20(日) 01:58:00.54ID:62lK6b9v そんな雑魚レス見てないし関係ない。
> 関数っていうのはHoge()ってやらないといけないんだよ?
これは恥ずかしい誤りwww
反例
[1, 2, 3].forEach(console.log)
> 関数っていうのはHoge()ってやらないといけないんだよ?
これは恥ずかしい誤りwww
反例
[1, 2, 3].forEach(console.log)
891デフォルトの名無しさん
2019/01/20(日) 05:48:06.80ID:y/Svh0b0 spanやdivのクリックイベントを、buttonと同じ要素に出来ないでしょうか?
コンソールでイベントを確認すると、currentTargetが
divはHTMLParagraphElementで、buttonはHTMLButtonElementになっています。
CSSでdivタグをボタン風にしていることもあるので、
Javascript上でもボタン扱いしたいのですが、書き方次第で変更できるのでしょうか?
コンソールでイベントを確認すると、currentTargetが
divはHTMLParagraphElementで、buttonはHTMLButtonElementになっています。
CSSでdivタグをボタン風にしていることもあるので、
Javascript上でもボタン扱いしたいのですが、書き方次第で変更できるのでしょうか?
892デフォルトの名無しさん
2019/01/20(日) 07:49:29.85ID:U54SgNBZ >>890
なんだ?お前重箱の隅ばかりついて、
関数形式で呼ばれたか、コンストラクタとして呼ばれたかで分けても
元の質問者の希望である
list.map(Hoge) とはかけないってことに
まだ気づいてないのか?
なんだ?お前重箱の隅ばかりついて、
関数形式で呼ばれたか、コンストラクタとして呼ばれたかで分けても
元の質問者の希望である
list.map(Hoge) とはかけないってことに
まだ気づいてないのか?
893デフォルトの名無しさん
2019/01/20(日) 07:51:00.80ID:U54SgNBZ894デフォルトの名無しさん
2019/01/20(日) 09:12:39.85ID:fBsdchbe895デフォルトの名無しさん
2019/01/20(日) 10:08:42.25ID:U54SgNBZ >>891
> CSSでdivタグをボタン風にしていることもあるので、
> Javascript上でもボタン扱いしたいのですが、書き方次第で変更できるのでしょうか?
そもそもdivタグをボタンにするのが間違い。
そこにクリックできるボタンがあるのなら、ボタンで作るのが正しい
見た目はCSSで変える。何がほしいか?ボタンがほしいならボタンを使う。それだけのこと
> CSSでdivタグをボタン風にしていることもあるので、
> Javascript上でもボタン扱いしたいのですが、書き方次第で変更できるのでしょうか?
そもそもdivタグをボタンにするのが間違い。
そこにクリックできるボタンがあるのなら、ボタンで作るのが正しい
見た目はCSSで変える。何がほしいか?ボタンがほしいならボタンを使う。それだけのこと
896デフォルトの名無しさん
2019/01/20(日) 10:15:54.36ID:z7e/RJqb897デフォルトの名無しさん
2019/01/20(日) 12:26:13.71ID:CrxCXx63 >>896
ボタンにa要素はお勧めしない
ボタンにa要素はお勧めしない
898デフォルトの名無しさん
2019/01/20(日) 15:35:58.63ID:pkTQkmr2 >divはHTMLParagraphElementで、buttonはHTMLButtonElementになっています
多分どちらも、HTMLElement から派生したクラスじゃないの?
Vue.js では、ルーター用のリンクを、<a> タグ以外にも変えられる
<router-link to="/foo" tag="li">foo</router-link>
<!-- 以下のように描画されます -->
<li>foo</li>
tag="button" で、ボタンにもできる
多分どちらも、HTMLElement から派生したクラスじゃないの?
Vue.js では、ルーター用のリンクを、<a> タグ以外にも変えられる
<router-link to="/foo" tag="li">foo</router-link>
<!-- 以下のように描画されます -->
<li>foo</li>
tag="button" で、ボタンにもできる
899デフォルトの名無しさん
2019/01/20(日) 23:43:12.79ID:y/Svh0b0 >>893-894
そういうことではなく、divをクリックしたら
Javascript的に「これはボタン要素です」って認識させたいんです。
>>895-896
確かにそうなんですが、UIとかボタンじゃないほうが良い場合が多々あるんです。
でもデザイン的にボタン風が良いので、spanやdivで代用します。(よく利用されています
<a href="javascript::void(0);" class="button">ボタン</a>で、a要素をボタンにもできますが、
aは使いにくいんですよね。やっぱりデザイン的に使いたいだけなんで、spanかdivなんです。
>>898
Vue.jsは知りませんが、イメージとしてはそういうことがしたいです。
HTML5とかJavascriptとかjQueryとかで可能なら一番なのですが・・・
そういうことではなく、divをクリックしたら
Javascript的に「これはボタン要素です」って認識させたいんです。
>>895-896
確かにそうなんですが、UIとかボタンじゃないほうが良い場合が多々あるんです。
でもデザイン的にボタン風が良いので、spanやdivで代用します。(よく利用されています
<a href="javascript::void(0);" class="button">ボタン</a>で、a要素をボタンにもできますが、
aは使いにくいんですよね。やっぱりデザイン的に使いたいだけなんで、spanかdivなんです。
>>898
Vue.jsは知りませんが、イメージとしてはそういうことがしたいです。
HTML5とかJavascriptとかjQueryとかで可能なら一番なのですが・・・
900デフォルトの名無しさん
2019/01/20(日) 23:53:43.09ID:enluc8/B そもそもJSにdivをbuttonとして誤認識させた後に何をしたいのかがよくわからないけど、どうしてもHTMLButtonElementにしたいってのが目的ならそういうコンバーターなり何なりを作るしかないんじゃないの
901デフォルトの名無しさん
2019/01/21(月) 00:11:05.42ID:oLr+arIk >>899
意味不明。初心者が馬鹿やろうとしてるとしか。
JavaScriptも24年の歴史があり、広く使われているのだから、
初心者が思いつくようなところで今更困ることはほぼ無い。
それはやり方を間違えているだけ。
多分CSSについて勉強した方がいい。
意味不明。初心者が馬鹿やろうとしてるとしか。
JavaScriptも24年の歴史があり、広く使われているのだから、
初心者が思いつくようなところで今更困ることはほぼ無い。
それはやり方を間違えているだけ。
多分CSSについて勉強した方がいい。
902デフォルトの名無しさん
2019/01/21(月) 00:55:24.42ID:DW5LJSe/ この世にIEという存在がなければそんな変なことは考えないのですが、
IEの利用者がまだいてbuttonのクリックイベントと、divのクリックイベントでは
差異があるので、なんとかしようと考えた次第です。
とりあえず「簡単にはできないし、まず無理」という結論であればそれを受け入れます。
IEの利用者がまだいてbuttonのクリックイベントと、divのクリックイベントでは
差異があるので、なんとかしようと考えた次第です。
とりあえず「簡単にはできないし、まず無理」という結論であればそれを受け入れます。
903デフォルトの名無しさん
2019/01/21(月) 01:12:29.24ID:oLr+arIk >>902
馬鹿乙
IEなんて大昔からあるだろ。
それが本当に必要なら、誰かが既に開発して、それこそjQueryにでも搭載されてるよ。
無い=要らない、ってことなんだよ。初心者ならやり方を間違ってるだけ。
馬鹿乙
IEなんて大昔からあるだろ。
それが本当に必要なら、誰かが既に開発して、それこそjQueryにでも搭載されてるよ。
無い=要らない、ってことなんだよ。初心者ならやり方を間違ってるだけ。
904デフォルトの名無しさん
2019/01/21(月) 01:17:37.84ID:WT3LElYg 挙動を統一したいならCanvasでやれ
そういうフレームワークも増えてきてる
そういうフレームワークも増えてきてる
905デフォルトの名無しさん
2019/01/21(月) 05:38:32.19ID:VYjLMLtx906デフォルトの名無しさん
2019/01/21(月) 07:58:41.38ID:vkfJXJ7K カード型みたいにボックスの中に画像、タイトル、アイコン、とかいろんな要素があって
そのカードがボタンの役割をしているならdivでもいいんじゃないの?
むしろbuttonタグの中にdivやらspanやら、iとかいろいろ要素ぶっ込むものなのかね?
そのカードがボタンの役割をしているならdivでもいいんじゃないの?
むしろbuttonタグの中にdivやらspanやら、iとかいろいろ要素ぶっ込むものなのかね?
907デフォルトの名無しさん
2019/01/21(月) 08:15:29.19ID:ubpSrO6v ieがdivのクリックイベントを拾わない…?
908デフォルトの名無しさん
2019/01/21(月) 08:30:56.83ID:8RTHI8s9 >>899
UIだけなら、CSSでボタンライクではないようにも変更できるわけでdiv要素を使う理由はない
UIだけなら、CSSでボタンライクではないようにも変更できるわけでdiv要素を使う理由はない
909デフォルトの名無しさん
2019/01/21(月) 09:28:46.72ID:63p0KSKR >>907
Enterキー押下時のclickイベント拾わない話じゃねーかとエスパーしてみる
それは他のブラウザでも同じなので、keydownイベント拾ってEnterキーだけ抽出してclickイベント時と同じ挙動をさせるしかないよね
shift/alt/meta/ctrlキー同時押しはもちろん排除するとしてさ
Enterキー押下時のclickイベント拾わない話じゃねーかとエスパーしてみる
それは他のブラウザでも同じなので、keydownイベント拾ってEnterキーだけ抽出してclickイベント時と同じ挙動をさせるしかないよね
shift/alt/meta/ctrlキー同時押しはもちろん排除するとしてさ
910デフォルトの名無しさん
2019/01/21(月) 12:48:28.69ID:DT8npDQe911デフォルトの名無しさん
2019/01/21(月) 14:19:25.15ID:PNnv4t9U javascriptでreplaceを用いた特定の文字の置換ができないです。
// サーバーからデータを受信したとき
function onReceive(data) {
let json = JSON.parse(data);
let messages = document.getElementById('chat');
let li = document.createElement('li');
if(json.text == 'おい'){
json.text = 'オイオイオイ'
}
// JSONから必要なデータを取り出して、テキストにする
li.innerHTML = json.count + ":" + "<span style='color:green'><big><b>ななしさん</b></big></span>" + "ID:" + socket.id + "<BR>" + json.text;
// 画面に要素を追加する
messages.appendChild(li);
}
これがソースコードの一部です。
このソースコードで、「おい」と打ったら「オイオイオイ」と返ってくるのですが、
「あいうおいえお」と打ったら「あいうおいえお」と返ってきます。
本当は「あいうオイオイオイえお」と返ってきてほしいです。
// サーバーからデータを受信したとき
function onReceive(data) {
let json = JSON.parse(data);
let messages = document.getElementById('chat');
let li = document.createElement('li');
if(json.text == 'おい'){
json.text = 'オイオイオイ'
}
// JSONから必要なデータを取り出して、テキストにする
li.innerHTML = json.count + ":" + "<span style='color:green'><big><b>ななしさん</b></big></span>" + "ID:" + socket.id + "<BR>" + json.text;
// 画面に要素を追加する
messages.appendChild(li);
}
これがソースコードの一部です。
このソースコードで、「おい」と打ったら「オイオイオイ」と返ってくるのですが、
「あいうおいえお」と打ったら「あいうおいえお」と返ってきます。
本当は「あいうオイオイオイえお」と返ってきてほしいです。
912デフォルトの名無しさん
2019/01/21(月) 14:23:43.50ID:DqxQvGU+ replace使ってないから
913デフォルトの名無しさん
2019/01/21(月) 14:27:21.86ID:PNnv4t9U if(json.text == 'おい'){
json.text = 'オイオイオイ'
}
上記の部分を
json.text.replace('おい','オイオイオイ')
にしたら何も表示されなくなってしまいました。
json.text = 'オイオイオイ'
}
上記の部分を
json.text.replace('おい','オイオイオイ')
にしたら何も表示されなくなってしまいました。
914デフォルトの名無しさん
2019/01/21(月) 14:31:42.02ID:DqxQvGU+915デフォルトの名無しさん
2019/01/21(月) 14:39:13.61ID:PNnv4t9U916デフォルトの名無しさん
2019/01/21(月) 14:40:34.76ID:PNnv4t9U917デフォルトの名無しさん
2019/01/21(月) 14:45:16.85ID:DqxQvGU+ replaceってヒントを貰ってるんだから、replaceについて調べればいいだけ
918デフォルトの名無しさん
2019/01/21(月) 16:01:51.07ID:PNnv4t9U919デフォルトの名無しさん
2019/01/21(月) 16:05:59.24ID:DqxQvGU+ 無能ってすぐ人に答えを求めるよな
https://medaka.5ch.net/test/read.cgi/prog/1540885252/
やっぱり俺って有能なんだなあ
すぐ人に答えを求めたりしないしな
https://medaka.5ch.net/test/read.cgi/prog/1540885252/
やっぱり俺って有能なんだなあ
すぐ人に答えを求めたりしないしな
920デフォルトの名無しさん
2019/01/21(月) 17:34:06.91ID:UEk4ntQa # 詳しい人、知恵を貸してくれ。
div1 = document.createElement("div")、document.body.appendChild(div1)
として、div1 の style の position を absolute や fixed として、
style.top, style.left に座標を指定しても、以下のような affiliate がある場合、
newBox の margin の 100px と全く同じだけ、div1 の位置が下に下がってしまう。
仕様上は、position:absolute は、親要素であるところの body 要素の左上の点からの
相対位置で指定されるはずなのに、なぜだろう?
自分の理解では、以下の affiliate は、div1 などのもっとも年上の兄弟として
追加されるだけだから、div1 の位置には影響を与えないと思うんだが。
var func = function(){
var parent = document.getElementsByTagName("body")[0];
var newBox = document.createElement("div");
newBox.setAttribute('id', 'vdbanner');
newBox.setAttribute("style","display:block!important;position:relative!important;top:0!important;left:0!important;margin:100px 0 !important;padding:0!important;text-align:center!important;");
newBox.innerHTML = "広告内容";
parent.insertBefore(newBox, parent.firstChild);
}
try {
window.addEventListener("load", func, false);
}
catch(e) {
window.attachEvent("onload", func);
}
div1 = document.createElement("div")、document.body.appendChild(div1)
として、div1 の style の position を absolute や fixed として、
style.top, style.left に座標を指定しても、以下のような affiliate がある場合、
newBox の margin の 100px と全く同じだけ、div1 の位置が下に下がってしまう。
仕様上は、position:absolute は、親要素であるところの body 要素の左上の点からの
相対位置で指定されるはずなのに、なぜだろう?
自分の理解では、以下の affiliate は、div1 などのもっとも年上の兄弟として
追加されるだけだから、div1 の位置には影響を与えないと思うんだが。
var func = function(){
var parent = document.getElementsByTagName("body")[0];
var newBox = document.createElement("div");
newBox.setAttribute('id', 'vdbanner');
newBox.setAttribute("style","display:block!important;position:relative!important;top:0!important;left:0!important;margin:100px 0 !important;padding:0!important;text-align:center!important;");
newBox.innerHTML = "広告内容";
parent.insertBefore(newBox, parent.firstChild);
}
try {
window.addEventListener("load", func, false);
}
catch(e) {
window.attachEvent("onload", func);
}
921デフォルトの名無しさん
2019/01/21(月) 17:53:37.90ID:DqxQvGU+ 長ったらしいので翻訳。まずimportant;は使うな
#vdbanner {
display: block !important;
position: relative !important;
top: 0 !important;
left: 0 !important;
margin: 100px 0 !important;
padding: 0 !important;
text-align: center !important;
}
$(function() {
$("<div/>", {id: 'vdbanner', text: '広告内容'}).prependTo('body');
});
#vdbanner {
display: block !important;
position: relative !important;
top: 0 !important;
left: 0 !important;
margin: 100px 0 !important;
padding: 0 !important;
text-align: center !important;
}
$(function() {
$("<div/>", {id: 'vdbanner', text: '広告内容'}).prependTo('body');
});
922デフォルトの名無しさん
2019/01/21(月) 17:59:05.34ID:PNnv4t9U できたぞ、質問に答えられないバカ
var result = json.text
for(var i=0;i<json.text.length;i++){
if(json.text[i] == 'お' && json.text[i+1]=='い'){
var tagetString = json.text;
var reString = /おい/gi; // 複数を置換する時は"g"を、
// 大文字/小文字の区別をしない場合には"i"を指定します。
var repStrung = "オイオイオイ";
result = tagetString.replace(reString, repStrung);
}
}
じゃあな無能
var result = json.text
for(var i=0;i<json.text.length;i++){
if(json.text[i] == 'お' && json.text[i+1]=='い'){
var tagetString = json.text;
var reString = /おい/gi; // 複数を置換する時は"g"を、
// 大文字/小文字の区別をしない場合には"i"を指定します。
var repStrung = "オイオイオイ";
result = tagetString.replace(reString, repStrung);
}
}
じゃあな無能
923デフォルトの名無しさん
2019/01/21(月) 18:04:30.32ID:DqxQvGU+ 一行で書けるけど、じゃあなって言われたな。じゃあなwwww
924デフォルトの名無しさん
2019/01/21(月) 18:29:08.32ID:mEBdwP2z >>899
ボタン部分だけのクリックじゃなくて、
もう少し範囲を広くして、ボタンを含む、div で、クリックイベントを動作させたいのかね?
ボタン部分だけだと、範囲が狭くて、うまく押せない人がいるから
それと投稿者は、次に投稿する際に、名前欄に最初の投稿のレス番号を入れてくれ
ボタン部分だけのクリックじゃなくて、
もう少し範囲を広くして、ボタンを含む、div で、クリックイベントを動作させたいのかね?
ボタン部分だけだと、範囲が狭くて、うまく押せない人がいるから
それと投稿者は、次に投稿する際に、名前欄に最初の投稿のレス番号を入れてくれ
925デフォルトの名無しさん
2019/01/21(月) 18:34:04.07ID:mEBdwP2z926デフォルトの名無しさん
2019/01/21(月) 18:36:35.58ID:mEBdwP2z >>920
web の質問は、こちらの板ではなく、web制作管理板の方へ書き込んでください!
web の質問は、こちらの板ではなく、web制作管理板の方へ書き込んでください!
927デフォルトの名無しさん
2019/01/21(月) 18:37:59.67ID:/g0A2C06 >>922 は酷いコードだなあ
928デフォルトの名無しさん
2019/01/21(月) 18:53:53.44ID:UEk4ntQa929デフォルトの名無しさん
2019/01/21(月) 18:59:45.68ID:x6DE2oRu930デフォルトの名無しさん
2019/01/21(月) 19:03:58.42ID:UOzXXkDM >>922
var result = json.text.replace('おい', 'オイオイオイ')
var result = json.text.replace('おい', 'オイオイオイ')
931デフォルトの名無しさん
2019/01/21(月) 22:12:37.48ID:XPYcyOEd >>930
それを複数個作るとエラーが出るんです。
それを複数個作るとエラーが出るんです。
932デフォルトの名無しさん
2019/01/21(月) 22:20:46.95ID:UOzXXkDM >>931
var result = json.text.replace(/おい/g, 'オイオイオイ')
var result = json.text.replace(/おい/g, 'オイオイオイ')
933デフォルトの名無しさん
2019/01/21(月) 23:50:10.62ID:30QJt/vt ES6で新たに導入された式や文は
ES5.1の構文糖衣と考えて良いの?
ES5.1の構文糖衣と考えて良いの?
934デフォルトの名無しさん
2019/01/21(月) 23:51:40.65ID:DqxQvGU+ 「ES5.1の構文糖衣」という表現がおかしい
935デフォルトの名無しさん
2019/01/22(火) 06:53:00.52ID:dHPHLM6Z Class構文は再現できないので糖衣構文ではない
936デフォルトの名無しさん
2019/01/22(火) 09:26:06.80ID:QhWv4dIw >>935
> ECMAScript 2015 で導入された JavaScript クラスは、
> JavaScript にすでにあるプロトタイプベース継承の糖衣構文です。
> クラス構文は、新しいオブジェクト指向継承モデルを JavaScript に導入しているわけではありません。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes
> ECMAScript 2015 で導入された JavaScript クラスは、
> JavaScript にすでにあるプロトタイプベース継承の糖衣構文です。
> クラス構文は、新しいオブジェクト指向継承モデルを JavaScript に導入しているわけではありません。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes
937デフォルトの名無しさん
2019/01/22(火) 09:32:15.42ID:zKxMKaTe クラス構文だと関数で呼べないから違うものを導入してるよね
938デフォルトの名無しさん
2019/01/22(火) 10:20:50.82ID:SJtsjRub 糖衣構文かどうかにこだわるのってなんでだろう?
マウント取りたいだけな気がする
マウント取りたいだけな気がする
939デフォルトの名無しさん
2019/01/22(火) 12:50:28.60ID:RZTSN9tm940デフォルトの名無しさん
2019/01/22(火) 14:53:55.47ID:SJtsjRub なんかそもそも糖衣構文という言葉をわかってないやつがいるみたいだ
糖衣構文の条件
× ECMAScript 2015で書いたのと同等のことを、ES5で(複雑に)書けること
○ ES5で書いたのと同等のことを、ECMAScript 2015で(シンプルに)書けること
>>939
お前変換の向きが逆
糖衣構文の条件
× ECMAScript 2015で書いたのと同等のことを、ES5で(複雑に)書けること
○ ES5で書いたのと同等のことを、ECMAScript 2015で(シンプルに)書けること
>>939
お前変換の向きが逆
941デフォルトの名無しさん
2019/01/22(火) 15:28:28.10ID:RZTSN9tm それは絶対に違うね
新しい構文というのは問題を新しく解決する為に入れられるわけで
古いコードで書いてたコードがシンプルに書けるようになるものでない方が珍しい
そんな事を語っても仕方がない
古いコードで再現できるかどうかの方が意味がある
新しい構文というのは問題を新しく解決する為に入れられるわけで
古いコードで書いてたコードがシンプルに書けるようになるものでない方が珍しい
そんな事を語っても仕方がない
古いコードで再現できるかどうかの方が意味がある
942デフォルトの名無しさん
2019/01/22(火) 16:20:43.54ID:SJtsjRub また意味不明な
新しい構文の中で従来では複雑な書き方だったものを
シンプルに書けるようにしたものを特別に糖衣構文とよぶんだろ
誰が新しい構文はすべて糖衣構文って言ったんだ?
誰も言ってないだろ
新しい構文の中で従来では複雑な書き方だったものを
シンプルに書けるようにしたものを特別に糖衣構文とよぶんだろ
誰が新しい構文はすべて糖衣構文って言ったんだ?
誰も言ってないだろ
943デフォルトの名無しさん
2019/01/22(火) 18:15:41.76ID:ADfWWjFL シンタックスシュガーがあるならシンタックスヌガーとかシンタックスハニーがあってもおかしくないよね
944デフォルトの名無しさん
2019/01/22(火) 18:31:09.00ID:bOf9tfZi シンタクティックシュガーな。
945デフォルトの名無しさん
2019/01/22(火) 19:07:04.65ID:dHPHLM6Z >>942
度合いの問題だ
「ほぼシンプルに書けるようにすることが目的で導入されたもの」を糖衣構文と呼ぶのは分かる
ほかの要素を無視できるという意味での「ほぼ」だ
そうするとそのほぼというのは例えば感覚で8割〜9割としよう
しかしClass構文でのその目的、重要度はせいぜい6〜7割だということを言ってる
Class構文は従来__proto__を使わないとできなかったスタティックとプロトタイプメソッド両方の継承ということができる
これが俺にとって重要度・構文価値の〜1/10
さらにnewTargetの存在によりビルトインクラスの継承ができるようになった
これが俺にとって重要度・構文価値の〜3/10
少なくともこういう要素はClass構文を語る上で無視できる存在ではないだろう?
そうすると一般にClass構文は糖衣構文ということはできないというのが俺の主張だ
なのでそう言いたいのならコンテキストを絞った上で言わなければいけない
今回の場合も、もし「ES6で新たに導入された式や文は ES5.1の構文糖衣と考えて良い」と答えると
そういうClass構文などの無視できない重要なポイントを気にしていない、
下手すると気にしなくていいという発言になってしまうだろう?
君はそこを取るに足らないポイントだと考えるから、そう言えるんだろうが、
俺は>>933にそこももっと知っておいてほしい、説明したいと思うんだよ
そういう違いさ
度合いの問題だ
「ほぼシンプルに書けるようにすることが目的で導入されたもの」を糖衣構文と呼ぶのは分かる
ほかの要素を無視できるという意味での「ほぼ」だ
そうするとそのほぼというのは例えば感覚で8割〜9割としよう
しかしClass構文でのその目的、重要度はせいぜい6〜7割だということを言ってる
Class構文は従来__proto__を使わないとできなかったスタティックとプロトタイプメソッド両方の継承ということができる
これが俺にとって重要度・構文価値の〜1/10
さらにnewTargetの存在によりビルトインクラスの継承ができるようになった
これが俺にとって重要度・構文価値の〜3/10
少なくともこういう要素はClass構文を語る上で無視できる存在ではないだろう?
そうすると一般にClass構文は糖衣構文ということはできないというのが俺の主張だ
なのでそう言いたいのならコンテキストを絞った上で言わなければいけない
今回の場合も、もし「ES6で新たに導入された式や文は ES5.1の構文糖衣と考えて良い」と答えると
そういうClass構文などの無視できない重要なポイントを気にしていない、
下手すると気にしなくていいという発言になってしまうだろう?
君はそこを取るに足らないポイントだと考えるから、そう言えるんだろうが、
俺は>>933にそこももっと知っておいてほしい、説明したいと思うんだよ
そういう違いさ
946デフォルトの名無しさん
2019/01/22(火) 19:14:29.74ID:yOIcAU/3947デフォルトの名無しさん
2019/01/22(火) 19:19:26.12ID:yOIcAU/3 そして+αの部分がclassでしか使えないのかといえばそうではなく
classを使わなくても、+αの機能は使えるから
やっぱりclassは糖衣構文
classを使わなくても、+αの機能は使えるから
やっぱりclassは糖衣構文
948デフォルトの名無しさん
2019/01/22(火) 19:33:50.03ID:dHPHLM6Z >>947
Class構文のES5で代替不可能な機能はES6の他のより基本的な機能で代替可能だから、
ES6も入れたら糖衣構文と言ってもいいよ
でも今回はそうじゃないから
ES6の機能が、従来のES5の機能の糖衣構文と言えるかという話だから
その辺り俺は言葉に慎重だが、君は適当
そういう違いさ
Class構文のES5で代替不可能な機能はES6の他のより基本的な機能で代替可能だから、
ES6も入れたら糖衣構文と言ってもいいよ
でも今回はそうじゃないから
ES6の機能が、従来のES5の機能の糖衣構文と言えるかという話だから
その辺り俺は言葉に慎重だが、君は適当
そういう違いさ
949デフォルトの名無しさん
2019/01/22(火) 19:34:52.68ID:hY3Lw6Bc 糖衣構文の反対はキムチ構文って呼ぶってことで
この話題終わりにしませんか?
この話題終わりにしませんか?
950デフォルトの名無しさん
2019/01/22(火) 19:38:42.19ID:dHPHLM6Z951デフォルトの名無しさん
2019/01/22(火) 19:41:39.36ID:ClMLgqLU 言葉に慎重なら糖衣構文っていう和訳も微妙
952デフォルトの名無しさん
2019/01/22(火) 19:54:31.00ID:bOf9tfZi 構文的砂糖
953デフォルトの名無しさん
2019/01/22(火) 20:06:22.32ID:YQBTnTrr954デフォルトの名無しさん
2019/01/22(火) 20:16:41.69ID:YQBTnTrr955デフォルトの名無しさん
2019/01/22(火) 22:05:19.77ID:4TOwjU0o 話変わるけどジェネレーターは糖衣構文じゃないよねさすがに。
956デフォルトの名無しさん
2019/01/22(火) 22:38:28.82ID:dHPHLM6Z >>953,954
意味不明なのはあんただ
俺は0.999だからNoとか0.001だからYesとか言うのは嫌いだし
そういう0か1かで糖衣構文「であるのかどうか」を話す気はない
たとえちょっと変な表現であろうと、今回の話の流れの上で糖衣構文「と呼んだほうが良いか」を
アナログ的に考えて、俺なりの想いを持って方が良い、悪いと話している
また俺はClass限定の話を始めたわけではない
わかりやすい一例としてまずClassでの事実を1つ挙げただけ
そこから質問者が食いつけばClass構文が入ることによる新たな可能性を話すつもりだったのに
変におかしな流れに誘導したのは君の方だよ
少なくとも俺は>>933を俺なりに解釈して話を始めた
そこで君が横から言葉の使い方がどうのこうのヤンヤン言って来ても知らんがなって感じ
君の脳内パーサではエラーが出たんだろうが、それをエラーですエラーですエラーですよって、うるさい目覚まし時計かって感じ
俺のゆるゆるパーサでは通ったんだから俺は話を進める、君は固まっとく、でいいじゃないか
俺までどうにかして止めようとする必要はない、俺はそういうのは嫌いだね
JSでも値をチェックして例外を吐くとかね
値をできるだけ加工したり用意の仕方を工夫して無効な値を極力作らないようにする方が俺は好きだ
ともかく君の定義ではそもそも話がおかしいのはおっしゃる通り
だからこそ俺はその定義は今回はそぐわないとしてるところに、わざわざその破綻する定義を持ってきて
ギーギーガーガーおかしいおかしい言われても しつこいポンコツ機械かよって感じ
まあそんな感じ
意味不明なのはあんただ
俺は0.999だからNoとか0.001だからYesとか言うのは嫌いだし
そういう0か1かで糖衣構文「であるのかどうか」を話す気はない
たとえちょっと変な表現であろうと、今回の話の流れの上で糖衣構文「と呼んだほうが良いか」を
アナログ的に考えて、俺なりの想いを持って方が良い、悪いと話している
また俺はClass限定の話を始めたわけではない
わかりやすい一例としてまずClassでの事実を1つ挙げただけ
そこから質問者が食いつけばClass構文が入ることによる新たな可能性を話すつもりだったのに
変におかしな流れに誘導したのは君の方だよ
少なくとも俺は>>933を俺なりに解釈して話を始めた
そこで君が横から言葉の使い方がどうのこうのヤンヤン言って来ても知らんがなって感じ
君の脳内パーサではエラーが出たんだろうが、それをエラーですエラーですエラーですよって、うるさい目覚まし時計かって感じ
俺のゆるゆるパーサでは通ったんだから俺は話を進める、君は固まっとく、でいいじゃないか
俺までどうにかして止めようとする必要はない、俺はそういうのは嫌いだね
JSでも値をチェックして例外を吐くとかね
値をできるだけ加工したり用意の仕方を工夫して無効な値を極力作らないようにする方が俺は好きだ
ともかく君の定義ではそもそも話がおかしいのはおっしゃる通り
だからこそ俺はその定義は今回はそぐわないとしてるところに、わざわざその破綻する定義を持ってきて
ギーギーガーガーおかしいおかしい言われても しつこいポンコツ機械かよって感じ
まあそんな感じ
957デフォルトの名無しさん
2019/01/22(火) 23:13:06.23ID:YQBTnTrr958デフォルトの名無しさん
2019/01/22(火) 23:13:38.81ID:XoIF472X 頭イカれてるエンジニアによくある回答
959デフォルトの名無しさん
2019/01/22(火) 23:25:49.01ID:k+Ga/jCN 糖衣構文+αじゃなくて、完璧に糖衣構文でしょ
糖衣構文+αだったら糖衣構文とは言わないよ
糖衣構文+αだったら糖衣構文とは言わないよ
960デフォルトの名無しさん
2019/01/22(火) 23:28:26.41ID:IcipLgKo 糖衣構文か否かの議論の果てにどんな結論があるんだろ
961デフォルトの名無しさん
2019/01/22(火) 23:30:12.08ID:Rn6qecVY >>959
同意
同意
962デフォルトの名無しさん
2019/01/22(火) 23:46:44.98ID:5TeSwszl var flagA = false && true || true;
変数flagAがtrueとなるのは、
false && trueがfalseになって、
false || true
true
となるからだと思うのですが、
ひとつ目がfalseなのに何故ショートサーキット評価されないのでしょうか。
最初に末尾まで見てて、&&の後ろがひとつの論理式である時だけショートサーキット評価されるってことですか。
あと、
var flagB = true || false && false;
flagBがtrueになるのは何故ですか。
true || falseがtrueになって、
true && false
false
になると思うんですが。
変数flagAがtrueとなるのは、
false && trueがfalseになって、
false || true
true
となるからだと思うのですが、
ひとつ目がfalseなのに何故ショートサーキット評価されないのでしょうか。
最初に末尾まで見てて、&&の後ろがひとつの論理式である時だけショートサーキット評価されるってことですか。
あと、
var flagB = true || false && false;
flagBがtrueになるのは何故ですか。
true || falseがtrueになって、
true && false
false
になると思うんですが。
963デフォルトの名無しさん
2019/01/23(水) 00:10:25.21ID:djVGMpuO >>959
いうだろ?
ES5で書いたものをclassで完璧に書けるんだぜ?
追加効果があったとしても関係ないだろ
それにそもそも糖衣構文って完全に同じものを
実現しなくてはいけないなんて制限はないんだが?
ほぼすべての糖衣構文はある機能に特化することでより便利にしているが
その反面あるきのう以外のことができなくなってる
他のどんなものが糖衣構文と呼ばれてるか考えてみなよ
糖衣構文という言葉に惑わされてるだけだろ
いうだろ?
ES5で書いたものをclassで完璧に書けるんだぜ?
追加効果があったとしても関係ないだろ
それにそもそも糖衣構文って完全に同じものを
実現しなくてはいけないなんて制限はないんだが?
ほぼすべての糖衣構文はある機能に特化することでより便利にしているが
その反面あるきのう以外のことができなくなってる
他のどんなものが糖衣構文と呼ばれてるか考えてみなよ
糖衣構文という言葉に惑わされてるだけだろ
964デフォルトの名無しさん
2019/01/23(水) 00:11:52.34ID:djVGMpuO965デフォルトの名無しさん
2019/01/23(水) 00:18:30.88ID:eDsfqelL >>962
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
論理積と論理和では論理積の方が優先度が高く、短絡評価は論理積と論理和それぞれの評価について行われる
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
論理積と論理和では論理積の方が優先度が高く、短絡評価は論理積と論理和それぞれの評価について行われる
966デフォルトの名無しさん
2019/01/23(水) 00:18:39.97ID:djVGMpuO 一つ例を出してやる
C言語でswitch〜caseはifの糖衣構文と呼ばれているが、
ifでやれることのすべてをswitch〜caseでやれるわけじゃない
switch(a) ← 変数aとの比較限定になっている
この点においてswitchはifの制限版
また逆にswitch〜caseのfall throughはifでは実現できない
この点において、switchは糖衣構文+αの機能を持っていると言える
C言語でswitch〜caseはifの糖衣構文と呼ばれているが、
ifでやれることのすべてをswitch〜caseでやれるわけじゃない
switch(a) ← 変数aとの比較限定になっている
この点においてswitchはifの制限版
また逆にswitch〜caseのfall throughはifでは実現できない
この点において、switchは糖衣構文+αの機能を持っていると言える
967デフォルトの名無しさん
2019/01/23(水) 00:20:16.03ID:NPxQuWhQ >>962
ショートサーキットしてる
false && true || trueの二番目のtrueは評価されない
それと後者の答えは優先順位が違うから
&& は||より先に評価される
四則演算でいうと||が足し算で&&はかけ算
ショートサーキットしてる
false && true || trueの二番目のtrueは評価されない
それと後者の答えは優先順位が違うから
&& は||より先に評価される
四則演算でいうと||が足し算で&&はかけ算
969デフォルトの名無しさん
2019/01/23(水) 00:59:58.12ID:GUcVvLjn QZは馬鹿だから無視でおk
「車は右側を走れるか」みたいな話は余計脱線するだけ
「車は右側を走れるか」みたいな話は余計脱線するだけ
970デフォルトの名無しさん
2019/01/23(水) 01:06:50.82ID:djVGMpuO ふむ。まあ要するにES6の機能をES5で実現できれば糖衣構文。
実現できなければ糖衣構文ではない。という定義は
完全に間違っているってことだな
実現できなければ糖衣構文ではない。という定義は
完全に間違っているってことだな
971デフォルトの名無しさん
2019/01/23(水) 01:08:18.69ID:GUcVvLjn972デフォルトの名無しさん
2019/01/23(水) 13:27:42.36ID:1r6euYxZ せっかちなのは君の好きにすればいいけど
勝手に思い込んで突っ走って人に迷惑かけて……
もうクズの見本みたいな振る舞いしてる事に気が付いたほうがいいよ
勿体ないよ
勝手に思い込んで突っ走って人に迷惑かけて……
もうクズの見本みたいな振る舞いしてる事に気が付いたほうがいいよ
勿体ないよ
973デフォルトの名無しさん
2019/01/23(水) 19:36:29.61ID:djVGMpuO 特に言い返すことは無いようで
974デフォルトの名無しさん
2019/01/24(木) 20:07:28.47ID:iWJQcTkX const foo = [1, 3, 5, 7, 9];
const bar = [3];
console.log(foo[bar]); // 7
このコードの意味がよくわかりません
状況からしてbar[0]の3を自動で取り出してfooの添え字にしてるように見えますが、そんな意味不明な動きしますか?
Cでいう*barみたいに配列の先頭アドレスから値を取り出してる??
const bar = [3];
console.log(foo[bar]); // 7
このコードの意味がよくわかりません
状況からしてbar[0]の3を自動で取り出してfooの添え字にしてるように見えますが、そんな意味不明な動きしますか?
Cでいう*barみたいに配列の先頭アドレスから値を取り出してる??
975デフォルトの名無しさん
2019/01/24(木) 20:18:20.31ID:x2HCgLhu976デフォルトの名無しさん
2019/01/24(木) 20:28:18.18ID:iWJQcTkX >>975
すみません、業務で見たコードで、実際にはfoo相当の配列はオブジェクトの配列でした
先のコードは自分で実験用に動かしたコードです
なるほど、添え字に配列変数を指定すると、toStringメソッドが走る
配列変数のtoStringメソッドは角括弧なしで中身の要素をカンマつなぎする
なので要素が数字かつ1つしかなければ、その数字を添字にしたのと同じことになる、ということでしょうか
すみません、業務で見たコードで、実際にはfoo相当の配列はオブジェクトの配列でした
先のコードは自分で実験用に動かしたコードです
なるほど、添え字に配列変数を指定すると、toStringメソッドが走る
配列変数のtoStringメソッドは角括弧なしで中身の要素をカンマつなぎする
なので要素が数字かつ1つしかなければ、その数字を添字にしたのと同じことになる、ということでしょうか
977デフォルトの名無しさん
2019/01/24(木) 20:43:27.11ID:x2HCgLhu >>976
概ねその通りだが、俺は
> 配列変数のtoStringメソッドは角括弧なしで中身の要素をカンマつなぎする
これが仕様なのか環境依存なのかは知らんよ。
いずれにしても、「配列を添字として使う」事自体があり得ないだろ。
糞コードだし、修正すべきだよ。
動いているからバグとして検出されず、結果的に修正漏れになっている、ということかな。
なおその手の詳細な挙動を知りたければ、仕様書を読むしかない。
JavaScriptの仕様書は他言語で言う仕様書ではなく、実装指示書(詳細設計書)といった方が正しい。
だからオグジェクトの配列のアクセスの仕方(セマンティクス)がいちいち細かく書いてある。
その中で原則的には全てtoStringされていたはずなので、結果的にはそういう挙動になる。
つまり、
× > 添え字に配列変数を指定すると、toStringメソッドが走る
○ 添え字は何であれ全てtoStringされる
だったはず。気になるなら仕様書を確認して。
概ねその通りだが、俺は
> 配列変数のtoStringメソッドは角括弧なしで中身の要素をカンマつなぎする
これが仕様なのか環境依存なのかは知らんよ。
いずれにしても、「配列を添字として使う」事自体があり得ないだろ。
糞コードだし、修正すべきだよ。
動いているからバグとして検出されず、結果的に修正漏れになっている、ということかな。
なおその手の詳細な挙動を知りたければ、仕様書を読むしかない。
JavaScriptの仕様書は他言語で言う仕様書ではなく、実装指示書(詳細設計書)といった方が正しい。
だからオグジェクトの配列のアクセスの仕方(セマンティクス)がいちいち細かく書いてある。
その中で原則的には全てtoStringされていたはずなので、結果的にはそういう挙動になる。
つまり、
× > 添え字に配列変数を指定すると、toStringメソッドが走る
○ 添え字は何であれ全てtoStringされる
だったはず。気になるなら仕様書を確認して。
978デフォルトの名無しさん
2019/01/24(木) 20:48:20.57ID:x2HCgLhu × オグジェクトの配列の
○ オグジェクトや配列の
読める範囲ではあるが、若干混乱するかもしれないので念のため。
○ オグジェクトや配列の
読める範囲ではあるが、若干混乱するかもしれないので念のため。
979デフォルトの名無しさん
2019/01/24(木) 20:48:26.62ID:iWJQcTkX980デフォルトの名無しさん
2019/01/24(木) 21:44:28.43ID:iDh5zyV0 オグジェクトを訂正するのかと思った
981デフォルトの名無しさん
2019/01/25(金) 06:27:54.21ID:i+3XWQgy 別にこの程度非難轟々するほどのコードじゃないだろう
暗黙の型変換がたった1回働いてるだけでしかないのだし
添字は必ずシンボルか文字列として評価されるってことも常識として知っておかないといけないこと
この程度にそんなに目くじらを立ててたらJSが読み書きしにくくなるというか
JSは避けてRustで書いてWasmにするとかした方が良いと思う
暗黙の型変換がたった1回働いてるだけでしかないのだし
添字は必ずシンボルか文字列として評価されるってことも常識として知っておかないといけないこと
この程度にそんなに目くじらを立ててたらJSが読み書きしにくくなるというか
JSは避けてRustで書いてWasmにするとかした方が良いと思う
982デフォルトの名無しさん
2019/01/25(金) 11:52:33.10ID:t0q3jFj9 普通にボロカスに言われるコードだと思う
983デフォルトの名無しさん
2019/01/25(金) 13:15:39.10ID:cZ2z9LwS でも文字列を引数にとる既存の関数をタグ付きテンプレートとして呼び出せるのって['foo']が'foo'に変換される仕様のお陰なんだよなぁ
'hogefugapiyo'.split('fuga').join('hage');
↓
'hogefugapiyo'.split`fuga`.join`hage`
意味のないコードだけどあくまで例として。
'hogefugapiyo'.split('fuga').join('hage');
↓
'hogefugapiyo'.split`fuga`.join`hage`
意味のないコードだけどあくまで例として。
984デフォルトの名無しさん
2019/01/25(金) 13:52:06.04ID:dvigx+iy foo = [ 1, 3, 5, 7, 9 ];
bar = [ 3 ];
p foo[ bar ]
Ruby では、エラーになる。
配列から整数への、暗黙の型変換はできない
やっぱり、JS は、バグる。
怖い
bar = [ 3 ];
p foo[ bar ]
Ruby では、エラーになる。
配列から整数への、暗黙の型変換はできない
やっぱり、JS は、バグる。
怖い
985デフォルトの名無しさん
2019/01/25(金) 14:53:54.07ID:UUOT6d+j javascriptでいう関数ひとつ取ってもる〜ピぃは
def
ブロック
Proc.new
proc
lambda
->
用途に合わせてどれが使えどれが使えないのか、使える場合変換は必要かどうか、変換なしで使える場合も挙動がどう異なるのか(同じように使える場合もすこしづつ挙動が異なるからw)あっちとこっちは相互にどういう変換方法があったか、等しっかり考えて作るもんなww
さすがるっピ!www
def
ブロック
Proc.new
proc
lambda
->
用途に合わせてどれが使えどれが使えないのか、使える場合変換は必要かどうか、変換なしで使える場合も挙動がどう異なるのか(同じように使える場合もすこしづつ挙動が異なるからw)あっちとこっちは相互にどういう変換方法があったか、等しっかり考えて作るもんなww
さすがるっピ!www
986デフォルトの名無しさん
2019/01/25(金) 19:30:27.27ID:a/PpKsi/ >>981みたいな奴が普通に居るのがJavaScriptコミュニティが腐ってる証拠な。
プログラミングを知らない癖に出来ると勘違いした馬鹿が間違ったことを吹聴しすぎてて、
馬鹿が再生産されまくっている。
とはいえ問題点は981以外には分かっているようだし、この話はもういいが。
他言語出身者なら、当初参考にするのはMDNだけにして、
個人が俺ツエーしてるだけのブログ等は全部無視した方がいい。
他言語ではあり得ない確率で間違ってるから、無駄にはまることになる。
emscripten/WebAssemblyが本格稼働するかどうか俺は懐疑的ではあるが、
実際にそうなったときに馬鹿JSerが一斉粛清されるかどうかは見物ではある。
「動けばいい」という基準で書いている限り、「動けばいい」程度のコードしか書けるようにはならない。
しかしこれがJSerの大半なのもまた事実だ。
一般的に「良いコード」とされる物を書けるかどうかはプログラマの技量のみに依存し、
JavaScriptだからといって書けない事はない。
ただ、どちらかというとJSはC寄りで、どんな糞コードでも書けてしまう。
ただこれは、単にJSerの技量が足りないだけであって、推奨されているわけではないので注意のこと。
>>979は今後色々と実感することになるとは思う。
プログラミングを知らない癖に出来ると勘違いした馬鹿が間違ったことを吹聴しすぎてて、
馬鹿が再生産されまくっている。
とはいえ問題点は981以外には分かっているようだし、この話はもういいが。
他言語出身者なら、当初参考にするのはMDNだけにして、
個人が俺ツエーしてるだけのブログ等は全部無視した方がいい。
他言語ではあり得ない確率で間違ってるから、無駄にはまることになる。
emscripten/WebAssemblyが本格稼働するかどうか俺は懐疑的ではあるが、
実際にそうなったときに馬鹿JSerが一斉粛清されるかどうかは見物ではある。
「動けばいい」という基準で書いている限り、「動けばいい」程度のコードしか書けるようにはならない。
しかしこれがJSerの大半なのもまた事実だ。
一般的に「良いコード」とされる物を書けるかどうかはプログラマの技量のみに依存し、
JavaScriptだからといって書けない事はない。
ただ、どちらかというとJSはC寄りで、どんな糞コードでも書けてしまう。
ただこれは、単にJSerの技量が足りないだけであって、推奨されているわけではないので注意のこと。
>>979は今後色々と実感することになるとは思う。
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★2 [蚤の市★]
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 今のレス…まさか全力か?
- 不登校だけど今日の夜食はサッポロ一番の…
- 【朗報】かつやが明日から4日間感謝祭開催で200円引き!
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 千晴って働いてるの?
