質問するログイン新規登録

質問編集履歴

5

ベストアンサーの基準を説明

2019/12/20 00:57

投稿

makosankibu
makosankibu

スコア289

title CHANGED
File without changes
body CHANGED
@@ -63,4 +63,9 @@
63
63
  上記の動作するコードで`"use strict";` がない場合でもエラーにはなりませんでした。
64
64
  そもそもstrictモードはMDNを読んだ私の理解では、生コードより文法を厳しくチェックするものという理解であり、上記の`"use strict";`がある状態、ない状態で処理が分かれるということ自体にかなり疑問が残っています。
65
65
 
66
- 身勝手ではございますが、後学の為、ご教示願えますでしょうか。
66
+ 身勝手ではございますが、後学の為、ご教示願えますでしょうか。
67
+
68
+ 以下追記
69
+ Eggpanさんの指摘が根本的な記載を見つける手掛かりになったということでそちらをベストアンサー致します。
70
+ 詳しくはそちらのコメントをご覧ください。
71
+ 回答ありがとうございました。

4

回答への追記依頼

2019/12/20 00:57

投稿

makosankibu
makosankibu

スコア289

title CHANGED
File without changes
body CHANGED
@@ -52,4 +52,15 @@
52
52
  > ブラウザはまだ strict モードを確実に実装していないため、無条件に依存しないでください。strict モードは意味を変えます。それら変更点を当てにすると、strict モードを実装していないブラウザでミスやエラーが発生する可能性があります。
53
53
 
54
54
  この実装にするのは抵抗があります。
55
- 何かヒントになればと思い追記しました。
55
+ 何かヒントになればと思い追記しました。
56
+
57
+ 以下19/12/04 12:45追記
58
+ 実装はmaisumakunさん、yambejpさんのような実装でよいと理解しました。回答ありがとうございます。
59
+ しかしMDNにある
60
+ > strict モードは意味を変えます。
61
+
62
+ というのが引っ掛かります。iosではどのように意味が変わって正常に動作するようになったのでしょう?
63
+ 上記の動作するコードで`"use strict";` がない場合でもエラーにはなりませんでした。
64
+ そもそもstrictモードはMDNを読んだ私の理解では、生コードより文法を厳しくチェックするものという理解であり、上記の`"use strict";`がある状態、ない状態で処理が分かれるということ自体にかなり疑問が残っています。
65
+
66
+ 身勝手ではございますが、後学の為、ご教示願えますでしょうか。

3

回答へのヒントとして追記

2019/12/04 03:54

投稿

makosankibu
makosankibu

スコア289

title CHANGED
File without changes
body CHANGED
@@ -31,9 +31,10 @@
31
31
  });
32
32
  ```
33
33
 
34
- 上記としましても同じくiosで動作しませんでした
34
+ 上記としましても同じくiosで動作しませんでした
35
35
  また、
36
36
  ```javascript
37
+ "use strict"; /* 追記 */
37
38
  {
38
39
  let test = 99999;
39
40
  function testHoge() {
@@ -45,4 +46,10 @@
45
46
  }
46
47
  ```
47
48
 
48
- も動作しませんでした。
49
+ ~~も動作しませんでした。~~
50
+ `"use strict";`を追加すると上記でipadでも正常に動作するようになりました。
51
+ しかし、[MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Strict_mode)に下記とある通り、
52
+ > ブラウザはまだ strict モードを確実に実装していないため、無条件に依存しないでください。strict モードは意味を変えます。それら変更点を当てにすると、strict モードを実装していないブラウザでミスやエラーが発生する可能性があります。
53
+
54
+ この実装にするのは抵抗があります。
55
+ 何かヒントになればと思い追記しました。

2

問題解決のために調べたことを追記

2019/12/04 03:08

投稿

makosankibu
makosankibu

スコア289

title CHANGED
File without changes
body CHANGED
@@ -31,4 +31,18 @@
31
31
  });
32
32
  ```
33
33
 
34
- 上記としましても同じくiosで動作しませんでした。
34
+ 上記としましても同じくiosで動作しませんでした。
35
+ また、
36
+ ```javascript
37
+ {
38
+ let test = 99999;
39
+ function testHoge() {
40
+ alert(test);
41
+ }
42
+ $(function(){
43
+ testHoge();
44
+ });
45
+ }
46
+ ```
47
+
48
+ も動作しませんでした。

1

修正依頼に対してのレスポンス

2019/12/04 02:36

投稿

makosankibu
makosankibu

スコア289

title CHANGED
File without changes
body CHANGED
@@ -16,4 +16,19 @@
16
16
  alert内の変数testを文字リテラルに変更すると動作する為、恐らくiosでのletの扱いが他のOSと違うのではないと予想しているのですが、参考になる文献が見つかりません。
17
17
 
18
18
  letをvarに変更するしかないのでしょうか。
19
- それともiosでは特別な実装が必要なのでしょうか。ご教示のほど、よろしくお願いいたします
19
+ それともiosでは特別な実装が必要なのでしょうか。ご教示のほど、よろしくお願いいたします
20
+
21
+ 以下追記
22
+ ```javascript
23
+ {
24
+ let test = 99999;
25
+ function testHoge() {
26
+ alert(test);
27
+ };
28
+ }
29
+ $(function(){
30
+ testHoge();
31
+ });
32
+ ```
33
+
34
+ 上記としましても同じくiosで動作しませんでした。