ホームページ ウェブフロントエンド jsチュートリアル JavaScript のデータ型と変数とは何ですか?それらの間で変換するにはどうすればよいですか?

JavaScript のデータ型と変数とは何ですか?それらの間で変換するにはどうすればよいですか?

Jul 29, 2017 pm 03:11 PM
javascript js 変数

データ型

次のデータ型は JavaScript で定義されています:

Number

JavaScript は整数と浮動小数点数を区別せず、Number で表されます。以下は有効な Number 型です。


123; // 整数123
0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
ログイン後にコピー

Infinity; // Infinity は、JavaScript の Number が表現できる最大値を超える場合、Infinity で表現されるため、16 進数で表現する方が便利です。 16 進数は、0x 接頭辞と 0 ~ 9、a ~ f で表されます (例: 0xff00、0xa5b4c3d2 など)。これらは 10 進数で表現された値とまったく同じです。

Number は四則演算を直接実行でき、ルールは数学と一致しています:


1 + 2; // 3
(1 + 2) * 5 / 2; // 7.5
2 / 0; // Infinity
0 / 0; // NaN
10 % 3; // 1
10.5 % 3; // 1.5
ログイン後にコピー

% は剰余演算であることに注意してください。


文字列


文字列とは、'abc'、'xyz' などの一重引用符 ' または二重引用符 " で囲まれたテキストです。 '' または "" 自体は単なる表現であることに注意してください。は文字列の一部ではありません。したがって、文字列 'abc' には a、b、c の 3 つの文字しかありません。

ブール値の表現はブール代数 A の表現とまったく同じです。ブール値は 3 文字のみです。 true と false の 2 つの値は、true または false を使用してブール値を表すことも、ブール演算を通じて計算することもできます。 && 演算は AND 演算であり、すべてが true のみです。&& 演算の結果は true です:


true; // 这是一个true值
false; // 这是一个false值
2 > 1; // 这是一个true值
2 >= 3; // 这是一个false值
ログイン後にコピー

|| 演算は、そのうちの 1 つが true である限り、OR 演算です。 || 演算は true:


true && true; // 这个&&语句计算结果为true
true && false; // 这个&&语句计算结果为false
false && true && false; // 这个&&语句计算结果为false
ログイン後にコピー

! 演算は非演算です。true を false に、false を true に変える単項演算子です:


false || false; // 这个||语句计算结果为false
true || false; // 这个||语句计算结果为true
false || true || false; // 这个||语句计算结果为true
ログイン後にコピー

ブール値は次のとおりです。次のような条件判断でよく使用されます:


! true; // 结果为false
! false; // 结果为true
! (2 > 5); // 结果为true
ログイン後にコピー


比較演算子


数値を比較するとき、比較演算子を通してブール値を取得できます:



var age = 15;
if (age >= 18) {
 alert('adult');
} else {
 alert('teenager');
}
ログイン後にコピー

実際、JavaScriptあらゆるデータ型の比較が可能です:


2 > 5; // false
5 >= 2; // true
7 == 7; // true
ログイン後にコピー

等価演算には特に注意してください JavaScript の設計時には、2 つの比較演算子があります:

1 つ目は == 比較で、データ型を自動的に変換します多くの場合、非常に奇妙な結果が得られます。2 番目の比較は === 比較であり、データ型が矛盾している場合は自動的に変換されません。一貫性がある場合は、再度比較します。
JavaScript の設計上の欠陥のため、== 比較を使用せず、常に === 比較を使用してください。

別の例外は、特殊な Number NaN が他のすべての値と等しくないことです。それ自体を含む:



false == 0; // true
false === 0; // false
ログイン後にコピー

NaN を決定する唯一の方法は isNaN() 関数を使用することです:



NaN === NaN; // false
ログイン後にコピー

最後に、浮動小数点数の等価比較に注意してください:


isNaN(NaN); // true
ログイン後にコピー

これは JavaScript の設計上の欠陥ではありません。コンピュータは無限ループの小数を正確に表現できないため、浮動小数点数は 2 つの浮動小数点数が等しいかどうかを比較するために、その差の絶対値を計算することしかできません。特定のしきい値未満の場合:



1 / 3 === (1 - 2 / 3); // false
ログイン後にコピー


null と undefined


null は「空」の値を表し、0 や空の文字列'' とは異なります。0 は数値です。 '' は長さ 0 の文字列を表し、null は「空」を表します。

他の言語でも、Java の null、Swift の nil、Python Express の None など、JavaScript と同様の null の表現があります。ただし、JavaScript には、「未定義」を意味する null に似た undefine もあります。

JavaScript の設計者は、空の値を表すために null を使用し、未定義の値を表すために unknown を使用することを望んでいます。これが役に立たないことは事実が証明しており、この 2 つの違いはほとんど重要ではありません。ほとんどの場合、null を使用する必要があります。 unknown は、関数パラメータが渡されるかどうかを決定する場合にのみ役立ちます。
配列

配列とはコレクションを順番に並べたもので、コレクションの各値を要素と呼びます。 JavaScript 配列には任意のデータ型を含めることができます。例:


Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
ログイン後にコピー
上記の配列には 6 つの要素が含まれています。配列は [] で表され、要素は , で区切られます。
配列を作成する別の方法は、Array() 関数を使用することです:



[1, 2, 3.14, &#39;Hello&#39;, null, true];
ログイン後にコピー

ただし、コードを読みやすくするために、 [] を直接使用することを強くお勧めします。
配列の要素にはインデックスによってアクセスできます。インデックスの開始値は 0 であることに注意してください:


new Array(1, 2, 3); // 创建了数组[1, 2, 3]
ログイン後にコピー


Object


JavaScript オブジェクトは、順序付けされていないキーと値のコレクションです。例:



var person = {
 name: &#39;Bob&#39;,
 age: 20,
 tags: [&#39;js&#39;, &#39;web&#39;, &#39;mobile&#39;],
 city: &#39;Beijing&#39;,
 hasCar: true,
 zipcode: null
};
ログイン後にコピー

JavaScript对象的键都是字符串类型,值可以是任意数据类型。上述person对象一共定义了6个键值对,其中每个键又称为对象的属性,例如,person的name属性为'Bob',zipcode属性为null。
要获取一个对象的属性,我们用对象变量.属性名的方式:


person.name; // &#39;Bob&#39;
person.zipcode; // null
ログイン後にコピー

变量

变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。
变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如if、while等。申明一个变量用var语句,比如:


var a; // 申明了变量a,此时a的值为undefined
var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1
var s_007 = &#39;007&#39;; // s_007是一个字符串
var Answer = true; // Answer是一个布尔值true
var t = null; // t的值是null
ログイン後にコピー

变量名也可以用中文,但是,请不要给自己找麻烦。
在JavaScript中,使用等号=对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次,例如:


var a = 123; // a的值是整数123
a = &#39;ABC&#39;; // a变为字符串
ログイン後にコピー

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下:


int a = 123; // a是整数类型变量,类型用int申明
a = "ABC"; // 错误:不能把字符串赋给整型变量
ログイン後にコピー

和静态语言相比,动态语言更灵活,就是这个原因。
请不要把赋值语句的等号等同于数学的等号。比如下面的代码:


var x = 10;
x = x + 2;
ログイン後にコピー

如果从数学上理解x = x + 2那无论如何是不成立的,在程序中,赋值语句先计算右侧的表达式x + 2,得到结果12,再赋给变量x。由于x之前的值是10,重新赋值后,x的值变成12。

strict模式

JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:


i = 10; // i现在是全局变量
ログイン後にコピー

在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。

使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内(函数的概念将稍后讲解),同名变量在不同的函数体内互不冲突。

为了修补JavaScript这一严重设计缺陷,ECMA在后续规范中推出了strict模式,在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

启用strict模式的方法是在JavaScript代码的第一行写上:


&#39;use strict&#39;;
ログイン後にコピー

这是一个字符串,不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式运行JavaScript。

来测试一下你窗体顶端


&#39;use strict&#39;;
// 如果浏览器支持strict模式,
// 下面的代码将报ReferenceError错误:
ログイン後にコピー

数据类型如何转换:

1. 数値 xxx*1.0 に変換します。
文字列 xxx+"" に変換します。
2. 1 つの値から別の種類の値を抽出し、変換作業を完了します。
.文字列から整数を抽出します: parseInt();
例: parseInt("123zhang") の結果は 123 です。
.文字列から浮動小数点数を抽出します: parseFloat();
例: parseFloat("0.55zhang) ") 結果は 0.55 です
。文字列で表される JavaScript コードを実行します: eval();
例: zhang=eval("1+1") の結果は zhang=2 になります
。文字列に変換します: toString( );
例: zhang=eval("1+1") は zhang=2 になります
3. 値全体が 1 つの型から別のデータ型に変換されます (基本的なデータ型変換と呼ばれます)。
基本的なデータ型変換 3 つの方法:
. 文字型に変換: String(); 例: String(678) の結果は "678" です。 数値型に変換: Number("678") は
です。 . Boolean 型に変換: Boolean(); 例: Boolean("aaa") の結果は true です

これらのメソッドを使用する場合は、必要に応じてパラメータやメソッドの実行時に例外を判断して処理するようにしてください。
参考資料にあるように、実行効率をまとめると以下のとおりです:
IEでは、1つ目のタイプが最も速く、2つ目は2番目、3つ目は最も悪いですが、その差はわずか10万倍ですが、その差は数十倍、わずか数百ミリ秒です。
FF では、1 番目と 2 番目のタイプは基本的に同等で、3 番目のタイプが最も遅くなります。
速度の差は基本的に無視できます。なぜなら、その差は非常に小さいからです。
ただし、コードの単純さから、最初のメソッドは明らかに書きやすく、読みやすいです。
、オブジェクトには toString メソッドがないため、エラーを報告する 2 番目のメソッドには問題はありません。それに、彼はいつも最速だった。
そのため、私は最初の方法を使用してデータ型変換を完了することに慣れています
ただし、たとえば、「123456abcd」内の数値を抽出する必要がある場合、当然、parsetInt や parseFloat などの関数を使用する必要があります。
ただし、変換結果がNaN等になる場合もあるので判断が必要になることに注意してください。

以上が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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

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

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

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

Javaのインスタンス変数とは何ですか Javaのインスタンス変数とは何ですか Feb 19, 2024 pm 07:55 PM

Java のインスタンス変数は、メソッドやコンストラクターではなく、クラスで定義された変数を指します。インスタンス変数はメンバー変数とも呼ばれ、クラスの各インスタンスにはインスタンス変数の独自のコピーがあります。インスタンス変数はオブジェクトの作成時に初期化され、その状態はオブジェクトの存続期間全体にわたって保存および維持されます。インスタンス変数定義は通常、クラスの先頭に配置され、パブリック、プライベート、プロテクト、またはデフォルトのアクセス修飾子など、任意のアクセス修飾子を使用して宣言できます。それは私たちがこれをどうしたいかによって決まります

PHP および JS 開発のヒント: 株価ローソク足チャートの描画方法をマスターする PHP および JS 開発のヒント: 株価ローソク足チャートの描画方法をマスターする Dec 18, 2023 pm 03:39 PM

インターネット金融の急速な発展に伴い、株式投資を選択する人がますます増えています。株式取引では、ローソク足チャートは一般的に使用されるテクニカル分析手法であり、株価の変化傾向を示し、投資家がより正確な意思決定を行うのに役立ちます。この記事では、PHP と JS の開発スキルを紹介し、株価ローソク足チャートの描画方法を読者に理解してもらい、具体的なコード例を示します。 1. 株のローソク足チャートを理解する 株のローソク足チャートの描き方を紹介する前に、まずローソク足チャートとは何かを理解する必要があります。ローソク足チャートは日本人が開発した

Python 構文のマインド マップ: コード構造の深い理解 Python 構文のマインド マップ: コード構造の深い理解 Feb 21, 2024 am 09:00 AM

Pythonはそのシンプルで読みやすい構文から幅広い分野で広く使われています。プログラミングの効率を向上させ、コードがどのように機能するかを深く理解するためには、Python 構文の基本構造をマスターすることが重要です。この目的を達成するために、この記事では、Python 構文のさまざまな側面を詳しく説明した包括的なマインド マップを提供します。変数とデータ型 変数は、Python でデータを保存するために使用されるコンテナです。マインド マップには、整数、浮動小数点数、文字列、ブール値、リストなどの一般的な Python データ型が表示されます。各データ型には独自の特性と操作方法があります。演算子 演算子は、データ型に対してさまざまな操作を実行するために使用されます。マインド マップは、算術演算子、比率など、Python のさまざまな演算子の種類をカバーしています。

Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Mar 09, 2024 pm 05:36 PM

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

jsとvueの関係 jsとvueの関係 Mar 11, 2024 pm 05:21 PM

js と vue の関係: 1. Web 開発の基礎としての JS、2. フロントエンド フレームワークとしての Vue.js の台頭、3. JS と Vue の補完関係、4. JS と Vue の実用化ビュー。

C言語のconstを深く理解する C言語のconstを深く理解する Feb 18, 2024 pm 12:56 PM

C の const の詳細な説明とコード例 C 言語では、const キーワードを使用して定数を定義します。これは、プログラムの実行中に変数の値を変更できないことを意味します。 const キーワードは、変数、関数パラメータ、関数の戻り値を変更するために使用できます。この記事では、C 言語での const キーワードの使用法を詳細に分析し、具体的なコード例を示します。 const 変更された変数 const を使用して変数を変更する場合、その変数は読み取り専用変数であり、値が割り当てられると変更できないことを意味します。例: 定数

See all articles