目次
JavaScript データ型は JavaScript における非常に重要な知識ポイントであり、皆様のお役に立てればと考えて、主に JavaScript データ型の詳細な説明を共有します。 " >JavaScript データ型は JavaScript における非常に重要な知識ポイントであり、皆様のお役に立てればと考えて、主に JavaScript データ型の詳細な説明を共有します。
1. JavaScript のデータ型 (重要) " >1. JavaScript のデータ型 (重要)
(1). 基本データ型 (値型とも呼ばれる) " >(1). 基本データ型 (値型とも呼ばれる)
(5)相关问题" >(5)相关问题
①.undefined与null的区别" >①.undefined与null的区别
②什么时候给变量赋值为null?" >②什么时候给变量赋值为null?
③严格区别变量类型与数据类型" >③严格区别变量类型与数据类型
二.数据类型转换(重要)" >二.数据类型转换(重要)
(1)强制转换" >(1)强制转换
(2) 自动转换(隐式转换)" >(2) 自动转换(隐式转换)
①其他数据转数字(Number)" >①其他数据转数字(Number)
②其他数据转字符串(String) " >②其他数据转字符串(String) 
③其他数据转布尔(Boolean)" >③其他数据转布尔(Boolean)
ホームページ ウェブフロントエンド jsチュートリアル JavaScriptのデータ型の詳しい説明

JavaScriptのデータ型の詳しい説明

Mar 17, 2018 pm 03:44 PM
javascript js 詳しい説明

JavaScript データ型は JavaScript における非常に重要な知識ポイントであり、皆様のお役に立てればと考えて、主に JavaScript データ型の詳細な説明を共有します。

1. JavaScript のデータ型 (重要)

(1). 基本データ型 (値型とも呼ばれる)

a.String 文字列:

機能: 二重引用符を使用する またはコンテンツを複数の一重引用符で囲みます。例: "123"; "Zhang San";
注: 一重引用符と二重引用符は文字として使用されます (' ''" ')、一重引用符は文字として使用されます (" '' ")。

b.数値 数値: 特徴: 1; 3.14; -1; 0; NaN; 正常な数値: 正の数値、負の数値: NaN
c. ブール値:
特徴: true と false の 2 つの値のみ 例: true; false;
d.Unknown 未定義:
特徴: 未定義の値は 1 つだけです。変数に値が割り当てられていない場合、デフォルト値は未定義です。例: var a;
e.Null 空のオブジェクト:
特徴: 型は Null と呼ばれますが、実際の型はオブジェクトです。これはガベージ コレクション メカニズムと関係があります。例: var a = null;

(2)。 参照データ型 (オブジェクト型とも呼ばれます)

は、オブジェクト型、配列型、関数型、データ型などです。特殊な配列および関数

JavaScript 参照データ型は、ヒープ メモリに格納されるオブジェクトです。 他の言語との違いは、ヒープメモリ空間上の場所に直接アクセスしてヒープメモリ空間を操作することができないことです。操作できるのはスタックメモリ上のオブジェクトの参照アドレスのみです。
つまり、スタックメモリに格納される参照型データは、実際にはヒープメモリ上のオブジェクトの参照アドレスになります。この参照アドレスを通じて、ヒープ メモリに保存されているオブジェクトをすぐに見つけることができます。
var obj1 = new Object();
var obj2 = obj1;
obj2.name = "I have a name";
console.log(obj1.name); // I have a name
これら 2 つの参照データを説明します。型は同じヒープ メモリ オブジェクトを指します。 obj1 は onj2 に割り当てられます。実際には、スタック メモリ内のこのヒープ メモリ オブジェクトの参照アドレスが obj2 にコピーされます。


(3)。

メモリの 2 つの基本構造を理解します: メモリはスタック領域とヒープ領域に分けることができます

スタック領域の特徴: 基本的なデータ型のデータと変数名を格納します ヒープ領域の特徴: 格納します。参照型データ型のデータ。


違い:
基本データ型のデータをコピーすると、コピーされたデータはメモリのスタック領域に新しいデータを複製し、新しいデータの新しいアドレスを新しい変数に関連付けます。

参照データ型のデータをコピーする場合、コピーされたデータはヒープ領域に再複製されず、元のデータのアドレスのみが新しい変数に複製されます。




(4) データ型を決定するには3つの方法があります(重要)

①識別子のtypeof

は、数値、文字列、ブール値、未定義、関数 区別できません: null とオブジェクト、一般オブジェクトと配列

例: var a;

console.log(typeof a); a の型を入力してください

または console.log(typeof a) == ="未定義"); true の場合、a は未定義です②instanceof

は、オブジェクト データの型を決定するために特別に使用されます: オブジェクト、配列、関数

③===
は、未定義と null を決定できます



次の点に注意してください: console.log(a===unknown) 引用符をエッジに追加することはできません。追加すると (console.log(a===“unknown”) はエラーを報告します)

<span style="font-size: 14px;">//1.基本类型<br/>var a;//定义变量没有赋值<br/>console.log(a,typeof a==="undefined",a===undefined);<br/>a=null;<br/>console.log(a,typeof a==="object",a===null);//null  true true<br/><br/>//2.对象类型<br/>/*<br/>obj是对象<br/>a1是数组同时也是对象类型  console.log是函数Function<br/>*/<br/>const obj={<br/>a1:[1,&#39;abc&#39;,true,console.log]<br/>}<br/><br/>console.log(obj instanceof Object);//true<br/>console.log(obj.a1 instanceof Object,obj.a1 instanceof Array);//true true<br/>console.log(obj.a1[3] instanceof Function,typeof obj.a1[3]===&#39;function&#39;);//true true<br/>obj.a1[3](&#39;123456&#39;);//console.log中log本身是一个属性值,是一个函数 所以可以输出值</span>
ログイン後にコピー

注: 疑似配列と実際の配列の違い

同じ性別: どちらもオブジェクト型です

異なるもの:

疑似配列: 長さ属性、数値添字属性 ([1]...[10] ])

疑似配列を呼び出すことはできますか? (foreach 属性など)

(5)相关问题

①.undefined与null的区别

undefined代表没有赋值

null代表赋值,只是值为null

<span style="font-size: 14px;">// 1.undefined的情况<br/>        //①定义变量没有赋值<br/>        var a;<br/>        console.log(a);//undefined<br/>        //②对象中不存在的属性<br/>        a={};<br/>        console.log(a.a);//undefined<br/>        //③函数没有指定返回值<br/>        function fn(){<br/>            //return<br/>        }<br/>        console.log(fn())//undefined<br/><br/>        //以下是null<br/>        a=null;<br/>        console.log(a);//null<br/>        a={<br/>            a:null<br/>        }<br/>        console.log(a.a);//null</span>
ログイン後にコピー

②什么时候给变量赋值为null?

a.初始时,准备保存对象的变量

b.结束时,让变量向的对象成为垃圾对象

<span style="font-size: 14px;">//a.初始时,准备保存对象的变量<br/>        var a=null;<br/>        //a=null后,后面做一些事情后产生数据<br/>        a={n:2,m:&#39;abc&#39;}<br/>        //b.结束时,让变量向的对象成为垃圾对象<br/>        a=null;//此时a的值不在是{n:2,m:&#39;abc&#39;},而是一个空,当然也可以用a=1,<br/>        //不过虽然覆盖{n:2,m:&#39;abc&#39;},但是却产生了数据1,所以这样就是不对,a=null,就不会产生数据了</span>
ログイン後にコピー

③严格区别变量类型与数据类型

js的变量本身是没有类型,变量的类型实际上是变量内存中的数据的类型
->变量类型:基本类型和引用类型
a.基本类型:保存基本类型数据的变量
b.引用类型:保存对象地址值的变量
->数据对象:
基本类型和对象类型(不严格来说对象类型就是引用类型)

 b={}//b是引用变量,内存中保存是对象内存的地址值
        console.log({} instanceof Object,b instanceof Object)//true true
ログイン後にコピー

二.数据类型转换(重要)

Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object。

注意:需要知道某些变量的数据类型,并将其转换为我们所需要的数据类型。通常,我们判断变量的数据类型会用到标识符typeof,如:

<span style="font-size: 14px;">var mood = "happy";<br/>alert(typeof  mood);</span>
ログイン後にコピー

通过标识符typeof,我们可以很快获取数据的类型;

(1)强制转换

①其他数据转换成数字:parseInt() 转换成整数,parseFloat()转换成浮点数

<span style="font-size: 14px;">var test = parseInt(“blue”); //returns NaN<br/>var test = parseInt(“1234blue”); //returns 1234<br/>var test = parseInt(“22.5”); //returns 22<br/>var test = parseFloat(“1234blue”); //returns 1234<br/>var test = parseFloat(“22.5”); //returns 22.5<br/></span>
ログイン後にコピー

注意:当其他数据不能正常转换为数字数值时,结果就是NaN;
②其他数据转换成字符串:String(其他数据);

<span style="font-size: 14px;">var married = false;<br/> alert(married.toString());</span>
ログイン後にコピー

③其他数组转Boolean:
Boolean(其他数据);
注意:null、undefined、0、NaN、””转换为boolean结果为false,其他的数据转换的结果为true。

(2) 自动转换(隐式转换)

自动类型转换一般是根运行环境和操作符联系在一起的,是一种隐式转换,看似难以捉摸,其实是有一定规律性的,大体可以划分为:转换为字符串类型、转换为布尔类型、转换为数字类型。今天我们就介绍一下这几种转换机制

①其他数据转数字(Number)

i. 字符串类型转为数字: 空字符串被转为0,非空字符串中,符合数字规则的会被转换为对应的数字,否则视为NaN
ii. 布尔类型转为数字: true被转为1,false被转为0
iii. null被转为0,undefined被转为NaN
iv. 对象类型转为数字: valueOf()方法先试图被调用,如果调用返回的结果为基础类型,则再将其转为数字,如果返回结果不是基础类型,则会再试图调用toString()方法,最后试图将返回结果转为数字,如果这个返回结果是基础类型,则会得到一个数字或NaN,如果不是基础类型,则会抛出一个异常

<span style="font-size: 14px;">var foo = +&#39;&#39;;            // 0<br/>var foo = +&#39;3&#39;;           // 3<br/>var foo = +&#39;3px&#39;;         // NaN<br/>var foo = +false;         // 0<br/>var foo = +true;          // 1<br/>var foo = +null;          // 0<br/>var foo = +undefined;     // NaN</span>
ログイン後にコピー

对于不符合数字规则的字符串,和直接调用Number()函数效果相同,但和parseInt()有些出入:

<span style="font-size: 14px;">var foo = Number(&#39;3px&#39;);      // NaN<br/>var foo = parseInt(&#39;3px&#39;);    // 3<br/></span>
ログイン後にコピー


注意:任何数据和NaN(除了和字符串做相加操作外)做运算,结果始终都是NaN

<span style="font-size: 14px;">var foo = null + undefined;  // NaN<br/>var foo = null + NaN;        // NaN</span>
ログイン後にコピー

②其他数据转字符串(String)

其他数据和字符串数据做相加操作时,其他数据会自动的转换为字符串类型。就相当于悄悄的用了String()工具。

<span style="font-size: 14px;">// 基础类型<br/>var foo = 3 + &#39;&#39;;            // "3"<br/>var foo = true + &#39;&#39;;         // "true"<br/>var foo = undefined + &#39;&#39;;    // "undefined"<br/>var foo = null + &#39;&#39;;         // "null"<br/><br/>// 复合类型<br/>var foo = [1, 2, 3] + &#39;&#39;;    // "1,2,3"<br/>var foo = {} + &#39;&#39;;           // "[object Object]"</span>
ログイン後にコピー

③其他数据转布尔(Boolean)

 a. 数字转为布尔类型(from number)
当数字在逻辑环境中执行时,会自动转为布尔类型。0(0,-0)和NaN会自动转为false,其余数字(1,2,3,-2,-3...)都被认为是true

b. 字符串转为布尔类型(from string)
和数字类似,当字符串在逻辑环境中执行时,也会被转为布尔类型。空字符串会被转为false,其它字符串都会转为true

c. undefined和null转为布尔类型(from undefined and null)
当undefined和null在逻辑环境中执行时,都被认为是false

d. 对象转为布尔类型(from object)

相关推荐:

浅谈javascript中的数据类型转换

以上がJavaScriptのデータ型の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Win11での管理者権限の取得について詳しく解説 Win11での管理者権限の取得について詳しく解説 Mar 08, 2024 pm 03:06 PM

Windows オペレーティング システムは世界で最も人気のあるオペレーティング システムの 1 つであり、その新バージョン Win11 が大きな注目を集めています。 Win11 システムでは、管理者権限の取得は重要な操作であり、管理者権限を取得すると、ユーザーはシステム上でより多くの操作や設定を実行できるようになります。この記事では、Win11システムで管理者権限を取得する方法と、権限を効果的に管理する方法を詳しく紹介します。 Win11 システムでは、管理者権限はローカル管理者とドメイン管理者の 2 種類に分かれています。ローカル管理者はローカル コンピュータに対する完全な管理権限を持っています

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

Oracle SQLの除算演算の詳細説明 Oracle SQLの除算演算の詳細説明 Mar 10, 2024 am 09:51 AM

OracleSQL の除算演算の詳細な説明 OracleSQL では、除算演算は一般的かつ重要な数学演算であり、2 つの数値を除算した結果を計算するために使用されます。除算はデータベース問合せでよく使用されるため、OracleSQL での除算演算とその使用法を理解することは、データベース開発者にとって重要なスキルの 1 つです。この記事では、OracleSQL の除算演算に関する関連知識を詳細に説明し、読者の参考となる具体的なコード例を示します。 1. OracleSQL での除算演算

PHPモジュロ演算子の役割と使い方を詳しく解説 PHPモジュロ演算子の役割と使い方を詳しく解説 Mar 19, 2024 pm 04:33 PM

PHP のモジュロ演算子 (%) は、2 つの数値を除算した余りを取得するために使用されます。この記事では、モジュロ演算子の役割と使用法について詳しく説明し、読者の理解を深めるために具体的なコード例を示します。 1. モジュロ演算子の役割 数学では、整数を別の整数で割ると、商と余りが得られます。たとえば、10 を 3 で割ると、商は 3 になり、余りは 1 になります。モジュロ演算子は、この剰余を取得するために使用されます。 2. モジュロ演算子の使用法 PHP では、% 記号を使用してモジュロを表します。

Linuxシステムコールsystem()関数の詳細説明 Linuxシステムコールsystem()関数の詳細説明 Feb 22, 2024 pm 08:21 PM

Linux システム コール system() 関数の詳細説明 システム コールは、Linux オペレーティング システムの非常に重要な部分であり、システム カーネルと対話する方法を提供します。その中でも、system()関数はよく使われるシステムコール関数の一つです。この記事では、system() 関数の使用法を詳しく紹介し、対応するコード例を示します。システム コールの基本概念 システム コールは、ユーザー プログラムがオペレーティング システム カーネルと対話する方法です。ユーザープログラムはシステムコール関数を呼び出してオペレーティングシステムを要求します。

C言語学習ルートを詳細に分析 C言語学習ルートを詳細に分析 Feb 18, 2024 am 10:38 AM

ソフトウェア開発の分野で広く使用されているプログラミング言語として、C 言語は多くの初心者プログラマーにとって最初の選択肢です。 C言語を学ぶと、プログラミングの基礎知識を定着させるだけでなく、問題解決能力や思考力も向上します。この記事では、初心者が学習プロセスをより適切に計画できるようにするための C 言語学習ロードマップを詳しく紹介します。 1. 基本的な文法を学ぶ C 言語の学習を始める前に、まず C 言語の基本的な文法規則を理解する必要があります。これには、変数とデータ型、演算子、制御ステートメント (if ステートメント、

Linuxのcurlコマンドの詳しい説明 Linuxのcurlコマンドの詳しい説明 Feb 21, 2024 pm 10:33 PM

Linuxのcurlコマンドの詳細な説明 要約:curlは、サーバーとのデータ通信に使用される強力なコマンドラインツールです。この記事では、curl コマンドの基本的な使用法を紹介し、読者がコマンドをよりよく理解して適用できるように実際のコード例を示します。 1.カールとは何ですか? curl は、さまざまなネットワーク要求を送受信するために使用されるコマンド ライン ツールです。 HTTP、FTP、TELNETなどの複数のプロトコルをサポートし、ファイルアップロード、ファイルダウンロード、データ送信、プロキシなどの豊富な機能を提供します。

Promise.resolve() について詳しく見る Promise.resolve() について詳しく見る Feb 18, 2024 pm 07:13 PM

Promise.resolve() の詳細な説明には、特定のコード例が必要です。Promise は、非同期操作を処理するための JavaScript のメカニズムです。実際の開発では、順番に実行する必要があるいくつかの非同期タスクを処理する必要があることがよくあり、満たされた Promise オブジェクトを返すために Promise.resolve() メソッドが使用されます。 Promise.resolve() は Promise クラスの静的メソッドであり、

See all articles