JavaScript数据类型归纳


1.数据类型

在代码运行时,变量的数据类型是由 JS引擎 根据 = 右边变量值的数据类型来判断 的,运行完毕之后, 变量就确定了数据类型

JS 把数据类型分为两类:

  • 基本数据类型(Number,String,Boolean,Undefined,Null)
  • 复杂数据类型(Object)

1.1基本数据类型(不包括ES6)

简单数据类型说明默认值
Number数字型,包含整型值和浮点型值,例如18,0.180
Boolean布尔值类型,如true,false ,等价于1和0false
string字符串类型,例如"格子"“”
Nullvar a = null;声明了变量a为空值null
Undefinedvar a; 声明了变量a但是没有赋值,此时a=undefinedundefined(未定义的)
1.1.1 Number

JavaScript 数字类型既可以用来保存整数值,也可以保存小数(浮点数)

<script>
    var score = 5
    var score = 5.35
</script>
  • 数字型进制
    最常见的进制有二进制、八进制、十进制、十六进制
<script>
    var score1 = 5    //十进制
    var score2 = 05   //八进制
    var score3 = 0x5  //十六进制
</script>

在JS中八进制前面加0十六进制前面加 0x

  • 数字型范围
    JS中数字型数值的最大值用Number.MAX_VALUE表示
    JS中数字型数值的最小值用Number.MIN_VALUE表示
<script>
    console.log(Number.MAX_VALUE, Number.MIN_VALUE);
    //输出:1.7976931348623157e+308   5e-324
</script>
  • 数字型的一些特殊值
    ①数字型中用Infinity来表示无穷大,大于任何有限值,甚至大于上面提到的Number.MAX_VALUE
    ②同样地,数字型中用-Infinity来表示无穷小,小于任何有限值,甚至小于上面提到的Number.MIN_VALUE
    NaN:Not a Number,代表一个非数值
<script>
    console.log(Infinity > Number.MAX_VALUE);
    console.log(-Infinity < Number.MIN_VALUE);
    console.log(NaN);
    //true
    //true
    //NaN
</script>
  • isNaN
    这个方法用来判断非数字,并且返回一个值,如果是数字返回的是false,如果不是数字返回的是true
<script>
    var flag1 = isNaN(18);
    var flag2 = isNaN('hh');
    console.log(flag1);  //false
    console.log(flag2);  //true
</script>
1.1.2 String

字符串型可以是引号中的任意文本,其语法为 "XXX"'XXX'

<script>
    var str1 = "格子学前端";
    var str2 = '格子学前端';
</script>
  • 字符串引号嵌套
    JS可以用单引号嵌套双引号,或者用 双引号嵌套单引号 (外双内单,外单内双)
<script>
    var str1 = "格子学'前端''";
    var str2 = "格子学'前端'";
</script>
  • 字符串转义符
    类似HTML里面的特殊字符,字符串中也有特殊字符,我们称之为转义符。转义符都是 \ 开头的,常用的转义符及其说明如下:
转义符解释说明
\n换行符,n是newline
\ \斜杠\
\ ’’ 单引号
\ ‘’‘’ 双引号
\ ttab 缩进
\ b空格,b是blank的意思
  • 字符串长度
    我们可以通过字符串Stringlength 属性来得到字符串的长度
<script>
    var str = "格子";
    console.log(str.length);  //2
</script>
  • 字符串的拼接
    多个字符串之间可以使用 + 进行拼接,其拼接方式为 字符串 + 任何类型 = 拼接之后的新字符串
<script>
    var str = "格子";
    var score=18;
    console.log(str+score);  //格子18   
</script>
1.1.3 Boolean
  • 布尔类型有两个值:truefalse ,其中 true 表示,而 false 表示
  • 布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0
<script>
    var flag = true;
    console.log(flag * 2);  //2
    //在进行加减乘除计算时Boolean类型的变量的值可看作1或者0
</script>
1.1.4 undefined
  • 一个声明后没有被赋值的变量会有一个默认值 undefined
  • 值为undefined的变量与一个字符串型变量相加结果是将undefined当作字符串来看待
  • 值为undefined的变量与一个数字型变量相加,结果是NaN
<script>
    var index;
    console.log(index);   //undifined
    console.log(index+"of");  //indexof
    console.log(index+19);  //NaN   
</script>
1.1.5 null

赋给变量 null 值,里面存的值为空

<script>
    var flag = null;
    console.log(flag+"格子");  //flag格子
    console.log(flag+1);  //1
</script>
1.1.5 typeof

typeof 可用来获取检测变量的数据类型

<script>
    var age = 18;
    var flag = true;
    var str = "格子";
    var index;
    var kk = null;
    console.log(typeof (age));  //number
    console.log(typeof (flag));  //boolean
    console.log(typeof (str));  //string
    console.log(typeof (index));  //undefined
    console.log(typeof (kk));  //object
</script>

tips:

  • 存储null的变量的类型是object

2.数据类型转换

使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。通俗来说,就是把一种数据类型的变量转换成另外一种数据类型。

①转换为字符串型
方式说明案例
toString()转成字符串var num = 1; alert(num.toString());
String()转成字符串var num = 1; alert(String(num));
加号拼接字符串和字符串拼接的结果都是字符串var num =1; alert(num+“格子学前端”);
<script>
    var index1 = 18;
    var index2 = 19;
    var index3 = 20;
    console.log(index1.toString());  //toString()
    console.log(String(index2));    //String() 
    console.log(index3 + '格子');   //'+'强制连接
    //输出: 18   19   20格子
</script>
②转换为数字型
方式说明案例
parselnt(string)函数string类型转成整数数值型parselnt(‘18’)
parseFloat(string)函数string类型转成浮点数数值型parseFloat(‘18.18’)
Number()强制转换函数string类型转换为数值型Number(‘12’)
js 隐式转换(- * /)利用算术运算隐式转换为数值型‘12’-0
<script>
    //parseInt()
    console.log(parseInt('18'));  //18
    console.log(parseInt('18.18'));  //18,截去小数部分
    //parseFloat()
    console.log(parseFloat('18.99'));  //18.99
    //Number
    console.log(Number('1888'));  //1888
</script>
③转换为布尔型
方法说明案例
Boolean()函数其他类型转成布尔值Boolean(‘true’);
  • 代表空,否定的值会被转换为false,如 ’ ’ , 0, NaN , null , undefined
  • 其余的值都会被被转换为true
<script>
    console.log(Boolean(''));  //false
    console.log(Boolean(NaN)); //false
    console.log(Boolean(null));  //false
    console.log(Boolean(undefined)); //false

    console.log(Boolean(18));  //true
    console.log(Boolean('格子'));  //true
</script>
  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值