JavaScript数据类型总结

前言

JavaScript 是一种弱类型或者说动态语言。使用时不用提前声明变量的类型,因为在程序运行过程中,类型会被自动确定。也可以使用同一个变量保存不同类型的数据。

基本数据类型

基本数据类型存储在栈里。
最新的 ECMAScript 标准定义了 8 种数据类型:

1. Undefined

创建一个变量,但并没有赋值,这个变量的数据类型就是undefined

例:

let x;
console.log('x的值是:' + x);
console.log('x的数据类型是:' + typeof x);

输出:
在这里插入图片描述

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

let x = 1;
console.log('x的值是:' + x);
console.log('x的数据类型是:' + typeof x);
x = undefined;
console.log('x的值是:' + x);
console.log('x的数据类型是:' + typeof x);

输出:
在这里插入图片描述

2. Boolean

布尔值只有两个值:truefalse。常用在条件测试中。

3. Number

·JavaScript 中只有一种数字类型,包括整数和浮点数。
·Number数字类型包括三个特殊值:
(1)infinity,无穷大
(2)-infinity,无穷小
(3)NaN,非数值

·要检查值是否大于或小于 +/-Infinity,你可以使用常量 Number.MAX_VALUENumber.MIN_VALUE
·MAX_VALUE 属性值接近于 1.79E+308。大于 MAX_VALUE 的值代表 “Infinity”。
·MIN_VALUE 属性是 JavaScript 里最接近 0 的正值,而不是最小的负值。约为 5e-324。小于 MIN_VALUE的值将会转换为 0

·isNaN用来判断一个变量是否为非数字类型,返回值为布尔类型。
例:

let x = 1;
console.log('x是非数值吗?' + isNaN(x));
let y = undefined;
console.log('y是非数值吗?' + isNaN(y));

输出:
在这里插入图片描述

4. String

JavaScript 的字符串类型用于表示文本数据,被引号包围。可用单引号或双引号。
JavaScript 字符串是不可更改的。这意味着字符串一旦被创建,就不能被修改。但是,可以基于对原始字符串的操作来创建新的字符串。

字符串方法总结:https://blog.csdn.net/honeymoon_/article/details/119934148?spm=1001.2014.3001.5501

5. BigInt

BigInt类型是 JavaScript 中的一个基础的数值类型,可以用任意精度表示整数。使用 BigInt,您可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制。BigInt 是通过在整数末尾附加 n 或调用构造函数来创建的。

BigInt 可以表示任意大的整数。能用于 Math 对象中的方法;不能和任何 Number 实例混合运算,两者必须转换成同一种类型。在两种类型来回转换时要小心,因为 BigInt 变量在转换成 Number 变量时可能会丢失精度。

例:

let x = 123414n;
console.log('x的数据类型是:' + typeof x);
console.log(x);
console.log('x的值是:' + x);

输出:
在这里插入图片描述

6. Symbols

符号(Symbols)是 ECMAScript 第6版新定义的。符号类型是唯一的并且是不可修改的, 并且也可以用来作为 Objectkey 的值。

注意:每个从Symbol()返回的symbol值都是唯一的。
例:

let x = Symbol();
let y = Symbol('foo');   
let z = Symbol('foo');   //这是一个新的symbol,与上面不相等
console.log(x);
console.log(typeof x);
console.log(y === z);

输出:
在这里插入图片描述

7. Null

Null 类型只有一个值: null。值 null 是一个字面量,作为尚未创建的对象,因此null 的数据类型是对象。

Nullundefined 的区别是两者值相等,但类型不相等。

例:

console.log(null == undefined);
console.log(null === undefined);

输出:
在这里插入图片描述

引用数据类型

引用类型存储在堆里。

8. Object对象

在 JavaScript中,几乎所有的事物都是对象。对象也是一个变量,但对象可以包含多个值(多个变量),每个值以 name:value 对呈现。
一个 JavaScript 对象就是键和值之间的映射。键是一个字符串(或者 Symbol),值可以是任意类型的值。
对象属性有两种寻址方式:

对象名.属性名
对象名["属性名"];

例:

let object1 = {
  id: 1,
  name: '第一'
};
  console.log(object1);
  console.log(typeof object1);
  console.log(object1 instanceof Object);

输出:
在这里插入图片描述

对象有两个常用方法: Object.keys()Object.values()

  • Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
    语法:Object.keys(obj)

  • Object.values()方法返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用for…in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。
    语法:Object.values(obj)

例:

let obj = {
  name: '小明',
  age: '18',
  sex: '男'
}
console.log(Object.keys(obj));
console.log(Object.values(obj));

输出:
在这里插入图片描述

9. 数组

数组由方括号构成,其中包含用逗号分隔的元素列表。

例:

 let nums1 = [1, 2,3 ,0 ,0 ,0];
 console.log(typeof nums1);
 console.log(nums1 instanceof Array);

输出:
在这里插入图片描述

数组方法的总结请点击:https://blog.csdn.net/honeymoon_/article/details/119783631?spm=1001.2014.3001.5502

10. 函数

一般来说,一个函数是可以通过外部代码调用的一个“子程序”(或在递归的情况下由内部函数调用)。像程序本身一样,一个函数由称为函数体的一系列语句组成。值可以传递给一个函数,函数将返回一个值。

在JavaScript中,每个函数其实都是一个Function对象。

如果一个函数中没有使用return语句,则它默认返回undefined。要想返回一个特定的值,则函数必须使用 return 语句来指定一个要返回的值。(使用new关键字调用一个构造函数除外)。

(1) 函数定义

  1. 函数声明(函数语句)
function 函数名(形参1,形参2 ...) { 函数体 }
  1. 函数表达式
    不以function开头的函数语句就是函数表达式定义。
  • 命名函数
var myFunction = function namedFunction(){
    // statements
}
  • 匿名函数
var myFunction = function() {
    // statements
}
  • 当函数只使用一次时,通常使用立即执行函数IIFE (Immediately Invokable Function Expressions)。
(function() {
    函数体
})();
  1. 箭头函数
(参数1, 参数2) => { 函数体 } 
  • 零参数需要用()表示. 只有一个参数时不需要括号。
  • 函数体多条语句需要用大括号括起来,而单个表达式时则不需要。表达式expression也是该函数的隐式返回值。

(2) 检测函数是否存在
可以通过 typeof 操作符检测一个函数是否存在。在下面的例子中,检测window对象是否拥有一个noFunc函数的属性。

if ('function' === typeof window.noFunc) {
   //存在
 } else {
   // 不存在
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值