問題タブ [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.
perl - エラーの代わりに「厳密な」警告を使用できます
perlを使用use strict
すると、安全でない構造でランタイムエラーが発生します。ランタイムエラーを発生させるのではなく、警告のみを出力させることができるかどうか疑問に思っていますか?またはuse warnings
(または-w)同じ問題について警告していますか?
arrays - 「strict」の使用中に発生するこのエラーを回避するにはどうすればよいですか?
use strict;
コメントアウトされている場合に機能する数行のコードがあります。ただし、1 つの小さなセクションのためだけに、スクリプト全体で無効にしたくありません。
再コーディングするか、何らかの方法でuse strict;
一時的に無効にしてから再度有効にする必要があります。最初のオプションはより現実的ですが、厳密モードで動作するようにコードを変更する方法がわかりません。
use strict;
有効
にすると:./return5.pl 行 49 で "strict refs" が使用されている間は、文字列 ("0") を ARRAY ref として使用できません。
(49行目: push @{ $ctc_rec[$i] }, $results[0];
)
use strict;
無効
の場合:
厳密モードが無効になっているかのように動作するように、このコードを書き直すにはどうすればよいですか? それが不可能な場合は、use strict;
一時的に無効にしてから、スクリプト内のこの短いコードに対して再度有効にすることができますか?
mysql - mysql の厳密モードをグローバルに有効にして、それを維持するにはどうすればよいですか?
MySQL の厳密モードをグローバルに有効にし、それを維持するにはどうすればよいですか?
これらのコマンドを試しました:
ただし、現在のセッションのモードのみを設定します。
c - 関数ポインタが原因で、スプリントの警告「ステートメントは効果がありません」
Splint (厳密モード) で C プログラムをチェックしようとしています。Splintが私のプログラムを理解できるように、ソース コードにセマンティック コメントで注釈を付けました。すべて問題ありませんでしたが、警告を取り除くことができません:
ステートメントは効果がありません (制約のない関数 my_function_pointer への呼び出しにより、影響を受けない変更が行われる可能性があります)。
ステートメントには目に見える効果はありません --- 値は変更されません。制約のない関数への呼び出しを通じて何かを変更する場合があります。(-noeffectuncon を使用して警告を禁止します)
これは、関数ポインタを介した関数呼び出しが原因です。私はフラグを使用しないことを好みますが、no-effect-uncon
それを修正するためにいくつかの注釈を書きます。typedef
そのため、適切な句で装飾しました@modifies
が、Splint はそれを完全に無視しているようです。問題は次のように縮小できます。
マニュアルを読んだのですが、関数ポインタとそのセマンティックアノテーションに関する情報があまりなく、何か間違ったことをしているのか、それともバグなのかわかりません (ちなみに、ここにはまだ記載されていません)。 : http://www.splint.org/bugs.html )。
ストリクト モードで Splint を使用して、このようなプログラムを正常にチェックできた人はいますか? Splintを幸せにする方法を見つけるのを手伝ってください:)
前もって感謝します。
更新 #1: splint-3.1.2 (Windows バージョン) では警告が表示されますが、splint-3.1.1 (Linux x86 バージョン) では警告が表示されません。
更新 #2: Splint は、割り当てと呼び出しが短いか長いかは気にしません。
更新 #3:警告を禁止することに興味はありません。簡単だ:
私が探しているのは、表現する正しい方法です:
「この関数ポインタは関数を指しているため
@modifies
、副作用があります」
html - Vim シンタックス ファイルを HTML シンタックスに関してより厳密にする
私はバグに少しかじられました
それよりも
html の vim の構文強調表示では、この 2 つが区別されないようです。どこかから取得できるより厳密な構文ファイルはありますか?
(そして嫌いな人のために:vimの質問はスーパーユーザーではなくstackoverflowに属します)
jquery - target="_blank" と同等の標準準拠
リンクを新しいウィンドウ/タブで開かなければならない場合があります。厳密な HTML で有効な方法はありますか? target="_blank"
jQuery を使用してこれを行うことは許容されますが、バリデーターがそれらを認識しないように、jQuery で s をこっそり戻すだけではありません。
javascript - JavaScript:厳密モードと無名関数
ほぼすべてのJSファイルが無名関数でラップされています。匿名関数の外部に含める場合"use strict";
でも、厳密モードは匿名関数に適用されますか?
たとえば、次のスクリプトの無名関数の内部に厳密モードが適用されています。
javascript - このキーワードを使用し、モジュール パターンを明らかにする厳密な違反
以下を取得してjslint/jshintを渡すのに問題があります
関数宣言での使用が原因であることは理解していますがthis
、クロックフォードが書いたものを読んだところ、違反はグローバル変数の汚染を防ぐためのものだと彼は言いました-しかし、ここで唯一のグローバル変数は私が明示的に定義しているものです... myModule
. 他のすべては即時関数スコープに保持されthis
、モジュールを参照するために使用できるはずです。
このパターンを通過させる方法はありますか?
更新:宣言の代わりに関数式を使用すると、これは機能するようです。
私はこのフォーマットのファンではありません. 正直なところ、これが違反をスローしている理由がわかりません。このパターンには理由がありません。
javascript - これにより、「厳格な使用」がグローバルに有効になりますか?
ECMAScript の "use strict" をグローバルに有効にする方法と似ていますが、同じではありません。
JavaScript パターンを購入しましたが、use strict を有効にすることを推奨しています。2ダースのJavaScriptファイルに追加するのは少し面倒なので、グローバルに有効にするといいでしょう. 私はもともと、次のように main.js の先頭に追加することを考えていました。
しかし、そのファイルに対してのみ有効になるのではないかと考えました。それから私はこれについて考えました:
これらのいずれかで ECMAScript 5 の厳密モードがグローバルに有効になりますか?
javascript - Javascript:「usestrict」の他に、他にどの「use」ディレクティブがありますか?
その上、他use strict
にどのuse
ディレクティブがありますか?