問題タブ [strict]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysqli - カスタム mysqli クラスに php 5.4 でエラーがありますか?
Web サーバーを php 5.4 にアップグレードしたところ、組み込みの mysqli から拡張されたデータベース クラスを使用するサイトでエラーが発生しています。エラーはクラスの最後の行にあり、エラーメッセージにもかかわらず、すべて正常に動作しています....
エラーメッセージ:
クラスは次のとおりです。
javascript - 「厳密に使用」と可変スコープを使用する
"use strict"
最近、スクリプトに使用し始めました。私が気づいた行動の1つは、これです。[name of variable]
オブジェクトに対しては機能しません。例えば:
その厳密なjsはもうそれを許可していないようです。なぜこれが削除されるのですか?不利な点はありますか?
file - ファイルがすぐに閉じられるようにする
小さなファイルから何かを読み取り、それを変更して、同じファイルに書き戻すデーモンを書いています。書き込んだ後、書き込もうとする前に、各ファイルがすぐに閉じられることを確認する必要があります。また、ファイルをすぐに再度読み取る場合があるため、書き込み後すぐに各ファイルが閉じていることを確認する必要もあります。
バイナリの代わりにbinary-strictを使用することを検討しましたが、厳密なGetのみを提供し、厳密なPutは提供しないようです。System.IO.Strictと同じ問題。そして、binary-strictのドキュメントを読んだことから、ファイルがすぐに閉じられるようにするという私の問題が本当に解決されるかどうかはわかりません。これを処理するための最良の方法は何ですか?DeepSeq?
これは、私のアプリケーションの構造のアイデアを与える非常に単純化された例です。この例はで終了します
明らかな理由で。
javascript - 厳密モードでオブジェクト プロパティを作成できません
厳密モードを使用すると、次のコードは機能しません。this.bar = 'foobar'; で失敗します。ライン。これはなぜですか?厳密モードでオブジェクト プロパティを作成するにはどうすればよいですか?
編集: 問題を指摘してくれた James Allardice に感謝します。自己実行関数がオブジェクトを作成していると誤って考えていましたが、そうではありません。代わりに、次のいずれかを行う必要がありました。
または(これはJSLintの方が好きです)
haskell - seq 関数と正格性
私はこれについて多くのことを考えてきましたが、それについて何も見つけることができませんでした。
関数を使用すると、実際seq
にどのように機能しますか? どこでも、 は を評価し、結果を破棄して を返すと説明されているだけです。seq a b
a
b
しかし、それは本当にどういう意味ですか?次の場合、厳密に評価されますか。
つまり、q
で使用される前に厳密に評価されbar
ますか? そして、以下は同等でしょうか:
この関数の機能の詳細を取得するのは少し難しいと思います。
javascript - JavaScript の厳密モードはどのように実装されていますか
アップデート:
おそらく、関数の呼び出し方法に問題があるので、次のようにします。
2 つの JS ファイル
Main.js: '(on)load' イベントのイベント リスナーを追加する自己呼び出し (厳密ではない) 関数。
コールバックは、location.pathname を解析するローダー関数を呼び出し、init 関数を呼び出し、'(on)load' リスナーをデタッチ/削除して、(明示的に) null を返します。
PageSpecific.js: _init 関数を含み、ボディにいくつかのイベント リスナーを追加します。
これらのリスナーのコールバック (クロージャーからも返される) の 1 つは、argument.callee を再帰の参照として使用する厳密な関数を呼び出します。
イベントハンドラーを返すクロージャーは、ブラウザーに応じて、または他のイベントをバインドおよびバインド解除しない場合がありますが、IE <9 で onchange イベントを模倣するため、ここでは関係ないと思います。
これがかなり明確であることを願ってい
ます。F => eventlistener
=> ハンドラー (名前付きだが anon F で宣言) => pageloader =>
init => クロージャー
によって返される eventListener バインディング関数
=> strict 関数を呼び出す
ちなみに、これは私が実際に使用している、呼び出された関数の縮小版です。_init
より具体的には、イベント リスナーとハンドラーをバインドするクロージャーです。それは私の長い質問のもう1つであり、誰も答えを知らないようです...ヒント;-)
かなり大きな (そして複雑な) JavaScript をデバッグしています。これを行う際に、厳密なモードを使用して正常に動作する関数があることに気付きましたが、間違っていなければエラーをスローする必要があります。スクリプトはかなり大きくて複雑なので (イベント委任、スタック クロージャなど)、簡単な例を次に示します。
私の実際のスクリプトでは、これは問題なく動作します。これを Firebug と chrome コンソールの両方に貼り付けると、エラーがスローされます。ここでこのコードを試したので、IE もエラーをスローするはずですが、IE のデバッガーでコードを実行すると、問題なく動作します。私が解決できる限り、doctype (html5 と html4 を試した) を変更しても違いはありません。
(ほとんどの) ブラウザーは、その'use strict';
名前が示すようにディレクティブに厳密ではないと考えているのは正しいですか? スクリプトの解析時にエラーの可能性が検出された場合、ブラウザはそれを無視することを選択しているようです。これは本当ですか?
その間、予防措置として、機能にわずかな変更を加えました。callee
ここで、厳密モードで参照を取得する方法を知りたがっている人々のかなりの数の質問を見たので、ここにも貼り付けます。
コールバックに名前を付けます。それだけです。
mamp - MAMP php5 の厳格な基準
mamp の php.ini で error_reporting を E_ALL & ~E_STRICT に設定しようとしています。
しかし、これはまったく影響を受けていません。E_NOTICE のような異なる error_reporting を設定して正しいファイルを編集していることを確認し、phpinfo をチェックして同じことを確認しました。
しかし、~E_STRICT だけは起こっていません。
私のcms(concrete5)にアクセスすると、厳密なエラーのリストが表示されます(最初のいくつかを以下に貼り付けます):
厳格な基準: 非静的メソッド Cache::key() は、www/concrete/libraries/cache.php の 117 行目で静的に呼び出されるべきではありません
厳格な基準: 非静的メソッド Cache::getLibrary() は、www/concrete/libraries/cache.php の 121 行目で静的に呼び出されるべきではありません
error_reporting を .htaccess および index.php ファイルで E_ALL & ~E_STRICT に設定しようとしました。どれも機能しませんでした。
解決策をお願いします。
cross-browser - IE9 を強制的に Internet Explorer 9 標準モードにすることはできますか
あるサイトを閲覧すると、IE9 が Quirks モードに設定されています。
ヘッダーのサイトを入れましたhttp-equiv="X-UA-Compatible" content="IE=edge,chrome=1
が、何も変わりません。
私のDoctypeは「Strict」です。
お願い助けて :(
c# - 未使用のノードを許可しないより厳密なXmlSerializer
SDKのxsd.exeツールを使用して、XSDに基づいてC#クラスを生成しました。次に、そのクラスを使用して、XmlSerializerを使用してオブジェクトを[逆]シリアル化できます...ただし、シリアライザーは非常に寛容なようです。
プロパティが欠落している場合や「奇妙な」XMLノードがある場合に、シリアライザーに例外をスローさせることはできますか?
1つの方法は、プロパティのセッターを変更してデータを検証する(またはXSD検証を使用する)ことだと思います...しかし、この問題に対する他の代替ソリューションはありますか?