学习目标:
- 掌握数据类型
学习内容:
- 数据类型
- 数字类型
- 字符串类型
String
- 布尔类型
boolean
- 未定义类型
undefined
null
(空类型)- 检测数据类型
数据类型:
- 为什么要给数据分类
- 更加充分和高效的利用内存。
- 也更加方便程序员的使用数据。
- JS数据类型整体分为两大类
- 基本数据类型
- 引用数据类型
数字类型:
即我们数学中学习到的数字,可以是整数、小数、正数、负数。
let age = 18 //整数
let price = 88.99 //小数
JavaScript中的正数、负数、小数等 统一称为数字类型。
注意事项:
- JS是弱数据类型,变量到底属于哪种类型,只有赋值之后,我们才能确认。
- Java是强数据类型 例如 int a = 3 必须是整数。
代码:
//js 弱数据类型的语言 只有当我们赋值了,才知道是什么数据类型
let num = '雪碧'
console.log(num)
//Java 强数据类型的语言 int num = 10
数字可以有很多操作,比如,乘法*、除法/、加法+、减法-等等,所以经常和算术运算符一起。
算术运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。
+ | 求和 |
---|---|
- | 求差 |
* | 求积 |
/ | 求商 |
% | 取模(取余数) |
同时使用多个运算符号编写程序时,会按着某种顺序先后执行,我们称为优先级。
JavaScript中优先级越高越先被执行,优先级相同时按照从左向右执行。
乘、除、取余优先级相同 | ✔ |
---|---|
加、减优先级相同 | ✔ |
乘、除、取余优先级大于加、减 | ✔ |
使用()可以提升优先级 | ✔ |
总结:先乘除后加减,有括号先算括号里面的 | ✔ |
- 算术运算符优先级记忆
先乘数取余,后加减,有小括号先算小括号里面的。 - 取余运算符开发中的使用场景
来判断某个数字是否能被整除。 - NaN
- NaN代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果。
- NaN是粘性的。任何对NaN的操作都会返回NaN。
// NaN代表一个计算错误
console.log('老师' - 2) //NaN
// NaN是粘性的。任何对NaN的操作都会返回NaN
console.log(NaN + 2)//NaN
console.log(NaN == NaN)
- 案例代码
<title>练习-计算圆的面积</title>
</head>
<body>
<script>
// 1.页面弹出输入框
let r = prompt('请输入圆的半径:')
// 2.计算圆的面积 (内部处理)
let re = 3.14 * r * r
// 3.页面输出
document.write(re)
</script>
</body>
字符串类型string
:
通过单引号(‘’)、双引号(“”)或者反引号(`)包裹的数据都叫字符串。 单引号和双引号没有本质上区别,推荐使用单引号。
let str = '雪碧'//使用单引号
let str1 = "雪碧"//使用双引号
let st2 = `雪碧`//使用反引号
let tel = '110110110110'//看上去是数字,但是引号包裹了就是字符串
let str3 = ''//这种情况叫空字符串
注意事项:
- 无论单引号或是双引号必须成对使用。
- 单引号/双引号可以互相嵌套,但是不以自己嵌套自己(口诀:外双内单,或者外单内双)。
- 必要时可以使用转义符
\
,输出单引号或双引号。
- 字符串拼接
场景: +运算符 可以实现字符串的拼接。
口诀:数字相加,字符相连。
// 字符串拼接
console.log(1 + 1)
console.log('雪碧' + '宝宝')
- 模板字符串
场景:
- 拼接字符串和变量。
- 在没有它之前,要拼接变量比较麻烦。
// 在没有模板字符串之前,要拼接变量比较麻烦
document.write('大家好,我叫' + name + ',今年' + age + '岁')
语法:
- ``(反引号)。
- 在英文输入模式下按键盘的tab键上方那个键(1左边那个键)。
- 内容拼接变量时,用
${}
包住变量。
// 模板字符串 外面用`` 里面${变量名}
let age = 18
document.write(`我今年${age}岁了`)
- 案例代码
<title>练习-页面输出用户信息案例</title>
</head>
<body>
<script>
let name = prompt("请输入姓名:")
let age = prompt("请输入年龄:")
document.write(`大家好,我叫${name},今年${age}岁了`)
</script>
</body>
布尔类型boolean:
表示肯定或否定时在计算机中对应的是布尔类型数据。
它有两个固定的值true
和false
,表示肯定的数据用true
(真),表示否定的数据用false
(假)。
<title>布尔类型boolean</title>
</head>
<body>
<script>
// true false 是布尔型字面量
console.log(3 > 4)
let isCool = true
console.log(isCool)
</script>
</body>
未定义类型undefined:
未定义是比较特殊的类型,只有一个值undefined
。
- 什么情况出现未定义类型?
只声明变量,不赋值的情况下,变量的默认值为undefined
,一般很少[直接]为某个变量赋值为undefined
。
<title>布尔类型boolean</title>
</head>
<body>
<script>
// true false 是布尔型字面量
console.log(3 > 4)
let isCool = true
console.log(isCool)
</script>
</body>
- 工作中的使用场景
我们开发中经常声明一个变量,等待传送过来的数据。
如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined
,就判断用户是否有数据传递过来。
null
(空类型):
Javascript 中的null
仅仅是一个代表“无”、“空”或“值未知”的特殊值。
let obj = null
console.log(obj)
null
和undefined
区别
undefined
表示没有赋值。null
表示赋值了,但是内容为空。
// null和undefined区别
// 计算有区别
console.log(undefined + 1)//NaN
console.log(null + 1)// 1
null
开发中的使用场景
官方解释:把null
作为尚未创建的对象。
大白话:将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null
。
检测数据类型 :
- 控制台输出语句
<title>检测数据类型</title>
</head>
<body>
<script>
// 控制台输出语句
let age = 18
let name = '雪碧宝宝'
let flag = false
let buy
console.log(age)
console.log(name)
console.log(flag)
console.log(buy)
</script>
</body>
- 控制台语句经常用于测试结果来使用。
- 可以看出数字型和布尔型颜色为蓝色,字符串和
undefined
颜色为灰色。
- 通过
typeof
关键字检测数据类型
typeof
运算符可以返回被检测的数据类型。它支持两种语法形式:- 作为运算符:
typeof×
(常用的写法)。 - 函数形式:
typeof(×)
。
换言之,有括号和没有括号,得到的结果是一样的,所以我们直接使用运算符的写法。
//通过typeof关键字
let num = 10
console.log(typeof num)
let str = 'xuebi'
console.log(typeof str)
let str1 = '10'
console.log(typeof str1)
let flag1 = false
console.log(typeof flag1)
let un
console.log(typeof un)
let obj = null
console.log(typeof obj)