世界速读:JavaScript的数据类型及区别

2023-01-10 15:00:41     来源:阿里云

一.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);//科学计数法e10的多少次方varnum3=8888e5;console.log(num3);varnum3=8888e-8;console.log(num3);//进制varnum4=010;//0开头的代表八进制console.log(num4);varnum5=0x11a;//0123456789abcdef0x开头表示十六进制console.log(num5);//3.布尔(值)Boolean逻辑只包含两个值truefalsevarbool1=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.值类型数据与引用数据类型的区别

//值类型:stringnumberbooleannullundefinedsymbolvarm=10;varn=m;console.log(m);console.log(n);m=20;console.log(n);//10console.log(m);//20//引用类型:objectarrayfunctionvarobj1={name:"王选东"}console.log(obj1);//{name:"王选东"}varobj2=obj1;console.log(obj2);//{name:"王选东"}obj2.name="王大炮";console.log(obj2);//{name:"王大炮"}console.log(obj1);//{name:"王大炮"}

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

4.数据类型的判断

//判断数据类型typeof返回数据类型varnum=0;console.log(typeof(num));//numbervarstr="";console.log(typeofstr);//stringvarbool=false;console.log(typeofbool);//booleanvarx=null;console.log(typeofx);//objectnull空对象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

关键词: 数据类型

明星

电影