この記事では、JavaScript の 6 つの基本データ型に関する関連知識を提供します。お役に立てば幸いです。
JavaScript では、すべて (変数、関数、演算子) で大文字と小文字が区別されます。これは、変数名 test と変数名 Test が 2 つの異なる変数を表すことも意味します。
いわゆる識別子は、変数、関数名と演算子、または関数パラメーターを指します。識別子の形式規則は次のとおりです:
1. 最初の文字は文字、アンダースコア (_) またはドル記号 ($) である必要があります;
2. 他の文字は文字でも構いません、アンダースコア、ドル記号、数字;
慣例により、JavaScript 識別子はキャメルケース形式で書かれます。つまり、1 文字が小文字で開かれ、残りの単語の最初の文字が大文字になります。例: firstChirld, myCar;
もちろん、識別子に小さなキャメル ケース形式を使用することは必須ではありませんが、コードを理解しやすくなります。他の人がコードを理解しやすくするための小さなキャメルケース形式。
JavaScript のコメント メソッドは、単一行コメントと複数行コメントに分かれています:
単一行コメント:
//这是一个单行注释
Multi-行コメント:
/* *这是一个 *多行注释 */
JavaScript では、ステートメントはセミコロンで終わります; セミコロンが省略された場合、インタープリターが終了を判断します。次の例に示すように:
var sum = a + b //即使没有分号也是有效语句——不推荐 var diff = a - b; //有效语句——推荐
JavaScript の変数型は弱い型付けです。いわゆる弱い型とは、あらゆる種類のデータを保存するために使用できることを意味します。 。言い換えれば、各変数は値を保持するための単なるプレースホルダーです。
変数を定義する場合は、var キーワードを使用し、その後に変数名 (つまり、識別子) を続けます。以下に示すように:
var message;
JavaScript は変数の直接初期化もサポートしているため、変数の定義中に変数の値を設定できます。以下に示すように:
var message = "Hello world!";
注意する必要があるのは、var キーワードで定義された変数は、その変数が定義されているスコープ内のローカル変数になるということです。つまり、var を使用して関数内で変数を定義すると、その変数は関数の終了後に破棄されます。例:
function test(){ var message = "Hello"; //局部变量 } test(); console.log(message); //错误!
エラーの理由は、関数 test() で var を使用して変数 message が定義されているためです。関数が呼び出されると、変数が作成され、値が割り当てられます。その後、変数はすぐに破棄されるため、例の次のコード行ではエラーが発生します。ただし、次のようにキーワード var を省略してグローバル変数を作成できます。
function test(){ message = "Hello"; //全局变量 } test(); console.log(message); //"Hello"
ここでキーワード var を省略すると、メッセージはグローバル変数になります。このように、test()関数を一度呼び出すだけで変数が定義され、グローバル変数を設定した後は関数外からどこからでもアクセスできるようになります。
キーワード var を省略してグローバル変数を定義することもできますが、ローカル スコープで定義されたグローバル変数は保守が難しいため、お勧めできません。
単純なデータ型がいくつかあります。データ型 (基本データ型とも呼ばれます): 未定義、Null、ブール、数値、および文字列。複合型である Object もあり、Object は基本的に順序付けされていない名前と値のペアのセットです。 JavaScript はカスタム型を作成するメカニズムをサポートしておらず、すべての値はこれら 6 つのデータ型のいずれかになります。
JavaScript は弱い型指定であるため、指定された変数のデータ型を検出する方法が必要です。typeof は、指定された変数のデータ型を検出する操作です。 . シンボル。値に対して typeof 演算子を使用すると、次のいずれかの文字列が返される場合があります:
"unknown" - 値が未定義の場合;
" boolean" - 値がブール型の場合;
"string" - 値が文字列の場合;
"number "— —値が数値の場合;
"object"—値がオブジェクトまたは null の場合;
"function"— — —値が関数の場合;
typeof 演算子の使用例をいくつか示します。
var message = "hello"; console.log(typeof message); //"string" console.log(typeof(message)); //"string" console.log(typeof 95); //"number"
typeof 演算子のオペランドは次のとおりです。変数。数値リテラルも使用できます。 typeof は関数ではないため、この例では括弧を使用できますが、括弧は必須ではないことに注意してください。
JavaScript では、関数はデータ型ではなくオブジェクトであるため、関数を他のオブジェクトと区別するには typeof を使用する必要があります。
未定義型には値が 1 つだけあり、それが特別な unknown です。変数が var を使用して宣言されているが初期化されていない場合、変数の値は未定義です。例:
var message; console.log(message == undefined); //true var message1 = "undefined"; console.log(message1 == undefined); //true
ただし、紛らわしい点は、初期化されていない変数に対して typeof 演算子を実行すると未定義の値が返され、宣言されていない変数に対して typeof 演算子を実行すると未定義の値も返されることです。次の例を見てください:
var message; //这个变量声明之后默认取得了undefined值 //下面这个变量并没有声明 //var age; console.log(typeof message); //"undefined" console.log(typeof age); //"undefined"
初期化された変数と宣言された変数の両方が unknown を返しますが、この結果は論理的に妥当です。これら 2 つの変数は技術的な観点からは本質的に異なりますが、実際にはどちらのタイプの変数に対しても実際の操作を実行することは不可能であるためです。
Null类型是第二个只有一个值得类型,这个特殊的值是null。从逻辑的角度来看,null值表示一个对象的空指针,而这也正是使用typeof操作符的检测null值时会返回“object”的原因,如下面的例子所示:
var message= null; console.log(message); //"object"
如果定义的对象将来用来保存对象,那么最好将这个变量初始化为null而不是其他的值。这样一来,只要直接检查null值就可以直接知道相应的变量是否已经保存了一个对象的引用,如下面的例子:
if(message != null){ //对message进行一系列的操作 }
实际上,undefined的值是派生自null值得,所以对它们进行相等性测试的时候要返回true:
console.log(null == undefined); //true
在这里,位于null和undefined之间的相等操作符(==)总是返回true。尽管null和undefined有这样的关系,但它们的的用途完全不同。如上面所述,无论在什么情况下,都没有必要把一个变量显示的表示为undefined,可是同样的规则对null却不适用。换句话说,只有保存对象的变量还没有真正的保存对象,就应该在明确地表示将该变量保存为null值。这样做不仅可以体现null值作为空指针的惯例,而且也有助于进一步的区分null和undefined。
Boolean类型是JavaScript中使用最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。以下是为变量赋值的例子:
var first = true; var second = false;
需要注意的是,boolean类型的两个值区分大小写。也就是说True和true、False和false不是一回事。
True和False(以及其他混合大小形式)只是标识符,不是boolean值。
虽然boolean值只有两个值,但是JavaScript所有类型的值都有与这两个boolean值等价的值。要将一个值转换为相应的Boolean值,可以调用Boolean()函数。例如:
var message = "Hello world!"; var messageAsBoolean = Boolean(message); console.log(messageAsBoolean); //true
可以对任何类型的值调用Boolean()函数,而且总会返回一个boolean值。至于返回的是true还是false取决于要转换的实际类型及其实际值。下表给出了各种数据类型对其转换的相应规则:
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | “”(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | n/a | undefined |
在JavaScript中number类型定义了不同的数值字面量格式。例如:
var intNumber = 55; //十进制整数 var octalNum1 = 070; //八进制的56 var octaNum2 = 079; //无效的八进制数,解析为79 var octaNum3 = 08; //无效的八进制数,解析为8 var hexNum1 = 0xA; //十六进制的10 var hexNum2 = 0x1f; //十六进制的31
在进行算术计算时,所有八进制和十六进制表示的数值都会转换成十进制数值。
NaN即非数值,是一个特殊的数值。这个数用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。NaN本身有两个特点:
首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。
其次,NaN与任何值都不相等,包括NaN本身。例如:
console.log(NaN ==NaN ); //false
string类型用于表示零或多个Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(’)表示,因此下面两种写法都是有效的:
var firstName = "王文正"; var secondName = "王彬";
双引号开头的必须以双引号结尾,而当引号开头的必须以单引号结尾。下面这种会导致语法错误:
var name = "王彬'; //语法错误
String类型中包含了一些特殊字面量,也叫转义序列,用于表示非打印字符,或者有其他的用途的字符。这些字符字面量如下表所示:
字面量 | 含义 |
---|---|
\n | 换行 |
\t | 制表 |
\b | 退格 |
\r | 回车 |
\f | 进纸 |
\ | 斜杠 |
’ | 单引号 |
" | 双引号 |
\xnn | 以十六进制代码nn表示一个字符 |
\unnn | 以十六进制代码nnn表示一个Unicode字符 |
JavaScript中的字符串是不可变的,也就是说,字符串一旦创建,它的值就是不可更改的。要更改某个变量中保存的字符串,首先要销毁原来的字符串,然后用另一个包含新值得字符串填充变量,例如:
var lang = "java"; lang = lang + "script"; console.log(lang); //javascript
JavaScript中的对象是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型名称来创建。而创建Object类型的实例并为其添加属性或方法,就可以创建自定义对象。如下所示:
var o = new Object(); var o = new Object; //有效,但是不推荐这种做法;
constructor:保存着用于创建当期那对象的函数。
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是实际的原型中)是否存在。
isPrototypeOf(object):用于检查传入的对象那个是否是当前对象的原型。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同
toString():返回对象的字符串表示
由于在JavaScript中Object是所有对象的基础,因此所有对象都具有这些基本的属性和方法。
【相关推荐:javascript学习教程】
以上がJavaScript の 6 つの基本データ型の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。