JavaScript基础-20220801

  第一天的内容

---
typora-root-url: img
---

# JavaScript概述

## 为什么学习JavaScript

一个页面构成由三个部分组成:结构(html)+表现(css)+行为(js)

![1659316286320](/1659316286320.png)

## JavaScript的介绍

JavaScript是一种支持面向对象的跨平台的脚本编程语言(编程语言)

面向对象:属于编程语言中核心思想

跨平台:可以在不同的操作系统中运行

脚本语言:依赖于某些特点的环境才可以运行

## JavaScript发展史

ECMAScript简称ES 用于制定语法标准。规定了代码应该如何编写

## JavaScript应用场景

1、表单验证

2、特效

3、小游戏

总结:只要是基于浏览器的相关功能都可以实现

## JavaScript组成

在**浏览器端js**是由三个部分组合起来

1、ES

2、BOM 表示浏览器对象模型  就可以控制到浏览器功能

3、DOM 表示文档对象模型 用于控制页面上的元素

# JS在HTML中书写位置

## 行内

```html
<!-- 1、js的书写位置  行内方式 -->
<!-- onclick 表示 当元素被点击时做什么 javascript:; 表示执行js代码 其中js的代码写在:与;之间,如果没有js代码表示什么都不做-->
<button onclick="javascript:;" >按钮</button>
<!-- alert 是js中内置的函数 用于弹出内容  内容中注意使用引号 -->
<button onclick="javascript:alert('你好');" >按钮</button>
```

## 内嵌

由于行内方式 结构与行为不分离导致代码维护困难

```html
<!-- 2、js的书写位置 内嵌方式  此方式跟页面载入事件有关系,在不理解情况下先写到最后 -->
<script>
    alert("hello world");
</script>
```

## 外联

1、创建js文件

![1659318311692](/1659318311692.png)

2、引入文件

![1659318338029](/1659318338029.png)

注意:一旦使用外联方式(src属性指定) script标签中嵌套的代码无效

>总结:三种方式推荐使用的是外联,但是课堂上为了方便写代码。大多都使用内嵌方式

# JS中的输出语句

## alert()

页面上弹出一些内容

```html
<!-- 1、alert 系统弹出内容 在alert中指定内容 -->
<script>
    alert('你确定要删除数据吗?')
</script>
```

## document.write()

```html
<!-- 2、document.write() 直接在页面上输入内容 -->
<script>
document.write('<h1>今日头条</h1>')
</script>
```

## prompt()

```html
<!-- 
    3、prompt() 询问 
    var res = prompt('你喜欢谁?') 表示将用户输入的结果接受 并且保存到res变量中
    alert(res); 表示将res变量的结果弹出
-->
<script>
    var res = prompt('你喜欢谁?');
    alert(res);
</script>
```

## confirm()

```html
<!-- 4、confirm  询问 只可以 选中是与否 -->
    <script>
        confirm('你今天18岁?')
    </script>
```

## console.log()

```html
<!-- 5、console.log() 控制台中输出内容 以后可以使用该语句进行代码的测试,可以在怀疑出问题的位置 对内容进行输出 查看结果 -->
    <script>
        console.log('js代码的测试方式,目测')
    </script>
```

# JS中注释

```html
<script>
        // 1、表示单行注释

        /*
            2、多行注释。只要在注释符号中间的内容 都是备注说明
        */
    </script>
```

# JS的变量(重点)

## 表达式

例如需要进行一些数学的运算,每一种运算都是一种表达式,例如 1 + 1 就是一种表达式 可以得到一定结果。表

达式的结果后期是绝对会使用。在编程语言中,也是需要进行大量的计算。每一次计算的结果也是后期要使用的。

也需要存储。所以需要存储数据的一种容器 变量就是存储数据的容器

## 变量声明

```javascript
// 1、变量声明  就是创建一个变量
// 语法是: var 变量名称  
// var 是关键字  变量名称是我们自己指定的一个标识(只要满足变量命名规则即可)
var name;
```



## 变量赋值

```javascript
  // 2、变量赋值 一定要保证变量先存在 变量的第一次赋值也叫做初始化
var age;
// 变量赋值 读法 将18这个值赋值给变量age
age = 18;
// 将age变量中的值在控制台中输出
console.log(age);
// 3、一般创建变量与赋值同时使用
var money = -1000;
console.log(money);

// 同时创建多个变量 变量之间使用逗号分割
var height = 1.8,
    weight = 180;
// 变量连续赋值
var a = b = c = d = 20;
// 表示同时输出多个变量
console.log(a, b, c, d)
```

## 变量命名规则

```html
/*
    规则
    1、可以使用数字0-9,字母a-zA-Z,下划线_,美元符$ 组成
    2、不允许以数字开头
    3、不允许使用中文
    4、区分大小写
    5、不允许使用关键字和保留字
    规范
    1、尽量语义化 - 词必达意
    2、尽量驼峰式 - 由多个单词组成时,每个单词的首字母大写  变量名称使用小驼峰,函数、类使用大驼峰
*/
// 1、没有遵守规范 使用特殊字符表示变量名称
// var  !@# = 20;
// 2、不能使用数字表示变量名称开头
// var 5n=20;
// 3、JS中严格区分大小写 age 与Age是完全不同的变量
var age = 20;
var Age = 30;
// 4、不允许使用关键字和保留字 
```

# JS数据类型(重点)

## 数据类型分类

将变量中存储的值进行归类操作,归类的类别就叫做数据类型。将值进行归类之后JS可以统一的进行控制,提供某

些功能

```javascript
1、基本类型
	1、数字类型
    2、字符串类型
    3、布尔类型
    4、undefined
    5、null
2、引用类型
	1、数组
    2、对象
    3、函数等
```

## 数字类型

只要是平常使用的数字 都是归属与数字,例如正数、负数、小数、整数都是数字类型

### 整数的基本使用

```javascript
// 1、数字类型的基本使用
var number = 10;
// 在js中可以使用typeof 关键字查看变量的数据类型
// typeof 关键字()表示调用 中间指定查看变量的名称
var res = typeof (number); //number 小写
var res2 = typeof number; //number 小写
// 使用逗号分割  同时输出res res2
console.log(res, res2);

// 修改number变量值
number = 20;
// js语言属于弱类型语言,变量可以存储任何数据类型的值
```

### 小数的使用

```javascript
// 2、小数使用
var n1 = 0.1;
var n2 = 0.2;
// 等价于 var res3 = typeof(n1) console.log(re3)
console.log(typeof(n1));
var res4 = n1 + n2;
console.log(res4);//0.30000000000000004
// 上面的结果不是0.3是因为在编程语言中是没有小数的 所以就存在精度问题
// res4.toFixed(2); 将res4变量的结果保留2位小数点
var res5 = res4.toFixed(2);
console.log(res5)
// 如果需要考虑精度问题  就需要下降单位
```

### NAN

```javascript
// 3、NAN Not a Number 表示不是一个数字 但是 确实是数字类型,但是这个值是无法表示
var n3 = 10;
var s1 = "abc";//字符串
console.log(s1*n3);
console.log(typeof(s1*n3));
```

### 数字的范围

```javascript
// 4、数字的范围  Number表示数字的构造函数名称
console.log(Number.MAX_VALUE);//MAX_VALUE 表示得到最大值
console.log(Number.MIN_VALUE);//MAX_VALUE 表示得到最小值
console.log(Number.MAX_SAFE_INTEGER);//MAX_SAFE_INTEGER 表示最大的安全整数
console.log(Infinity);//正无穷
console.log(-Infinity);//负无穷
```

## 字符串数据类型

### 存储字符串数据类型的数据

```javascript
// 1、字符串类型基本使用
// 使用单引号或者双引号将内容包裹 就是字符串类型
var s1 = '10';
console.log(typeof(s1));
// 使用双引号包裹
var s2 = "你好!你还有头发吗?";
console.log(s2,typeof s2);
```

### 字符串单双引号的嵌套

```javascript
 // 2、字符串单双引号的嵌套 默认情况下 单引号不能嵌套单引号 双引号也不能嵌套双引号 单引号可以嵌套双引号 双引号可以嵌套单引号(不能嵌套自己,只能嵌套其他)
// var s3 = ' my name's xxx'
var s4 = "my name's xxx";
console.log(s4)
```

### 字符串转义符

```javascript
// 3、转义符号  \ 表示将后面的字符原有的含义取消
        var s3 = 'my name\'s xxx';
        console.log(s3)
```

### 字符串拼接

```javascript
// 4、字符串拼接 将两个字符串组合到一起
var s4 = 'hello'
var s5 = ' world'
// 使用+符号就可以完成拼接,在JS中+符号有2个作用 同时可以进行数学加法运算与拼接字符串功能,+只有运算的都是数字才会进行加法运算 否则一律作为拼接使用
var s6 = s4 + s5;
console.log(s6)
// 先计算s4+10的结果再对结果进行输出
console.log(s4 + 10)
console.log(10 + 10)
console.log('10' + 10);
```

### 输出HTML标签

```javascript
var name = '张三';
var age = 18;
// 单引号或者双引号中间的变量名称只是一个普通的字符串
var str = '<table><tr><td>'+name+'</td><td>'+age+'</td></tr></table>';
document.write(str);
```

## 布尔类型

布尔类型只有两种值 true与false 布尔值可以用于表示事物的两面(真与假)。布尔值作用用于后面的条件判断

```javascript
var flag = true;
console.log(typeof(flag));//boolean
var flag2 = false;
console.log(typeof(flag2));
```

## undefined

```javascript
当创建一个变量 但是又不给变量赋值,系统默认就将变量设置为undefined
 // undefined
var number;
console.log(typeof(number));
```

## null

```javascript
null 表示空 也是什么都没有的含义
// null
var obj = null;
console.log(typeof obj);//object 因为null 在js中是对象
```

>建议:
>
>1、平常在使用变量时 尽可能为每一个变量设置初始值,数字 可以设置初始化为0 字符串初始值为''(空字符串) 布尔值 随意选择一个,数组初始值设置为\[](表示空数组)、对象设置为空对象{}
>
>2、建议每次使用变量 先代码顶部创建变量 最后在使用

# 运算符

## 算数运算符

```javascript
+:表示加法运算或者字符串拼接
-:减法运算
*:乘法运算
/:表示除法运算
%:求余数
var n1 = 10;
var n2 = 2;
// 数学运算 要求一定是数字
console.log('n1+n2=', n1 + n2);
console.log('n1*n2=', n1 * n2);
console.log('n1-n2=', n1 - n2);
console.log('n1/n2=', n1 / n2);
// % 求余数 除以某一个数字 得多少余多少 求余数最终得到的结果就是那个余数 例如 10 % 3  得3余1  使用余数这个符号 可以判断是否是指定数字的倍数
console.log(10%3);//1
var n3 = 5;
// n3 % 2 如果余数是0 就证明是偶数  如果余数是1 就证明是奇数
```

## 比较运算符

**比较运算符最后得到的结果永远是布尔类型**

```javascript
>:判断左边大于右边
<:判断左边小于右边
>=:判断左边大于或者等于右边
<=:判断左边小于或者等于右边
==:判断左右是否相等(只判断值) 相等得到的为真 否则为假
!=:判断左右是否不相等
===:判断左右是否全等(值与数据类型一定相同)
!==:判断左右是否不全等(只要值与数据类型有一个不一样 就是真)
var n1 = 10;
var n2 = 20;
var n3 = '10';
// >
console.log(n1>n2);//false
// <
console.log(n1<n2);//true;
// >= 
console.log(n1>=n2);//false;
// <= 
console.log(n1<=n2);//true;
// == 注意 两个等号判断相等 一个等号表示赋值
console.log(n1 == n2);//只判断值
console.log(n1 == n3);//true值判断了值 没有判断数据类型 
console.log(n1 != n2);//true
// ===
console.log(n1===n3);//值相等 数据类型不同 false
console.log(n1 !== n3);//只与数据类型中只要有一个不同就是真
```

课后习题 

1-计算两个文本框的和

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>

</body>
<script type="text/javascript">
    // 注意数据类型 可以字符串-0后得到的是数字
    var num1 = prompt("请输入第一个数字:")-0;
    var num2 = prompt("请输入第二个数字:")-0;
    // var res = Number(num1) + Number(num2);
    // console.log(res)
    // -0 减法 需要使用数字  如果某一个变量 不是数字类型 触发自动转换机制
    var res = num1 + num2;
    console.log(res);
</script>

</html>

2-小明换算温度

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>

</body>
<script type="text/javascript">
    /* 
    小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。
    它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
    提示:摄氏度与芈氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32)保留3位小数
    小数点后保留3位,使用   数字.toFixed(要保留的位数) 例:3.1415926.toFixed(3) ===> 3.142
*/
    var number = 80;
    var res = (5 / 9.0) * (number - 32);
    console.log(res.toFixed(3))
</script>

</html>

 3-递增运算

4-交换两个变量的值

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

</body>
<script type="text/javascript">
var a = 1;
var b = 2;
// 根据上面两个变量,运用变量的赋值或计算,得出a=2;b=1
var tmp = a;
// 那个变量先将值赋值给 临时变量 就先修改这个变量
a = b
// 在将b变量的值进行修改
b = tmp;
console.log(a,b);
// b=a;
// a=b;
// console.log(a,b)
</script>
</html>

5-写出奇数偶数的条件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

</body>
<script type="text/javascript">
var num = prompt("输入数字:");
if(num % 2 == 0){
    console.log('偶数')
}else{
    console.log('奇数')
}
</script>
</html>

6-战士抗洪

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

</body>
<script type="text/javascript">
// 为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
var hours = 89; // 总小时数;
var day = parseInt(89/24)
// var lastHours = 89 % 24
var lastHours = hours - day * 24;
console.log('天数:',day,'小数:',lastHours)

</script>
</html>

7-逻辑运算

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>

</body>
<script type="text/javascript">
    // 输入一个数字,判断是否能被3整除并且能被5整除
    var num = prompt("请输入你要判断的数字:");
    if ((num % 3 == 0) && (num % 5 == 0)) {
        console.log('ok')
    }
</script>

</html>

8-写出闰年的条件

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>

</body>
<script type="text/javascript">
    // 需要使用逻辑运算符
    var year = prompt("请输入年份:");
    // 闰年:条件 整除4 但是 不能整除100 或者 整除400 
    // if (year % 4 == 0 && year % 100 != 0) {
    //     console.log('是闰年');
    // } else {
    //     if (year % 400 == 0) {
    //         console.log('是闰年')
    //     } else {
    //         console.log('是平年')
    //     }
    // }

    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
        console.log('是闰年');
    } else {
        console.log('是平年');
    }

    // if(){
    //     if(){
    //         if(){

    //         }
    //     }else{

    //     }
    // }else{

    // }
    // 错误优先
    // if(XXX错误情况){
    //     代码执行到这里就不执行了
    // }
    // if(XXX错误2){
    //     代码执行到这里就不执行了
    // }

    // if(){
    //     1000行
    // }else{
    //     1行代码
    // }

</script>

</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

goto_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值