JavaScript 基础
第三章 常量
一、常量的基本使用
- 概念:使用 const 声明的变量称为“常量”。
- 使用场景:当某个变量永远不会改变的时候,就可以使用 const 来声明,而不是let。
- 命名规范:和变量一致
- 常量使用
// 声明一个常量
const PI = 3.14
// 输出这个常量
console.log(PI)
- 注意: 常量不允许重新赋值,声明的时候必须赋值(初始化)
- 小技巧:不需要重新赋值的数据使用const
二、总结
- let — 现在实际开发变量声明方式。
- var — 以前的声明变量的方式,会有很多问题。
- const — 类似于 let ,但是变量的值无法被修改。
第四章 数据类型
- 计算机世界中的万事万物都是数据。 计算机程序可以处理大量的数据,为什么要给数据分类?
- 更加充分和高效的利用内存
- 也更加方便程序员的使用数据
- JS 数据类型整体分为两大类:
- 基本数据类型
- number 数字型
- string 字符串型
- boolean 布尔型
- undefined 未定义型
- null 空类型
- 引用数据类型
- 基本数据类型
一、数字类型(number)
- 即我们数学中学习到的数字,可以是整数、小数、正数、负数。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript 基础 - 数据类型</title>
</head>
<body>
<script>
let score = 100 // 正整数
let price = 12.345 // 小数
let temperature = -40 // 负数
document.write(typeof score) // 结果为 number
document.write(typeof price) // 结果为 number
document.write(typeof temperature) // 结果为 number
</script>
</body>
</html>
- JavaScript 中的正数、负数、小数等 统一称为 数字类型。
- 注意事项
- JS 是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认
- Java是强数据类型 例如 int a = 3 必须是整数
二、算术运算符
- 数字可以有很多操作,比如,乘法 * 、除法 / 、加法 + 、减法 - 等等,所以经常和算术运算符一起。
- 数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。
- +:求和
- -:求差
- *:求积
- /:求商
- %:取模(取余数)
- 开发中经常作为某个数字是否被整除
- 同时使用多个运算符编写程序时,会按着某种顺序先后执行,我们称为优先级。
- JavaScript中,优先级越高越先被执行,优先级相同时以书从左向右执行。
- 乘、除、取余优先级相同
- 加、减优先级相同
- 乘、除、取余优先级大于加、减
- 使用 () 可以提升优先级
- 总结: 先乘除后加减,有括号先算括号里面的
- NaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果。
- NaN 是粘性的。任何对 NaN 的操作都会返回 NaN。
<!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>
</head>
<body>
<script>
// js 弱数据类型的语言 只有当我们赋值了,才知道是什么数据类型
// let num = 'alex'
// let num = 10.11
// console.log(num)
console.log(1 + 1) // 2
console.log(1 * 1) // 1
console.log(1 / 1) // 1
console.log(4 % 2) // 求余数 0
console.log(5 % 3) // 求余数 2
console.log(3 % 5) // 求余数 3
// java 强数据类型的语言 int num = 10
console.log('alex' - 2) // NaN
console.log(NaN - 2) // NaN
console.log(NaN + 2) // NaN
console.log(NaN / 2) // NaN
console.log(NaN === NaN) // false
</script>
</body>
</html>
- 案例:计算圆的面积
<!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>
</head>
<body>
<script>
// 1. 页面弹出输入框
let r = prompt('请输入圆的半径:')
// 2. 计算圆的面积(内部处理)
let re = 3.14 * r * r
// 3. 页面输出
document.write(re)
// NaN not a number
</script>
</body>
</html>
三、字符串类型(string)
- 通过单引号(‘’) 、双引号(“”)或反引号( ` ) 包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
- 注意事项:
- 无论单引号或是双引号必须成对使用
- 单引号/双引号可以互相嵌套,但是不以自已嵌套自已
- 必要时可以使用转义符
\
,输出单引号或双引号
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript 基础 - 数据类型</title>
</head>
<body>
<script>
let user_name = '小明' // 使用单引号
let gender = "男" // 使用双引号
let str = '123' // 看上去是数字,但是用引号包裹了就成了字符串了
let str1 = '' // 这种情况叫空字符串
documeent.write(typeof user_name) // 结果为 string
documeent.write(typeof gender) // 结果为 string
documeent.write(typeof str) // 结果为 string
</script>
</body>
</html>
1. 字符串拼接:
- 场景: + 运算符 可以实现字符串的拼接。
- 口诀:数字相加,字符相连
<!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>
</head>
<body>
<script>
// let str = 'alex'
// let str1 = "alex"
// let str2 = `中文`
// console.log(str2)
// console.log(11)
// console.log(`11`)
// console.log(str)
// console.log('str')
// console.log('alex老师讲课非常有"基情"')
// console.log("alex老师讲课非常有'基情'")
// console.log('alex老师讲课非常有\'基情\'')
// 字符串拼接
// console.log(1 + 1)
// console.log('alex' + '老师')
let age = 25
// document.write('我今年' + 19)
// document.write('我今年' + age)
// document.write('我今年' + age + '岁了')
document.write('我今年' + age + '岁了')
</script>
</body>
</html>
2. 模板字符串
- 使用场景
- 拼接字符串和变量
- 在没有它之前,要拼接变量比较麻烦
- 语法
- `` (反引号)
- 在英文输入模式下按键盘的tab键上方那个键(1左边那个键)
- 内容拼接变量时,用 ${ } 包住变量
3. 总结
3.1 JavaScript中什么样数据我们知道是字符串类型?
- 只要用 单引号、双引号、反引号包含起来的就是字符串类型
3.2 字符串拼接比较麻烦,我们可以使用什么来解决这个问题?
- 模板字符串, 可以让我们拼接字符串更简便
3.3. 模板字符串使用注意事项
- 用什么符号包含数据?
- 反引号
- 用什么来使用变量?
- ${变量名}
4. 案例:页面输出用户信息
<!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>
</head>
<body>
<script>
// let age = 20
// // 模板字符串 外面用`` 里面 ${变量名}
// document.write(`我今年${age}岁了`)
let uname = prompt('请输入您的姓名:')
let age = prompt('请输入您的年龄:')
// 输出
document.write(`大家好,我叫${uname}, 我今年贵庚${age}岁了`)
</script>
</body>
</html>
四、布尔类型(boolean)
- 表示肯定或否定时在计算机中对应的是布尔类型数据。
- 它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript 基础 - 数据类型</title>
</head>
<body>
<script>
// pink老师帅不帅?回答 是 或 否
let isCool = true // 是的,摔死了!
isCool = false // 不,套马杆的汉子!
document.write(typeof isCool) // 结果为 boolean
</script>
</body>
</html>
五、未定义类型(undefined)
- 未定义是比较特殊的类型,只有一个值 undefined。
- 什么情况出现未定义类型?
- 只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript 基础 - 数据类型</title>
</head>
<body>
<script>
// 只声明了变量,并末赋值
let tmp;
document.write(typeof tmp) // 结果为 undefined
</script>
</body>
</html>
- 工作中的使用场景:
- 我们开发中经常声明一个变量,等待传送过来的数据。
- 如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined,就判断用户是否有数据传递过来。
注:JavaScript 中变量的值决定了变量的数据类型。
六、空类型(null)
- JavaScript 中的 null 仅仅是一个代表“无”、“空”或“值未知”的特殊值
let obj = null
console.log(obj) // null
- null 和 undefined 区别:
- undefined 表示没有赋值
- null 表示赋值了,但是内容为空 null
- 开发中的使用场景:
- 官方解释:把 null 作为尚未创建的对象
- 大白话: 将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null
七、总结
1. 布尔数据类型有几个值?
- true 和 false
2. 什么时候出现未定义数据类型?以后开发场景是?
- 定义变量未给值就是 undefined
- 如果检测变量是 undefined 就说明没有值传递过来
3. null 是什么类型? 开发场景是?
- 空类型
- 如果一个变量里面确定存放的是对象,如果还没准备好 对象,可以放个null
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript 基础 - 数据类型</title>
</head>
<body>
<script>
let score = 100 // 正整数
let price = 12.345 // 小数
let temperature = -40 // 负数
document.write(typeof score) // 结果为 number
document.write(typeof price) // 结果为 number
document.write(typeof temperature) // 结果为 number
</script>
</body>
</html>
八、检测数据类型
1. 控制台输出语句
2. 通过 typeof 关键字检测数据类型
- typeof 运算符可以返回被检测的数据类型。它支持两种语法形式:
- 作为运算符: typeof x (常用的写法)
- 函数形式: typeof(x)
- 换言之,有括号和没有括号,得到的结果是一样的,所以我们直接使用运算符的写法
<!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>
</head>
<body>
<script>
let num = 10
console.log(typeof num)
let str = 'alex'
console.log(typeof str)
let str1 = '10'
console.log(typeof str1)
let flag = false
console.log(typeof flag)
let un
console.log(typeof (un))
let obj = null
console.log(typeof obj)
let num1 = prompt('请输入第一个数:')
console.log(typeof num1)
</script>
</body>
</html>
<!--
number
string
string
boolean
undefined
object
string
-->