この記事では、JavaScriptのデータ型を検出する方法について説明します。JavaScriptのデータ型を検出する方法を知らない方、またはJavaScriptのデータ型を検出する方法に興味がある方は、一緒に勉強しましょう。この記事を見てください。さて、ナンセンスはやめて本題に入りましょう。
その前に、js には 5 つの基本型と 1 つの複合型があることについて説明します
5 つの基本型: unknown、null、number、string、bollean
1 つの複合型: object
1.typeof
戻り値の型: string
は次のように検出されます:
/*5大基本类型*/ var a = 123; console.log(typeof a == "number"); //true var a = '123'; console.log(typeof a == "string"); //true var a = true; console.log(typeof a == "boolean"); //true var a = undefined; console.log(typeof a == "undefined"); //true var a = null; console.log(a == null); //true /*复杂类型*/ var a = function(){}; console.log(typeof a == "function"); //true
他の参照型オブジェクトの場合、typeofは検出および区別できず、日付型、正規表現型、など、何が検出されているかを区別することができません (検出するには以下の他のメソッドを使用してください)
typeof メソッド関数のカプセル化
function typeOf(obj){ return (obj === 'null') ? 'null' : (typeof obj) }
最後に、特別な NaN
console.log(typeof NaN === "number"); //true
2 を追加します。オブジェクトを検出します 別のオブジェクトのインスタンスですか
構文: object1 オブジェクト2のインスタンス
パラメータ: object1-オブジェクト、コンストラクター-別のオブジェクト上記の抽象的な言葉をどのように理解すればよいでしょうか?
言い換えれば、
コンストラクターオブジェクトのプロトタイプオブジェクトは、インスタンスオブジェクトのプロトタイプチェーンを通じてアクセスできます。これは、instanceofがオブジェクト自体の構造を気にしないことも示しています。オブジェクトとコンストラクターの関係のみを考慮します。 var a = new Date();
console.log(a instanceof Date); //true
console.log(a instanceof Object); //true
var a = new RegExp('123');
console.log(a instanceof RegExp); //true
console.log(a instanceof Object); //true
var a = function(){};
console.log(a instanceof Function); //true
console.log(a instanceof Object); //true
var a = [];
console.log(a instanceof Array); //true
console.log(a instanceof Object); //true
var a = {};
console.log(a instanceof Object); //true
ここでは、instanceof について詳しく知りたい場合は、ここをクリックして MDN ドキュメントを参照してください
3. コンストラクター属性
コンストラクター属性は、このオブジェクトを作成したコンストラクターへの参照を返します。
戻り値の型: オブジェクトここで注意すべき点は、通常作成するもの (var a = 1、var b = '123'... など) は、実際には対応するコンストラクターを参照することによって作成されるということです。これらは、目に見えるサーフェスではなく、タイプに対して直接作成されます。
各タイプのテスト方法は次のとおりです:
/*5大基本类型*/ var a = 123; console.log(a.constructor == Number); //true var a = '123'; console.log(a.constructor == String); //true var a = true; console.log(a.constructor == Boolean); //true var a = undefined; console.log(a && a.constructor); //undefined var a = null; console.log(a && a.constructor); //null /*复杂类型*/ var a = function(){}; console.log(a.constructor == Function); //true var a = new Date(); console.log(a.constructor == Date); //true var a = new Object(); console.log(a.constructor == Object); //true var a = {}; console.log(a.constructor == Object); //true var a = new Array(); console.log(a.constructor == Array); //true var a = []; console.log(a.constructor == Array); //true var a = new RegExp('abc'); console.log(a.constructor == RegExp); //true var a = /^abc$/; console.log(a.constructor == RegExp); //true
4.toString()メソッド
このメソッドは、オブジェクトのタイプを検出する最も安全かつ正確な方法です。
戻り値の型: String/*toString 检测类型函数*/
function toStringType(obj){
return Object.prototype.toString.call(obj).slice(8, -1);
}
/*5大基本类型*/
var a = 123;
console.log(toStringType(a)); //"Number"
var a = '123';
console.log(toStringType(a)); //"String"
var a = true;
console.log(toStringType(a)); //"Boolean"
var a = undefined;
console.log(toStringType(a)); //"Undefined"
var a = null;
console.log(toStringType(a)); //"Null"
/*复杂类型*/
var a = function(){};
console.log(toStringType(a)); //"Function"
var a = new Date();
console.log(toStringType(a)); //"Date"
var a = new Object();
console.log(toStringType(a)); //"Object"
var a = {};
console.log(toStringType(a)); //"Object"
var a = new Array();
console.log(toStringType(a)); //"Array"
var a = [];
console.log(toStringType(a)); //"Array"
var a = new RegExp('abc');
console.log(toStringType(a)); //"RegExp"
var a = /^abc$/;
console.log(toStringType(a)); //"RegExp"
返される文字列の大文字と小文字が面倒だと思う場合は、すべて小文字に変換することもできます
コードは次のとおりです:
function toStringType(obj){ return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase(); }
この時点で疑問があるかもしれません。
var a = 123; console.log(a.toString()); //"123"
1. このように書くと「123」が返されるのはなぜですか?
回答: js 内の各オブジェクトには独自の toString メソッドが事前定義されているため、toString を書き換えるのと似ています
2。なぜこの記事では call メソッドが使用されているのでしょうか。機能は何ですか?
3 に変更します。
var a = 123; console.log(Object.prototype.toString.call(a)); //"[Object Number]"
この例を通して、比較すると分かりますが、結果を直感的に理解するためのものです。
上記がこの記事のすべての内容です。あまり詳しくない場合は、両方をさらに実装することで簡単にマスターできます。
関連する推奨事項:
以上がJavaScriptにおけるデータ型検出方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

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

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

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

ホットトピック









