javascript的变量类型-JavaScript数据类型(基本数据类型+引用类型)

2023-08-27 0 1,276 百度已收录

数据类型是指程序中可以存储和操作的值的类型。 每种编程语言都有其支持的数据类型。 不同的数据类型用于存储不同的数据,例如文本、值、图像等。

JavaScript 是一种动态类型语言。 定义变量时不必预先指定变量的类型。 变量的类型是由JavaScript引擎在程序运行过程中动态确定的。 另外,还可以使用同一个变量来存储不同类型的数据,例如:

<code class="language-javascript">var a;  // 此时 a 为 Undefined
a = "http://c.biancheng.net/"; // 此时 a 为 String 类型
a = 123;  // 此时 a 为 Number 类型

JavaScript 中的数据类型可以分为两种:

提示:Symbol 是 ECMAScript6 中引入的新数据类型,它代表一个唯一的值。

类型运算符

在开始介绍各种数据类型之前,我们先来了解一下typeof运算符,它可以返回变量的数据类型。

typeof 运算符可以带或不带括号一起使用,如下例所示:

typeof x;       // 获取变量 x 的数据类型
typeof(x);      // 获取变量 x 的数据类型

1.JS基本数据类型

1)字符串类型

字符串(String)类型是用单冒号“”或双冒号“”包裹的一段文本,如“123”、“abc”。 需要注意的是,单冒号和双冒号是定义字符串的不同形式,而不是字符串的一部分。

定义字符串时,如果字符串中包含破折号,可以使用反斜杠来通配字符串中的破折号,或者选择与字符串不同的冒号来定义字符串,如下例所示:

var str = "Let's have a cup of coffee.";  // 双引号中包含单引号
var str = 'He said "Hello" and left.';    // 单引号中包含双引号
var str = 'We'll never give up.';        // 使用反斜杠转义字符串中的单引号

2) 数字类型

Number 类型用于定义一个值。 JavaScript中不区分整数和小数(浮点数),统一使用Number类型来表示,如下例所示:

var num1 = 123;     // 整数
var num2 = 3.14;    // 浮点数

注意:Number 类型可以定义的值不是无限的。 JavaScript中的Number类型只能表示-(253-1)到(253-1)之间的值。

javascript的变量类型-JavaScript数据类型(基本数据类型+引用类型)

对于一些极大或极小的数字,也可以用科学(指数)表示法来表示,如下例所示:

var y=123e5;      // 123 乘以 10 的 5 次方,即 12300000
var z=123e-5;     // 123 乘以 10 的 -5 次方,即 0.00123

另外,Number类型中还有一些特殊的值,分别是Infinity、-Infinity和NaN,其中

提示:如果某个估计的结果超出了 JavaScript 中 Number 类型的取值范围,那么这个数字会被手动转换为无穷大javascript的变量类型,正数为 Infinity,负数为 -Infinity。

3)布尔类型

Boolean类型只有两个值,true(真)或false(假),常用于条件判断。 不仅可以直接使用true或false来定义Boolean类型的变量,还可以通过一些Expression来获取boolean值,例如:

var a = true;   // 定义一个布尔值 true
var b = false;  // 定义一个布尔值 false
var c = 2 > 1;  // 表达式 2 > 1 成立,其结果为“真(true)”,所以 c 的值为布尔类型的 true
var d = 2 < 1;  // 表达式 2 < 1 不成立,其结果为“假(false)”,所以 c 的值为布尔类型的 false

4) 空类型

Null是一种只有一个值的特殊数据类型,代表“空”值,即没有值,什么都没有,用于定义空对象指针。

javascript的变量类型-JavaScript数据类型(基本数据类型+引用类型)

使用typeof运算符查看Null的类型,你会发现Null的类型是Object,说明Null实际上使用了一个属于Object(对象)的特殊值。 因此,通过将变量参数传递为 Null,我们可以创建一个空对象。

5) 未定义类型

Undefined也是一种特殊的数据类型,只有一个值,代表未定义。 当我们声明一个变量但没有给出变量参数时,这个变量的默认值为Undefined。 例如:

var num;
console.log(num);  // 输出 undefined

当你使用typeof运算符查看非参数的变量类型时,你会发现它们的类型也是未定义的。 对于未声明的变量,使用typeof运算符查看其类型,你会发现未声明的变量也是未定义的。 示例代码如下:

var message;
console.log(typeof message);  // 输出 undefined
console.log(typeof name);     // 输出 undefined

6) 符号类型

Symbol是ECMAScript6中引入的一种新数据类型,它代表一个唯一的值。 Symbol类型的值需要使用Symbol()函数生成,如下例所示:

var str = "123";
var sym1 = Symbol(str);
var sym2 = Symbol(str);
console.log(sym1);          // 输出 Symbol(123)
console.log(sym2);          // 输出 Symbol(123)
console.log(sym1 == sym2);  // 输出 false :虽然 sym1 与 sym2 看起来是相同的,但实际上它们并不一样,根据 Symbol 类型的特点,sym1 和 sym2 都是独一无二的

2.JS引用数据类型

1)对象类型

JavaScript 中的对象(Object)类型是一组由键和值组成的无序集合。 要定义对象类型,需要使用花括号 { }。 语法如下:

{name1: value1, name2: value2, name3: value3, ..., nameN: valueN}

其中name1,name2,name3,...,nameN是对象中的键,value1,value2,value3,...,valueN是对应的值。

在JavaScript中,对象类型的键都是字符串类型,值可以是任何数据类型。 要获取对象中的值,可以使用对象名称。 key方法,如下例所示:

var person = {
    name: 'Bob',
    age: 20,
    tags: ['js', 'web', 'mobile'],
    city: 'Beijing',
    hasCar: true,
    zipcode: null
};
console.log(person.name);       // 输出 Bob
console.log(person.age);        // 输出 20

2)数组类型

数组(Array)是按顺序排列的数据的集合。 数组中的每个值称为一个元素,链表可以包含任何类型的数据。 在JavaScript中定义链表需要使用方括号[],数组中的每个元素之间用冒号分隔,例如:

javascript的变量类型-JavaScript数据类型(基本数据类型+引用类型)

[1, 2, 3, 'hello', true, null]

或者,您可以使用 Array() 函数创建链表,如以下示例所示:

var arr = new Array(1, 2, 3, 4);
console.log(arr);       // 输出 [1, 2, 3, 4]

数组中的元素可以通过索引来访问。 数组中的索引从0开始,依次递增,也就是说链表第一个元素的索引为0,第二个元素的索引为1,第三个元素的索引为2,依此类推在。 如下例所示:

var arr = [1, 2, 3.14, 'Hello', null, true];
console.log(arr[0]);  // 输出索引为 0 的元素,即 1
console.log(arr[5]);  // 输出索引为 5 的元素,即 true
console.log(arr[6]);  // 索引超出了范围,返回 undefined

3)功能类型

函数(Function)是具有特定功能的代码块。 该功能不会手动运行。 需要通过函数名来调用才能运行javascript的变量类型,如下例所示:

function sayHello(name){
    return "Hello, " + name;
}
var res = sayHello("Peter");
console.log(res);  // 输出 Hello, Peter

此外,函数还可以存储在变量、对象和数组中,函数还可以作为参数传递给其他函数,或者从其他函数返回,如下例所示:

var fun = function(){
    console.log("http://c.biancheng.net/js/");
}
function createGreeting(name){
    return "Hello, " + name;
}
function displayGreeting(greetingFunction, userName){
    return greetingFunction(userName);
}
var result = displayGreeting(createGreeting, "Peter");
console.log(result);  // 输出 Hello, Peter

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript的变量类型-JavaScript数据类型(基本数据类型+引用类型) https://www.wkzy.net/game/166840.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务