1. JavaScript是什么?
① 在浏览器中运行
② 是编程语言
③ 作用:完成人与页面交互
2. JavaScript组成:ECMA规范 + WebAPIs (Dom Bom)
3. JavaSctipt有内部,外部,行内 三种书写位置
<body>
<script>alert('我是弹窗')</script>
<button οnclick="alert('点击我~~')"></button>
</body>
// 单行注释 快捷键:ctrl + /
/* */ 双行注释 快捷键:shift+ alt + A
4. 输入输出语法
1)document.write('要出的内容') 作用:向body输出内容
2) 页面弹窗: alert('XXX')
3) console.log('控制台打印')
4) prompt('请输入您的姓名') 作用:显示一个对话框
# 变量
1. 字面量:在计算机中描述事/物
- [ ]数组字面量 , [ ]对象字面量 , 数字字面量
2. 变量
- 用来存放数据,是"容器"
### 变量的基本使用
1. 声明变量: let 变量名 , eg: let name
2. 交换变量的值 1. 定义第三临时变量t并 且提取num1 2.把num2的值赋值给num1 3.把临时变量t值赋给num2
```js
let num1 = 10
let num2 = 20
document.write('改变前:num1:' + num1+'num2:'+num2)
let t
t = num1
num1 = num2
num2 =t
document.write('改变后:num1:' + num1+'num2:'+num2)
```
3. 命名规范
- 不能用关键字
- 关键字:有特殊含义的字符,例如:let、var、if、for等
- 只能用下划线、字母、数字、$组成,且数字不能开头
- 字母严格区分大小写,如 Age 和 age 是不同的变量
+
+ let声明后的变量不能再次声明,var可以
### 数组
+ 数组:可以保存多个数据
+ 数组字面量用[ ] 中括号表示
1. 声明数组
```js
let arr = [ ]
let arr1 = [1,2,3]
let arr2 = ['zs','ww']
let 数组名 = [数据1,数据2,...]
let arr3 = [true,123,'zhangsan']
数组中存的内容,可以是不同的数据类型
2. 数组名[下标]
console.log(arr3[0])
```
eg:
```js
let weeks = ['周一','周二','周三','周四','周五','周六','周末']
console.log(weeks[weeks.length-1])
```
### 常量
1. 常量:使用 const 声明的变量称为“常量”
+ 常量不允许重新赋值,声明的时候必须赋值(初始化)
### 数据类型
| 数据类型 | 描述 |
|--------------|--------------------------------------------------------|
| 基本数据类型 | |
| number | 用于表示任何数字,无论是整数还是浮点数。 |
| string | 用于表示文本数据。 |
| boolean | 表示逻辑实体,只有两个值:`true` 和 `false`。 |
| undefined | 一个特殊的关键字,表示变量已声明但未初始化(无值)。 |
| null | 一个特殊的值,表示“无值”或“空”,用于表示一个空对象引用。 |
| 引用数据类型 | |
| Object | 所有对象类型的基类,用于存储键值对、数组、函数等。 |
1. 数字类型(Number)
+ 算术运算符:+ - * / %
+ 算术运算符优先级:先乘除取余,后加减,有小括号先算小括号里面的
+ 取余运算符:来判断某个数字是否能被整
Ps:NaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果
1. NaN 是粘性的。任何对 NaN 的操作都会返回 NaN
```js
console.log(NaN + 2) // NaN
```
2. 字符串类型(string)
+ 字符串:单引号('') 、双引号("")或反引号( ` ) 包裹的数据都叫字符串
```js
let str = 'zs'
let str1 = "ww"
let str3 = '我是一名"学生"' // 外单内双 外双内单
// 字符串拼接
let money = 1000
let desc = "我的余额为"+money+"元"
let desc1 = `我的余额为${money}元`
```
3. 布尔类型(boolean)
+ 表示肯定或否定时在计算机中对应的是布尔类型数据。
+ true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)
4. 未定义类型(undefined)
+ 只声明变量,不赋值的情况下,变量的默认值为 undefined
```js
let age // 声明变量但未赋值
document.write(age) // 输出undefined值
```
5. null(空类型)
+ let obj = null
+ null 和 undefined 区别:
- undefined 表示没有赋值
- null 表示赋值了,但是内容为空
#### 检测数据类型
1. 通过 typeof 关键字检测数据类型
+ 作为运算符: typeof x
+ 函数形式: typeof(x)
```js
console.log(typeof money) // 直接返回数据类型的名称
console.log(typeof str)
console.log(typeof true)
let res = typeof(age)
// 变量 instanceof 类 返回boolean
let arr = []
console.log(arr instanceof String)
```
#### 数据类型的转换
+ 显示转换和隐式转换