Home  >  Article  >  Web Front-end  >  A detailed introduction to value types in JavaScript

A detailed introduction to value types in JavaScript

PHPz
PHPzOriginal
2016-05-16 16:23:451241browse

The essence of a computer program can be said to a large extent to be the operation, reading and writing of various information (values) by the machine. In JavaScript, there are many types of values, which are divided into two major categories: Primitive (basic type) and Object (object).

Primitive

There are 5 types of Primitive in JavaScript:

1.Number. All numbers, whether integers or decimals, are of type Number.
2.String. String type.
3.Boolean. Boolean type, true or false.
4.null. This type has only one value, null.
5.undefined. This type has only one value, undefined.

Object

Except Primitive, any other value in JavaScript is Object. There are the following types of Object:

1. JSON key-value pair object. Such as {"name":"Bob", "age":42}.
2. Array. Such as [1,4,5,7,9].
3. Function. Such as function(){return true;}. There are two forms of functions in JavaScript: 1. Executable code block; 2. Constructor of a class (Class). No matter what form it takes, functions are always objects.

JS comes with a global object

In order to facilitate program writing, JavaScript comes with a global object, which has the following 7 member variables, all of which are of type Object :

1.Math. A series of complex mathematical operations can be completed by calling the methods of the Math object.
2.Number. Some special values ​​can be obtained by accessing the member variables of the Number object.
3.Array. Constructor for array objects.
4.Function. Constructor of function object.
5.Date. Constructor for date objects.
6.RegExp. Constructor for regular expression objects.
7.Error. Constructor for the error object.

When writing a program, since the above 7 variables can be directly accessed, they can also be used as global objects.

Immutable and Mutable

Primitive and Object have a distinct characteristic: all Primitives are Immutable, and all Objects are Mutable. Taking the String type as an example, after calling the String method to edit it, JavaScript will save the edited result in a new String object, and the original String object will not change in any way:

var s = "test";
s.toUpperCase();//return a new String object "TEST"
console.log(s);//"test" -- original String s does not change

Experiment

In JavaScript, you can get the type of a value by using the typeof keyword.

Get the type of number:

var n = 42;
console.log(typeof n);

The program output result is number.

Get the type of string:

var s = "test";
console.log(typeof s);

The program output result is string.

Get the type of Boolean value:

var b = true;
console.log(typeof b);

The program output result is boolean.

Get the type of null:

var x = null;
console.log(typeof x);

The program should output null, but it actually outputs object. The reason is that when using a typeof operation on a null value, the program returns object: a bug that has existed since the first version of JavaScript. During the development of the ECMAScript standard, there were some interesting debates about whether to fix this bug: the final conclusion was that fixing the bug would cause problems for too many websites, so it was not fixed for the time being.

Get the type of undefined:

var y = undefined;
console.log(typeof y);

The program output result is undefined.

Get the type of JSON object:

var j = {"name":"Bob", "age":42};
console.log(typeof j);

The program output result is object.

Get the type of array object:

var a = [2,3,5,7,11];
console.log(typeof a);

The program output result is object.

Get the type of function object:

var f = function(){return true;};
console.log(typeof f);

Function objects are special, and the typeof operator returns the result as function.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn