JS-数据类型

一.概述  

        JS是一门弱类型语言,这意味着不用提前声明变量的类型,在程序运行过程中,只要该变量被赋值,则类型会被自动确定。也意味着相同的变量可用作不同的数据类型。

var age = '12'    //此时age是字符串型
age = 12    //此时age是数值型

JS中数据类型分为:

(1)简单数据类型

(2)复杂数据类型

简单数据类型:数值型,字符串型,布尔型,未定义,空(Number,String,Boolean,Undefined,Null)

复杂数据类型:对象(object) 

二.简单数据类型

number数值型,包括小数
string字符串型
boolean布尔型
undefined未定义,声明了变量但没有赋值,此时该变量未定义
null初始化变量为null

1.数值型

(1)包括整数和浮点数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = 12;
        var n2 = 12.12;
        console.log(typeof n1,typeof n2); //typeof是单目操作符,返回的是右侧数据的类型
    </script>
</head>
<body>
</body>
</html>

 (2)数值的进制表示

JS中八进制前面加0,十六进制前面加 0x,默认显示的是十进制。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = 010;
        var n2 = 0xa;
        console.log(n1,n2);
    </script>
</head>
<body>
</body>
</html>

(3)数值型范围

 Number.MAX_VALUE取最大值,Number.MIN_VALUE取最小值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        console.log(Number.MAX_VALUE,Number.MIN_VALUE);
    </script>
</head>
<body>
</body>
</html>

 

(4)数值型的三个特殊值

Infinity ,代表无穷大,大于任何数值

-Infinity ,代表无穷小,小于任何数值

NaN ,Not a number,代表一个非数值,例如:字符串-10得到的是NaN

isNaN():来判断一个变量是否为非数字的类型,返回 true 或者 false

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = Number.MAX_VALUE * 2;
        var n2 = Number.MIN_VALUE * 2;
        var n3 = 'str'
        console.log(n1,n2,isNaN(n3));
    </script>
</head>
<body>
</body>
</html>

2.字符串型

(1)可以由单引号或双引号包括,但是推荐使用单引号,引号嵌套遵循就近原则

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = 'str1'
        var n2 = "str2"
        var n3 = 'str"str"str'
        console.log(typeof n1,typeof n2);
    </script>
</head>
<body>
</body>
</html>

(2)转义字符

(3)字符串长度

字符串是由字符组成,length属性统计的是字符的个数。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = 'str1我的';
        console.log(n1.length); //结果是6
    </script>
</head>
<body>
</body>
</html>

 (4)字符串拼接

多个字符串之间可以使用 + 进行拼接,其拼接方式为 字符串 + 任何类型 = 拼接之后的新字符串

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = 12 +'str1我的'+ 12
        console.log(n1);    //12str1我的12
    </script>
</head>
<body>
</body>
</html>

3.布尔型

(1)布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0。

4.undefined

(1)一个声明后没有被赋值的变量会有一个默认值 undefined ( 如果进行相连或者相加时,注意结果)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var variable;
        console.log(variable); // undefined
        console.log('你好' + variable); // 你好undefined
        console.log(11 + variable); // NaN
        console.log(true + variable); // NaN
    </script>
</head>
<body>
</body>
</html>

5.null

 (1)一个声明变量给 null 值,里面存的值为空

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var vari = null;
        console.log('你好' + vari); // 你好null
        console.log(11 + vari); // 11
        console.log(true + vari); // 1
    </script>
</head>
<body>
</body>
</html>

三.简单数据类型转换

使用表单、prompt 获取过来的数据默认是字符串类型的

1.转化为字符串类型

toString()
String()
+拼接        隐式转换

(1)toString()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = 12;
        console.log(typeof n1.toString()); //string
    </script>
</head>
<body>
</body>
</html>

(2)String()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = 12;
        console.log(typeof String(n1)); //string
    </script>
</head>
<body>
</body>
</html>

2.转化为数值型

parseInt(string)
parseFloat(string)
Number(string)
- * /隐式转换

(1)parseInt()

整数和浮点数都能转换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = '12';
        var n2 = '12.12';
        console.log(n1,typeof parseInt(n1)); //12 Number
        console.log(n2,typeof parseInt(n2)); //12.12 Number
    </script>
</head>
<body>
</body>
</html>

(2)parseFloat()

 整数和浮点数都能转换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = '12';
        var n2 = '12.12';
        console.log(n1,typeof parseFloat(n1)); //12 Number
        console.log(n2,typeof parseFloat(n2)); //12.12 Number
    </script>
</head>
<body>
</body>
</html>

(3)Number() 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = '12';
        var n2 = '12.12';
        console.log(n1,typeof Number(n1)); //12 Number
        console.log(n2,typeof Number(n2)); //12.12 Number
    </script>
</head>
<body>
</body>
</html>

(4)隐式转换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = '12'- 10;
        console.log(n1,typeof n1); //2 Number
    </script>
</head>
<body>
</body>
</html>

(5)数字开头的字符串也可以转化

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = '12num';
        console.log(parseInt(n1),typeof parseInt(n1)); //12 Number
    </script>
</head>
<body>
</body>
</html>

3.转化为布尔型

代表空、否定的值会被转换为 false ,如 ''、0、NaN、null、undefined

其余值都会被转换为 true

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var n1 = '';
        var n2 = 12
        console.log(Boolean(n1),Boolean(n2)); //false true
    </script>
</head>
<body>
</body>
</html>

四.字面量

字面量是在一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值。 

数字字面量:8, 9, 10

字符串字面量:'黑马程序员', "大前端" 

布尔字面量:true,false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值