JavaScriptのデータ型は、null、unknown、boolean、string、number、objectの6種類に分類されます。オブジェクトは参照型であり、他の5つの型は基本型またはプリミティブ型です。 typeof メソッドを使用して、何かがどのタイプに属しているかを出力できます。異なる型の変数を比較するには、まず型を変換する必要があります。これは、型変換と呼ばれます。型変換は、暗黙的な変換とも呼ばれます。暗黙的な変換は通常、演算子加算、減算、乗算、除算、等しい、より小さい、より大きいなどを使用して発生します。 。
typeof '11' //string typeof(11) //number '11' < 4 //false
基本型の変換
まず足し算、引き算、掛け算、割り算について話しましょう:
1.文字列数値を加算すると、数値は文字列に変換されます。
2. 数値から文字列を減算し、文字列を数値に変換します。文字列が純粋な数値でない場合は、NaN に変換されます。文字列から数値を除いた場合も同様です。 2 つの文字列を減算すると、最初にそれらの文字列が数値に変換されます。
3. 乗算、除算、より大きい、より小さい、および減算の変換にも同じことが当てはまります。
//隐式转换 + - * == / // + 10 + '20' //2010 // - 10 - '20' //-10 10 - 'one' //NaN 10 - '100a' //NaN // * 10*'20' //200 '10'*'20' //200 // / 20/'10' //2 '20'/'10' //2 '20'/'one' //NaN
別の == セットを見てみましょう。
1. 未定義は null に等しいです
2. 文字列と数値を比較する場合、文字列は数値に変換されます
3. 数値がブール値と比較される場合、ブール値は数値
に変換されます。 4. 文字列とブール値を比較すると、両方とも数値に変換されます
// == undefined == null; //true '0' == 0; //true,字符串转数字 0 == false; //true,布尔转数字 '0' == false; //true,两者转数字 null == false; //false undefined == false; //false
参照型変換
基本型間の比較は比較的簡単です。参照型と基本型の比較は比較的複雑です。まず、参照型を基本型に変換してから、上記の方法に従って比較する必要があります。ブール値に変換された参照型はすべて true になります。たとえば、空の array は、それが object である限り参照型であるため、 [] は true になります。参照型を数値または文字列に変換するには、valueOf() または toString() を使用します。オブジェクト自体は valuOf() および toString() を継承し、valueOf() および toString() をカスタマイズすることもできます。オブジェクトに応じて、継承された valueOf() を使用して文字列、数値、またはそれ自体に変換します。オブジェクトは toString を使用して文字列に変換する必要があります。一般オブジェクトはデフォルトで valueOf() を呼び出します。 1. オブジェクトを数値に変換する場合は、valueOf(); を呼び出します。
まず、次の例を見てください。数値に変換するには、valueOf() を呼び出します。この前の最初の呼び出しは toString(); なので、valueOf メソッドは次のようになります。したがって、上記の例 0 == [] は、より合理的な次のように変更する必要があります。いずれの場合も、[] は最終的に 0 に変換されます。
0 == []; // true, 0 == [].valueOf(); -> 0 == 0; '0' == []; // false, '0' == [].toString(); -> '0' == ''; 2 == ['2']; // true, 2 == ['2'].valueOf(); -> 2 == '2' -> 2 == 2; '2' == [2]; // true, '2' == [2].toString(); -> '2' =='2'; [] == ![]; //true, [].valueOf() == !Boolean([]) -> 0 == false -> 0 == 0;
カスタマイズされた valueOf() と toString();
1. カスタマイズされた valueOf() と toString() は両方とも存在し、デフォルトで valueOf() が呼び出されます;
2. toString() のみがある場合、 call toString();
var valueOf = function (){ var str = this.toString(); //先调用toString(),转成字符串 //... } 0 == []; // true, 0 == [].valueOf(); -> 0 == '0' -> 0 == 0;
valueOf() を削除すると toString() が呼び出されます。
rreee他のものに戻ったらどうなりますか?
var a = [1]; a.valueOf = function (){ return 1;} a.toString = function (){ return '1';} a + 1; // 2, valueOf()先调用
他のオブジェクトは、valueOf() を呼び出して異なる型に変換します。
var a = [1]; a.valueOf = function (){ return 1;} a.toString = function (){ return '1';} a + 1; // 2, 先调用valueOf() //去掉valueOf delete a.valueOf; a + 1; // '11', 调用toString()
参照型間の比較はメモリ アドレスの比較であり、暗黙的な変換は必要ありません。ここでは詳しく説明しません。
var a = [1]; a.valueOf = function (){return ;} a.toString = function (){return 1 ;}; 1 - a; //NaN明示的な変換
明示的な変換は比較的単純で、クラスをメソッドとして直接使用して直接変換できます。
var a = {}; a.valueOf(); //Object {} var a = []; a.valueOf(); //[] 自己本身 var a = new Date(); a.valueOf(); //1423812036234 数字 var a = new RegExp(); a.valueOf(); // /(?:)/ 正则对象
もっと簡単な変換方法があります。 りー
以上がJavaScript における暗黙的な型変換に関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
