JavaScript的数据类型及区别

简介: JavaScript的数据类型及区别一.JavaScript的数据类型分类js的数据类型分为值类型(基础类型/原始类型)和引用数据类型两大类。其中 值类型(基本类型/原始类型):字符串(String) 数字(Number) 布尔(Boolean) 对空(Null) 未定义(Undefined) Symbol(es6新增的,独一无二) 引用数据类型(混合数据类型):对象(Object) 数组(Array) 函数(Function)1.值类型 // 1.字符串 string 由单引号 或 双引号 包含的内容 var str1="赵凡";

JavaScript的数据类型及区别




一.JavaScript的数据类型分类

js的数据类型分为值类型(基础类型/原始类型)和引用数据类型两大类。其中


值类型(基本类型/原始类型):字符串(String) 数字(Number) 布尔(Boolean) 对空(Null) 未定义(Undefined) Symbol(es6新增的,独一无二)


引用数据类型(混合数据类型):对象(Object) 数组(Array) 函数(Function)


1.值类型


// 1.字符串  string     由单引号 或 双引号 包含的内容varstr1="赵凡";
varstr2='赵凡Plus';
console.log(str1,str2);
// 字符串的拼接    +console.log(str1+"Pro"+str2);
// 2.数字  number    整数型   浮点型varnum1=10;
console.log(num1);
varnum2=10.00;
console.log(num2);
// 科学计数法   e   10的多少次方varnum3=8888e5;
console.log(num3);
varnum3=8888e-8;
console.log(num3);
// 进制   varnum4=010;//0开头的代表  八进制console.log(num4);
varnum5=0x11a;//0123456789abcdef     0x开头表示十六进制console.log(num5);
// 3.布尔(值) Boolean   逻辑  只包含两个值  true  falsevarbool1=true;
varbool2=false;
console.log(bool1);
console.log(bool2);
if(bool2){
console.log("真")
    }else{
console.log("假")
    }
// 4.对空  null    清空变量vara="沈春阳";
varb=null;
a=null;
console.log(a);//nullconsole.log(b);
varx=null;
// 5.未定义  undefined    声明 未赋值varn;
console.log(n);//undefined

2.引用数据类型

 

// 1.对象  object   {key:value,key:value...}   键值对varobj1={
name:"诸葛成",
sex:"不详",
age:22,
hobby:function(){
console.log("干啥啥不行")
        }
    }
console.log(obj1);
console.log("姓名:"+obj1.name);
console.log("性别:"+obj1.sex);
obj1.hobby();
// 2.数组   array   [数组项1,数组项2,...]  数组项可以使任意数据类型vararr1=[0,1,2,3,4,5];
console.log(arr1);
vararr2=[0,"hello",true];
console.log(arr2);
// 数组的索引值   从0开始console.log(arr2[0]);
console.log(arr2[1]);
// 3.函数  function    方法   功能varfunc1=function(){
// 执行代码块console.log("这是一个方法")
    }
// 调用方法/函数func1();

3.值类型数据与引用数据类型的区别

 

// 值类型:string number boolean null undefined  symbolvarm=10;
varn=m;
console.log(m);
console.log(n);
m=20;
console.log(n); //10console.log(m); //20// 引用类型:object array functionvarobj1= {
name: "王选东"    }
console.log(obj1); //{name:"王选东"}varobj2=obj1;
console.log(obj2); //{name:"王选东"}obj2.name="王大炮";
console.log(obj2); //{name:"王大炮"}console.log(obj1); //{name:"王大炮"}


根据以上代码可以看出,变量的数据类型为值类型时,两个变量其中一个改变不会影响两外一个值,而变量的数据数据类型为引用数据类型时,两个变量其中一个变量改变会影响另一个变量的值。


图片.png


4.数据类型的判断


// 判断数据类型   typeof   返回数据类型varnum=0;
console.log(typeof(num));//numbervarstr="";
console.log(typeofstr);//stringvarbool=false;
console.log(typeofbool);//booleanvarx=null;
console.log(typeofx);//object   null   空对象vary;
console.log(typeofy);//undefinedvarobj={name:"张三"};
console.log(typeofobj);//objectvararr=[1,2,3,4,5];
console.log(typeofarr);//objectvarfunc=function(){};
console.log(typeoffunc);//function//使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "object"。//与 typeof 方法不同的是,instanceof方法要求开发者明确地确认对象为某特定类型。通常来讲,使用 instanceof 就是判断一个实例是否属于某种类型。// instanceof   操作符console.log(arrinstanceofArray);
console.log(objinstanceofArray);
// Array.isArray()    是否是一个数组console.log(Array.isArray(arr));
console.log(Array.isArray(obj));

5.数据类型的转换

// 数据类型的转换console.log(typeofString(num));//stringconsole.log(Number(bool));//0console.log(Boolean(str));//false


讲解视频链接:

1.https://www.bilibili.com/video/BV1Lf4y1U7Cr/

2.https://www.bilibili.com/video/BV1UC4y1H7xC/

3.https://www.bilibili.com/video/BV1zK411W7M4/



相关文章
|
5天前
|
JavaScript 前端开发
js变量的作用域、作用域链、数据类型和转换应用案例
【4月更文挑战第27天】JavaScript 中变量有全局和局部作用域,全局变量在所有地方可访问,局部变量只限其定义的代码块。作用域链允许变量在当前块未定义时向上搜索父级作用域。语言支持多种数据类型,如字符串、数字、布尔值,可通过 `typeof` 检查类型。转换数据类型用 `parseInt` 或 `parseFloat`,将字符串转为数值。
12 1
|
8天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
19 3
|
9天前
|
JavaScript 前端开发
js开发:请解释原型继承和类继承的区别。
JavaScript中的原型继承和类继承用于共享对象属性和方法。原型继承通过原型链实现共享,节省内存,但不支持私有属性。
17 0
|
2天前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】JavaScript基础入门:变量、数据类型与运算符
【4月更文挑战第30天】本文介绍了JavaScript的基础知识,包括变量(var、let、const)、数据类型(Number、String、Boolean、Undefined、Null及Object、Array)和运算符(算术、赋值、比较、逻辑)。通过实例展示了如何声明变量、操作数据类型以及使用运算符执行数学和逻辑运算。了解这些基础知识对初学者至关重要,是进阶学习JavaScript的关键。
|
3天前
|
前端开发 JavaScript
【Web 前端】 js中call、apply、bind有什么区别?
【4月更文挑战第22天】【Web 前端】 js中call、apply、bind有什么区别?
【Web 前端】 js中call、apply、bind有什么区别?
|
3天前
|
存储 JavaScript 前端开发
JavaScript引用数据类型
JavaScript引用数据类型
|
3天前
|
JavaScript 前端开发
JavaScript 基本数据类型
JavaScript 基本数据类型
|
3天前
|
JavaScript 前端开发
【Web 前端】JS中检测数据类型的有哪些?
【4月更文挑战第22天】【Web 前端】JS中检测数据类型的有哪些?
|
3天前
|
存储 前端开发 JavaScript
【Web 前端】JS数据类型有哪些?区别?
【4月更文挑战第22天】【Web 前端】JS数据类型有哪些?区别?
|
5天前
|
JavaScript 前端开发
js的let、const、var的区别以及应用案例
【4月更文挑战第27天】ES6 中,`let` 和 `const` 是新增的变量声明关键字,与 `var` 存在显著差异。`let` 允许重新赋值,而 `const` 不可,且两者都具有块级作用域。`var` 拥有函数级作用域,并可在函数内任意位置访问。`let` 和 `const` 声明时必须初始化,而 `var` 不需。根据需求选择使用:局部作用域用 `let`/`const`,全局或函数范围用 `var`,不可变值用 `const`。
14 2