数值、类型检查、字符串、其他数据类型、类型转换(转换为字符串、数值、布尔值)、解释型语言和编译型语言——JS数据类型

目录

一、数值(Number)和大整数(Bigint)

二、类型检查(typeof)

三、字符串(String)

四、其他数据类型(布尔值、空值、未定义、符号)

五、转换为字符串(toString()方法 、String()函数——强制(显示)类型转换)

六、转换为数值

七、转换为布尔值(Boolean()函数)

八、类型转换的总结

九、解释型语言和编译型语言

小白一个。此笔记来自于跟尚硅谷老师学习,自己所写,用于自我复习。若对码友有用可参考。

数据类型,指那些可以赋值给变量的值,JS中的数据类型由原始值和对象共同组成。

javascript中一共有七种原始值

1.数值(Number)

2.大整数(Bigint)

3.字符串(String)

4.布尔值(Boolean)

5.空值(Null)

6.未定义(Undefined)

7.符号(Symbol)

其中原始值是构成各种数据的基石

        原始值在JS中是不可变类型,一旦创建就不能修改

为什么需要数据类型?

        在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分析所需内存大小不同的数据,充分利用存储空间,于是定义了数据类型。

一、数值(Number)和大整数(Bigint)

 数值(Number)      

        - 在JS中所有的整数和浮点数都是Number类型

        - JS中的数值并不是无限大的,当数值超过一定范围后会显示近似值

                数字型范围(最大和最小值)

                        Number.MAX_VALUE

                        Number.MIN_VALUE

        - 数值的三个特殊值

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

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

                NaN(Not a Number) 也是一个特殊的数值,表示非法的数值,非数值

        - 所以在JS中进行一些精度比较高的运算时要十分注意

        - isNaN(变量) 

                用来判断一个变量是否为非数字的类型,不是数字,返回true;是数字,返回false

大整数(BigInt)

        - 大整数用来表示一些比较大的整数

        - 大整数使用 结尾,它可以表示的数字范围是无限大

        如:a = 9999999999999999999999999n

注:数值和大整数不能直接进行运算,否则会报错

其它进制的数字:

        二进制 以0b开头 如0b1010,

        八进制 以0o开头

        十六进制 以0x开头

  注:输出的数字均以十进制输出,创建可以使用其他进制

	<script>
		a = 0b1010;
		console.log(a)//控制台输出10
	</script>

二、类型检查(typeof)

使用typeof  运算符 进行类型检查  语法: typeof  变量

        - typeof 用来检查不同的值的类型

        - 它会根据不同的值返回不同的结果,返回的是字符串(检查的是变量的值的类型,在JS中变量是没有类型的)

<script>
	let a = 10	
	console.log(typeof a)	
</script>

三、字符串(String)

  - 字符串

        - 在JS中使用单引号或双引号来表示字符串(字符串不能跨行,若想跨行,则在每行末尾处添加一个转义字符(反斜杠) 

	<script>
		let a = '今天天气\
		真不错!'
		console.log( a)		
	</script>

        - 转义字符 \

                \" -->   "

                \' -->    '

                \\ -->    \

                \t -->    制表符

                \n -->   换行 n是newline的意思

                \b -->  空格,b是blank的意思

        - 模板字符串(长字符串)

                - 使用反单引号  ` ` 来表示模板字符串(可以跨行使用)

                - 模板字符串中可以嵌入变量,使用 ${变量名}

        - 使用typeof检查一个字符串时会返回 "string"(加引号说明返回的是字符串)

	<script>
		let name = '孙悟空'
		let str = `你好,${name}`
		console.log(str)	//输出 你好,孙悟空
		let b = 10;
		console.log(`b = ${b}`);
	</script>

四、其他数据类型(布尔值、空值、未定义、符号)

布尔值(Boolean)

        - 布尔值主要用来逻辑判断

        - 布尔值只有两个 true 和 false

        - 使用 typeof 检查一个布尔值时会返回 "boolean"

空值(Null)

        - 空值用来表示空对象

        - 空值只有一个 null

        - 使用 typeof 检查一个空值时会返回 "object"

        - 所以使用 typeof 无法检查空值     

未定义(Undefined)

        - 当声明一个变量而没有赋值时,它的值就是Undefined

        - Undefined类型的值只有一个就是 Undefined

        - 使用 typeof 检查一个Undefined类型的值时,会返回"undefined"。     

        - undefined 和字符串相加得到 undefined字符串。 

        - undefined 和数字相加得到NaN

	<script>
		let b;
		console.log(b)// 代码输出打印:undefined
	</script>

符号(Symbol)

        - 用来创建一个唯一的标识

        - 使用 typeof 检查符号时会返回 "symbol"

	<script>
		let c = Symbol()//调用Symbol()函数创建了一个符号
		console.log(c)
	</script>

类型转换

类型转换指将一种数据类型转换为其他类型

        主要是将其他类型转换为字符串、数值和布尔值

五、转换为字符串(toString()方法 、String()函数——强制(显示)类型转换)

        1.调用 toString( ) 方法 将其他类型转换为字符串

                - 调用xxx的yyy方法: xxx.yyy( )

                - 由于 null 和 undefined 中没有 toString( ) ,所以对这两个调用 toString() 时会报错

注:xxx.toString()只是将xxx转换为字符串了,若想输出或使用,需将其赋值给变量才能使

	<script>
		let a = 100;
		console.log(typeof a,a);
        //a.toString()只是创建字符串"100"
		a = a.toString();
		console.log(typeof a, a)
	</script>

b4fcd8a008c7410aa6576a64d8bf2626.jpeg

        2.调用 String()函数 将其他类型转换为字符串,语法 String(xxx)

                - 调用xxx函数:xxx()

                注:String( )函数只是将xxx转换为字符串了,若想输出或使用,需将其赋值给变量才能使

                - 原理:

                        对于拥有 toString()方法的值调用 String()函数时,实际上就是在调用toString()方法

                        对于 null ,则直接转换为"null"

                        对于 undefined,直接转换为"undefined"

由此可见,String()函数的范围更广,故一般使用 String() 将其转换为字符串

	<script>
		let b = 33;
		console.log(typeof b,b);
		b = String(b);
		console.log(typeof b,b)
	</script>

六、转换为数值

将其他数据类型转换为数值

1.使用 Number()函数 来将其它类型转换为数值

注:Number()函数只是将xxx转换为数值了,若想输出或使用,需将其赋值给变量才能使用。

转换的情况:

- 字符串

        - 如果字符串是一个合法的数字(如"12443"),则会自动转换为对应的数字;

        - 如果字符串不是一个合法数字(不是纯数字的字符串,如"122adds2"、"adds2","qww"等),则转换为NaN;

        - 如果字符串时空串或者纯空格的字符串,则转换为0;

- 布尔值

        - true转换为1,false转换为0

- null 转换为0

- undefined 转换为NaN

2.专门用来将字符串转换为数值的两个方法(parseInt()函数,parseFloat()函数)

        parseInt()函数—— 将一个字符串转换为一个整数

                - 解析(parse)时,会自左向右读取一个字符串,直到读取到字符串中所有的有效整数

                若第一个不是有效数字,则转换为 NaN, 如字符串"ad231.22";

                若第一个是有效整数,则转换到该有效数字结束为止,如"2123ass334"转换为2123,"123.33"转换为123 

        parseFloat()函数—— 将一个字符串转换为浮点数

                - 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效小数

null 和 undefined 通过parseInt()函数,parseFloat()函数均转换为NaN

当执行parseInt()函数和parseFloat()函数时,当传的值不是字符串时,它会先把其转换为字符串再进行转换。如:

	<script>
		let a = 231.22
		a = parseInt(a)
		console.log(typeof a, a)//输出打印:number 231		
	</script>

- 所以也可以使用 parseInt() 函数来对一个数字进行取整 

七、转换为布尔值(Boolean()函数)

使用 Boolean()函数 来将其他类型转换为布尔值

注:Boolean()函数只是将xxx转换为布尔值了,若想输出或使用,需将其赋值给变量才能使用。

- 转换的情况:

        数字:

            - 除 0 和 NaN 转换为 false, 其余都是 true

        字符串:

           - 空串转换为false, 其余是true(包括纯空格的字符串也转换为true)

        null 和 undefined 都转换为false

        对象:对象都会转换为true

- 所有表示空性的没有的错误的值都会转换为 false: 0、NaN 、空串、null 、undefined、false。

八、类型转换的总结

类型转换的总结:

1.转换为字符串

         显式转换: String()函数、toString()方法(但是对于null和undefined调用该方法时会报错

         隐式转换: 任意值 + ''(空串)"

2.转换为数值

         显式转换:Number()函数

                          parseInt()函数和parseFloat()函数 分别专门用来将字符串转换为整数和  浮点数

         隐式转换: +(一元的加)

3.转换为布尔值

         显式转换:Bollean()函数

         隐式转换: !!(两次取反)

九、解释型语言和编译型语言

十、案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
   
        h2 {
            text-align: center;
        }
        table {
            /* 合并边框 */
            border-collapse: collapse;
            margin: 0 auto;
            height: 80px;
            text-align: center;
        }
        table th {
            padding: 5px 30px;
        }
        table,
        th,
        td {
            border: 1px solid #333;
        }
    </style>
</head>
<body>
    <h2>2020年12月消费支出</h2>  
    
    <script>
        let total = +prompt('总额')
        let water = +prompt('水费')
        let ele = +prompt('电费')
        let net = +prompt('网费')
        let rem = total - water - ele - net
        document.write(`
        <table>
        <tr>
            <th>银行卡余额</th>
            <th>水费</th>
            <th>电费</th>
            <th>网费</th>
            <th>银行卡余额</th>
        </tr>
        <tr>
            <td>${total}元</td>
            <td>${water}元</td>
            <td>${ele}元</td>
            <td>${net}元</td>
            <td>${rem}元</td>
        </tr>
    </table>
        `)
    </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值