JavaScript之数据类型

JavaScript之数据类型

基本数据类型

JavaScript的基本数据类型共7种,其中包括ES6和ES10中个新增的一种。

  1. 布尔值(Boolean),有2个值分别是:true 和 false.
  2. null , 一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、NULL或变体完全不同。
  3. undefined ,和 null 一样是一个特殊的关键字,undefined 表示变量未定义时的属性。
  4. 数字(Number),整数或浮点数,例如: 42 或者 3.14159。
  5. 字符串(String),字符串是一串表示文本值的字符序列,例如:“Howdy” 。
  6. 代表(Symbol) ( 在 ECMAScript 6 中新添加的类型).。一种实例是唯一且不可改变的数据类型。
  7. 任意精度整数(Bigint):(在 ECMAScript 6 中新添加的类型)比最大索引范围9007199254740992大的所有数字可以使用BigInt表达
JavaScript 拥有动态类型

JavaScript 拥有动态类型。这意味着相同变量可用作不同类型:

var x;               // 现在 x 是 undefined
var x = 7;           // 现在 x 是数值
var x = "Bill";      // 现在 x 是字符串值
JavaScript 字符串值

字符串(或文本字符串)是一串字符(比如 “Bill Gates”)。

字符串被引号包围。您可使用单引号或双引号:

var carName = "Porsche 911";   // 使用双引号
var carName = 'Porsche 911';   // 使用单引号

可以在字符串内使用引号,只要这些引号与包围字符串的引号不匹配:

var answer = "It's alright";             // 双引号内的单引号
var answer = "He is called 'Bill'";    // 双引号内的单引号
var answer = 'He is called "Bill"';    // 单引号内的双引号
JavaScript 数值

JavaScript 只有一种数值类型。

写数值时用不用小数点均可:

var x1 = 34.00;     // 带小数点
var x2 = 34;        // 不带小数点

超大或超小的数值可以用科学计数法来写:

var y = 123e5;      // 12300000
var z = 123e-5;     // 0.00123
JavaScript 布尔值

布尔值只有两个值:true 或 false。

var x = true;
var y = false;
JavaScript 数组

JavaScript 数组用方括号书写。

数组的项目由逗号分隔。

var cars = ["Porsche", "Volvo", "BMW"];
JavaScript 对象

JavaScript 对象用花括号来书写。

对象属性是 name:value 对,由逗号分隔。

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
typeof 运算符

可使用 JavaScript 的 typeof 来确定 JavaScript 变量的类型:

typeof 运算符返回变量或表达式的类型:

typeof ""                  // 返回 "string"
typeof "Bill"              // 返回 "string"
typeof "Bill Gates"          // 返回 "string"
typeof 0                   // 返回 "number"
typeof 314                 // 返回 "number"
typeof 3.14                // 返回 "number"
typeof (7)                 // 返回 "number"
typeof (7 + 8)             // 返回 "number"
Undefined

在 JavaScript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined。

var person;                  // 值是 undefined,类型是 undefined

任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。

person = undefined;          // 值是 undefined,类型是 undefined
空值

空值与 undefined 不是一回事。

空的字符串变量既有值也有类型。

var car = "";                // 值是 "",类型是 "string"
Null

在 JavaScript 中,null 是 “nothing”。它被看做不存在的事物。

不幸的是,在 JavaScript 中,null 的数据类型是对象。

可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。
可以通过设置值为 null 清空对象:

var person = null;           // 值是 null,但是类型仍然是对象
null与undefined

Undefined 与 null 的值相等,但类型不相等

typeof undefined              // undefined
typeof null                   // object
null === undefined            // false
null == undefined             // true

可以表示“没有”,含义非常相似。将一个变量赋值为undefined或null,老实说,语法效果几乎没区别。实际的区别是:null是一个表示“空”的对象,转为数值时为0;undefined是一个表示"此处无定义"的原始值,转为数值时为NaN。

console.log(undefined == null);// true
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
console.log(5 + null);// 5
console.log(5 + undefined)// NaN

字面量 (Literals)

字面量是由语法表达式定义的常量;或通过由一定字词组成的语词表达式定义的常量。
在JavaScript中,你可以使用各种字面量。这些字面量是脚本中按字面意思给出的固定的值,而不是变量。字面量是常量,其值是固定的,而且在程序脚本运行中不可更改,比如false,3.1415 。

数组字面量

数组字面值是一个封闭在方括号对([ ])中的包含有零个或多个表达式的列表,其中每个表达式代表数组的一个元素。当你使用数组字面值创建一个数组时,该数组将会以指定的值作为其元素进行初始化,而其长度被设定为元素的个数。

var arr = ["china", "japan", "Kona"];
var a=[3];
console.log(a.length); // 1
console.log(a[0]); // 3
布尔字面量

布尔类型有两种字面量:true和false。
不要混淆作为布尔对象的真和假与布尔类型的原始值true和false。布尔对象是原始布尔数据类型的一个包装器。

整数字面量

整数可以用十进制(基数为10)、十六进制(基数为16)、八进制(基数为8)以及二进制(基数为2)表示。

  • 十进制整数字面量由一串数字序列组成,且没有前缀0。
  • 八进制的整数以 0(或00、00)开头,只能包括数字0-7。
  • 十六进制整数以0x(或0X)开头,可以包含数字(0-9)和字母 a~f 或 A~F。
  • 二进制整数以0b(或0B)开头,只能包含数字0和1。
  • 严格模式下,八进制整数字面量必须以00或00开头,而不能以0开头。
0, 117, -345 (十进制, 基数为10)
015, 0001, -0o77 (八进制, 基数为8) 
0x1123, 0x00111,  -0xF1A7 (十六进制, 基数为16"hex")
0b11, 0b0011,  -0b11 (二进制, 基数为2)
浮点数字面量

浮点数字面值可以有以下的组成部分:

  • 一个十进制整数,可以带正负号(即前缀“+”或“ - ”),
  • 小数点(“.”),
  • 小数部分(由一串十进制数表示),
    指数部分。
  • 指数部分以“e”或“E”开头,后面跟着一个整数,可以有正负号(即前缀“+”或“-”)。浮点数字面量至少有一位数字,而且必须带小数点或者“e”(大写“E”也可)。
[(+|-)] [ digits][. digits][(E|e)[(+|-)]digits]
3.14      
-.2345789 // -0.23456789
-3.12e+12  // -3.12*1012
.1e-23    // 0.1*10-23=10-24=1e-24
对象字面量

对象字面值是封闭在花括号对({})中的一个对象的零个或多个"属性名-值"对的(元素)列表。你不能在一条语句的开头就使用对象字面值,这将导致错误或产生超出预料的行为, 因为此时左花括号({)会被认为是一个语句块的起始符号。

RegExp 字面值

一个正则表达式是字符被斜线围成的表达式。

var re = /ab+c/;
字符串字面量

字符串字面量是由双引号(")对或单引号(’)括起来的零个或多个字符。字符串被限定在同种引号之间;也即,必须是成对单引号或成对双引号。

"foo"
'bar'
"1234"
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值