diff --git "a/01 \351\231\210\346\242\246\346\242\246/20231027 js\347\232\204\345\217\230\351\207\217\345\222\214\345\210\253\347\232\204\350\257\255\346\263\225\351\242\204\344\271\240.md" "b/01 \351\231\210\346\242\246\346\242\246/20231027 js\347\232\204\345\217\230\351\207\217\345\222\214\345\210\253\347\232\204\350\257\255\346\263\225\351\242\204\344\271\240.md" deleted file mode 100644 index b8212cb86dd3a3379dddedf9473b774e328b28ea..0000000000000000000000000000000000000000 --- "a/01 \351\231\210\346\242\246\346\242\246/20231027 js\347\232\204\345\217\230\351\207\217\345\222\214\345\210\253\347\232\204\350\257\255\346\263\225\351\242\204\344\271\240.md" +++ /dev/null @@ -1,608 +0,0 @@ - - - - -# 作业 - -```mysql - - - - - - Document - - - - - - - - - - - - - - - - -``` - -# 笔记 - - - -## JavaScript变量和数据类型 - -### 在 JavaScript 中有 8 种基本的数据类型(7 种原始类型和 1 种复杂类型) - -Number 代表数据类型是数值 - -- 整数 -- 浮点 -- 数组 - -String 代表字符串 - -Boolean 布尔型 - -- true -- false - -Undefined 变量未赋值 = 变量未定义 a is not define - -Null 空值 - -Object 对象 - -function 函数 - -BigInt(后续了解)大整数类型 - -Symbol(后续了解)符号类型 - -### 变量的声明:在 var 关键字 - -```js -// 定义变量同时赋值 -var name = ' 内容'; - -// 先定义再赋值 -var hobby; -hobby = '内容'; - -// 同时定义多个变量 -var a,b,c; -a=1,b=3,c=5; - -// 变量之间用;逗号隔开,分号结束 -var c=1,b=2,c=3; -``` - -不能用js关键字和保留字做变量名和常量名 - -基本上所有的编程语言都不允许变量的开始有数字 - -```js -name1 √ -_name1 √ -1name × - -console.log('1'-1); // 0 -console.log('name1'-1); // NaN -``` - -js代码在 html 内部写法,需要写一对 script 标签 - -声明 js 的变量的时候,不需要写数据类型,js 会自动根据你给的值判断它 - -定义一个变量,但此时还没有赋值,会报 undefined - -undefined 即是一种数据类型,也是一种值,也就是有变量,但没有值,连 null 都没有 null - -没有 var 定义变量也不会报错,因为写到了 window 对象中 - -### 当计算错误是会报 NaN 错误 - -```js -NaN 是计算错误 / Not a Number -如 a = '你好' -b = 2.5 -console.log(a/b) -``` - -### 两个变量交换,实现 num1 和 num2 交换 - -```js -// 第一种方法 -var num3 = num1; -var num1 = num2; -var num2 = num3; - -// 第二种方法 -num1 = num1 + num2; -num2 = num1 - num2; -num1 = num1 - num2; -``` - -### 判断一个变量此时是什么类型 - -```js -typeof 变量; -console.log(typeof 变量); -``` - -### number 类型的最大和最小值 - -```js -console.log(number.min_value); -console.log(number.max_value); -``` - -### isNaN - -判断是不是数值,不是数值为 true 是数值为 false - -单引号,双引号都可以用来标记字符串全部英文引号 '' '',引号是成对出现,且前后要一致如果内容本身有引号,那么标记的引号要相反 - -### 转义字符串 - -\ ' 单引号 - -\ '' 双引号 - -\t 制表,缩进 - -\n 换行 - -在 + 加号的左右两边只要出现一个字符串,这个 + 加号就不是加法运算,而是拼接字符串,而且得到一个新的字符串 - -强制转成数值,不然结果为11 - -```js -console.log(number('1')+1); // 2 -``` - -转换数值 - -```js -number(true); // 1 -number(false); // 0 -number(null); // 0 -number(undefined); // NaN -number(''); // 0 -``` - -转换字符串 - -0、null、undefined、NaN、'' 转成字符串为false,其他的为true - -### 字符串长度 - -```js -console.log(变量名1,length); // 返回的字符数 -``` - -### 文档中的练习 - -```js -// 练习一:定义一些变量,保存自己的个人信息: -// 比如姓名、年龄、身高、体重、爱好等等 -var name='sana'; -var age=27; -var weight=48; -var hight=166; -var hobby='dance'; - -// 练习二:定义一个变量name,赋值成coderwhy。定义一个变量admin,将name赋值给admin -var corderwhy='mina'; -var name1=coderwhy; -var admin=name1; - -// 练习三:定义变量,保存两个数字,并且对两个变量的数字进行交换 -//  方式一:使用临时变量 -var a=1,b=2; -var c=a; -var a=b; -var b=c; - -// 方式二:不使用临时变量(了解即可) -var a=a+b; -var b=a-b; -var a=a-b; - -// 练习四:让用户在浏览器中输入一个值,在JavaScript程序中使用变量接收 -// 作业:你平时在使用一些应用程序时,哪些内容可以定义成变量? -// 比如玩游戏、听歌、购物的应用程序中; -prompt('请输入名字'); -``` - -## 常见的运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ---------- | ---------- | ------ | -| + | 加法 | 2 + 3 | 5 | -| + | 连接字符串 | ‘中’+ ‘国’ | ‘中国’ | -| - | 减法 | 2 - 3 | -1 | -| * | 乘法 | 2 * 3 | 6 | -| / | 除法 | 5 / 2 | 2.5 | -| % | 取余数 | 5 % 2 | 1 | -| ** | 幂(ES7) | 2 ** 3 | 8 | - -### 取余 % 和 求幂 - - 取余运算符是 %,尽管它看起来很像百分数,但实际并无关联 - - a % b 的结果是 a 整除 b 的 余数 - -```js -console.log(10%3) -VM72:1 1 -undefined -``` - - 求幂运算 a ** b 将 a 提升至 a 的 b 次幂。(ES7中的语法,也叫做ES2016) - -在数学中我们将其表示为 a的b次方 - -```js -console.log(2**3); -VM127:1 8 -undefined - -console.log(2**4); -VM140:1 16 -undefined -``` - -### 原地修改(Modify-in-place) - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ----------------- | -------------- | ---- | -| = | 赋值 | a = 5 | 5 | -| += | 加后赋值 | a = 5, a += 2 | 7 | -| -= | 减后赋值 | a = 5, a -= 2 | 3 | -| *= | 乘后赋值 | a = 5; a *= 2 | 10 | -| /= | 除后赋值 | a = 5; a /= 2 | 2.5 | -| %= | 取模 (余数)后赋值 | 5 % 2 | 1 | -| **= | 幂后赋值 | a = 5; a **= 2 | 25 | - -### 自增、自减 - -对一个数进行加一、减一是最常见的数学运算符之一。 - -所以,对此有一些专门的运算符: - -自增 ++ 将变量加1; - -自减 -- 将变量减1; - -自增/自减只能应用于变量。 - -将其应用于数值(比如 5++)则会报错。 自增、自减 coderwhy - -运算符 ++ 和 -- 可以置于变量前,也可以置于变量后。 - - 当运算符置于变量后,被称为“后置形式”(postfix form):counter++。 - -当运算符置于变量前,被称为“前置形式”(prefix form):++counter。 - -两者都做同一件事:将变量 counter 与 1 相加。 - -### 比较运算符 - -比较运算符的结果都是Boolean类型的 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | -------- | ------ | ----- | -| == | 相等 | 4 == 3 | false | -| != | 不等于 | 4 != 3 | true | -| > | 小于 | 4 > 3 | true | -| < | 大于 | 4 < 3 | false | -| >= | 小于等于 | 4 <= 3 | false | -| <= | 大于等于 | 4 >= 3 | true | - -### === 和 == 的区别 - -普通的相等性检查 == 存在一个问题,它不能区分出 0 和 false,或者空字符串和 false这类运算: - -这是因为在比较不同类型的值时,处于判断符号 == 两侧的值会先被转化为数字; - -空字符串和 false 也是如此,转化后它们都为数字 0; - -严格相等运算符 === 在进行比较时不会做任何的类型转换; - -换句话说,如果 a 和 b 属于不同的数据类型,那么 a === b 不会做任何的类型转换而立刻返回 false; - -## 分支语句和逻辑运算符 - -### 单分支语句:if - - if(...) 语句计算括号里的条件表达式,如果计算结果是 true,就会执行对应的代码块。 - -案例一: 如果小明考试超过90分, 就去游乐场 - -“如果”相当于JavaScript中的关键字if 分数超过90分是一个条件(可以使用 > 符号) - -```html -测试分数 - -``` - -案例二:单位5元/斤的苹果,如果购买超过5斤,那么立减8元 - -注意:这里我们让用户输入购买的重量,计算出最后的价格并且弹出结果 - -```html -计算价格 - -``` - -补充一:如果代码块中只有一行代码,那么{}可以省略: - -补充二:if (…) 语句会计算圆括号内的表达式,并将计算结果转换为布尔型(Boolean)。 - -转换规则和Boolean函数的规则一致; - -数字 0、空字符串 “”、null、undefined 和 NaN 都会被转换成 false。 因为它们被称为“假值(falsy)”; - -其他值被转换为 true,所以它们被称为“真值(truthy)”; - -### 多分支语句:if.. else.. - -案例一:如果分数超过90分去游乐场,否则去上补习班 - -满足条件时,做某些事情 - -不满足(else),去做另外一些事 - -```html -测试分数 - -``` - -案例二:m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js - var m=20,n=30; - if(m>n){ - alert('m>n'); - }else{ - alert('n>m'); - } -``` - -### 多分支结构: if.. else if.. else - -多分支结构: if.. else if.. else.. - -有时我们需要判断多个条件; - -我们可以通过使用 else if 子句实现; - -案例: 分数评级: - -考试分数大于90:优秀 - -大于80小于等于90:良好 - -大于60小于等于80:合格 - -小于60分:不及格 - -```html -分数评级 - -``` - -### 三元运算符 - -```js -var result = condition ? value1 : value2; -// 计算条件结果,如果结果为真,则返回 value1,否则返回 value2。 -``` - -案例一: m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js -var res = m>n?'m大':'n大'; -alert(res); -``` - -案例二:判断一个人是否是成年人了 - -```js -var age = prompt('年龄') -var res2 = age>=18 ? '成年':'未成年'; -alert(res2); -``` - -### 认识逻辑运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ------------ | ------------- | ----- | -| && | 与: 同时为真 | false && True | false | -| \|\| | 或: 一个为真 | false or true | true | -| ! | 非: 取反 | !false | true | - -### switch语句 - -case穿透问题: 一条case语句结束后,会自动执行下一个case的语句; - -这种现象被称之为case穿透;break关键字 - -通过在每个case的代码块后添加break关键字来解决这个问题; - -注意事项:这里的相等是严格相等。 - -被比较的值必须是相同的类型才能进行匹配。 - -## while和for循环 - -### while循环 - -当条件成立时,执行代码块; - -当条件不成立时,跳出代码块; - -如果条件一直成立(为true),那么会产生死循环。 - - 这个时候必须通过关闭页面来停止死循环; - -开发中一定要避免死循环的产生; while循环 coderwhy - -while循环的练习题目: - -练习一:打印10次Hello World - -```js - var i=1; - while(i<10){ - document.write('

Hello World

') - i++; - } -``` - -练习二:打印0~99的数字 - -```js - var i=1; - while(i<100){ - document.write(i+'\n'); - i++; - } -``` - -练习三:计算0~99的数字和 - -```js - var i=1; - var s=0; - while(i<100){ - s=s+i; - i++; - } - alert(s); -``` - -练习四:计算0~99所有奇数的和 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==1){ - s=s+i; - } - i++; - } - alert(s); -``` - -练习五:计算0~99所有偶数的 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==0){ - s=s+i; - } - i++; - } - alert(s); -``` - -### do..while循环 - -do..while循环和while循环非常像,二者经常可以相互替代(不常用) - -但是do..while的特点是不管条件成不成立,do循环体都会先执行一次; - - 通常我们更倾向于使用while循环。 - -### for循环 - -| 语句段 | 例子 | 执行过程 | -| -------------- | --------- | ---------------------------------------------- | -| begin | let i = 0 | 进入循环时执行一次 | -| condition | i < 3 | 在每次循环迭代之前检查,如果为 false,停止循环 | -| body(循环体) | alert(i) | 条件为真时,重复运行 | -| step | i++ | 在每次循环体迭代后执行 | - -begin 执行一次,然后进行迭代:每次检查 condition 后,执行 body 和 step diff --git "a/02 \351\231\210\346\230\216\345\207\275/1027\347\254\224\350\256\260.md" "b/02 \351\231\210\346\230\216\345\207\275/1027\347\254\224\350\256\260.md" deleted file mode 100644 index 7d10120e6c8f0438f347ccdb55f6d8ec04405e2d..0000000000000000000000000000000000000000 --- "a/02 \351\231\210\346\230\216\345\207\275/1027\347\254\224\350\256\260.md" +++ /dev/null @@ -1,97 +0,0 @@ -````mysql - 笔记 - -let 名 = 值 //定义一个变量 const 名 = 值 //定义一个常量 number 数字类型//js没有整型啥的 NaN 表示计算时不是数字类型 String 字符串 //没有字符型 infinity 无穷大 -无穷小 boolean 布尔值 undefined 未定义 //没赋值默认为未定义 null 空 - -# 作业 - -``` - - - - - - Document - - - - - - - - - - - - - - - - - -
薪水房租水電餘額
- - -``` - -# 练习 - -``` -// 练习一:定义一些变量,保存自己的个人信息: -// 比如姓名、年龄、身高、体重、爱好等等 -let uname,uage,uheight,uweight,uhobby; -uname='韩某某'; -uage=19; -uheight=159; -uweight=160; -uhobby='女'; -docu -document.write(uname,uage,uheight,uweight,uhobby); -// 练习二:定义一个变量name,赋值成coderwhy。定义一个变量admin,将name赋值给admin -let name='coderwhy',admin; -admin=name; -console.log(admin); -// 练习三:定义变量,保存两个数字,并且对两个变量的数字进行交换 -// 方式一:使用临时变量 -let a1=1,b1=2,c; -console.log(a,b); -c=a1; -a1=b1; -b1=c; -console.log(a,b); -// 方式二:不使用临时变量(了解即可) -let a=1,b=2; -console.log(a,b); -a=a+b; -b=a-b; -a=a-b; -console.log(a,b); -// 练习四:让用户在浏览器中输入一个值,在JavaScript程序中使用变量接收 -prompt(a1); -document.write(a1); -// 作业:你平时在使用一些应用程序时,哪些内容可以定义成变量? -// 比如玩游戏、听歌、购物的应用程序中; -let HP=100; -let MP=100; -let Lv=1; -``` -```` - diff --git "a/03 \350\265\226\345\277\203\345\246\215/20231027 \345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213.md" "b/03 \350\265\226\345\277\203\345\246\215/20231027 \345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213.md" deleted file mode 100644 index 27b1f0fe693392dd2d177d7ca68e94f97c8ec343..0000000000000000000000000000000000000000 --- "a/03 \350\265\226\345\277\203\345\246\215/20231027 \345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213.md" +++ /dev/null @@ -1,544 +0,0 @@ -## JavaScript变量和数据类型 - -### 在 JavaScript 中有 8 种基本的数据类型(7 种原始类型和 1 种复杂类型) - -Number 代表数据类型是数值 - -- 整数 -- 浮点 -- 数组 - -String 代表字符串 - -Boolean 布尔型 - -- true -- false - -Undefined 变量未赋值 = 变量未定义 a is not define - -Null 空值 - -Object 对象 - -function 函数 - -BigInt(后续了解)大整数类型 - -Symbol(后续了解)符号类型 - -### 变量的声明:在 var 关键字 - -```js -// 定义变量同时赋值 -var name = ' 内容'; - -// 先定义再赋值 -var hobby; -hobby = '内容'; - -// 同时定义多个变量 -var a,b,c; -a=1,b=3,c=5; - -// 变量之间用;逗号隔开,分号结束 -var c=1,b=2,c=3; -``` - -不能用js关键字和保留字做变量名和常量名 - -基本上所有的编程语言都不允许变量的开始有数字 - -```js -name1 √ -_name1 √ -1name × - -console.log('1'-1); // 0 -console.log('name1'-1); // NaN -``` - -js代码在 html 内部写法,需要写一对 script 标签 - -声明 js 的变量的时候,不需要写数据类型,js 会自动根据你给的值判断它 - -定义一个变量,但此时还没有赋值,会报 undefined - -undefined 即是一种数据类型,也是一种值,也就是有变量,但没有值,连 null 都没有 null - -没有 var 定义变量也不会报错,因为写到了 window 对象中 - -### 当计算错误是会报 NaN 错误 - -```js -NaN 是计算错误 / Not a Number -如 a = '你好' -b = 2.5 -console.log(a/b) -``` - -### 两个变量交换,实现 num1 和 num2 交换 - -```js -// 第一种方法 -var num3 = num1; -var num1 = num2; -var num2 = num3; - -// 第二种方法 -num1 = num1 + num2; -num2 = num1 - num2; -num1 = num1 - num2; -``` - -### 判断一个变量此时是什么类型 - -```js -typeof 变量; -console.log(typeof 变量); -``` - -### number 类型的最大和最小值 - -```js -console.log(number.min_value); -console.log(number.max_value); -``` - -### isNaN - -判断是不是数值,不是数值为 true 是数值为 false - -单引号,双引号都可以用来标记字符串全部英文引号 '' '',引号是成对出现,且前后要一致如果内容本身有引号,那么标记的引号要相反 - -### 转义字符串 - -\ ' 单引号 - -\ '' 双引号 - -\t 制表,缩进 - -\n 换行 - -在 + 加号的左右两边只要出现一个字符串,这个 + 加号就不是加法运算,而是拼接字符串,而且得到一个新的字符串 - -强制转成数值,不然结果为11 - -```js -console.log(number('1')+1); // 2 -``` - -转换数值 - -```js -number(true); // 1 -number(false); // 0 -number(null); // 0 -number(undefined); // NaN -number(''); // 0 -``` - -转换字符串 - -0、null、undefined、NaN、'' 转成字符串为false,其他的为true - -### 字符串长度 - -```js -console.log(变量名1,length); // 返回的字符数 -``` - -### 文档中的练习 - -```js -// 练习一:定义一些变量,保存自己的个人信息: -// 比如姓名、年龄、身高、体重、爱好等等 -var name='sana'; -var age=27; -var weight=48; -var hight=166; -var hobby='dance'; - -// 练习二:定义一个变量name,赋值成coderwhy。定义一个变量admin,将name赋值给admin -var corderwhy='mina'; -var name1=coderwhy; -var admin=name1; - -// 练习三:定义变量,保存两个数字,并且对两个变量的数字进行交换 -//  方式一:使用临时变量 -var a=1,b=2; -var c=a; -var a=b; -var b=c; - -// 方式二:不使用临时变量(了解即可) -var a=a+b; -var b=a-b; -var a=a-b; - -// 练习四:让用户在浏览器中输入一个值,在JavaScript程序中使用变量接收 -// 作业:你平时在使用一些应用程序时,哪些内容可以定义成变量? -// 比如玩游戏、听歌、购物的应用程序中; -prompt('请输入名字'); -``` - -## 常见的运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ---------- | ---------- | ------ | -| + | 加法 | 2 + 3 | 5 | -| + | 连接字符串 | ‘中’+ ‘国’ | ‘中国’ | -| - | 减法 | 2 - 3 | -1 | -| * | 乘法 | 2 * 3 | 6 | -| / | 除法 | 5 / 2 | 2.5 | -| % | 取余数 | 5 % 2 | 1 | -| ** | 幂(ES7) | 2 ** 3 | 8 | - -### 取余 % 和 求幂 - - 取余运算符是 %,尽管它看起来很像百分数,但实际并无关联 - - a % b 的结果是 a 整除 b 的 余数 - -```js -console.log(10%3) -VM72:1 1 -undefined -``` - - 求幂运算 a ** b 将 a 提升至 a 的 b 次幂。(ES7中的语法,也叫做ES2016) - -在数学中我们将其表示为 a的b次方 - -```js -console.log(2**3); -VM127:1 8 -undefined - -console.log(2**4); -VM140:1 16 -undefined -``` - -### 原地修改(Modify-in-place) - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ----------------- | -------------- | ---- | -| = | 赋值 | a = 5 | 5 | -| += | 加后赋值 | a = 5, a += 2 | 7 | -| -= | 减后赋值 | a = 5, a -= 2 | 3 | -| *= | 乘后赋值 | a = 5; a *= 2 | 10 | -| /= | 除后赋值 | a = 5; a /= 2 | 2.5 | -| %= | 取模 (余数)后赋值 | 5 % 2 | 1 | -| **= | 幂后赋值 | a = 5; a **= 2 | 25 | - -### 自增、自减 - -对一个数进行加一、减一是最常见的数学运算符之一。 - -所以,对此有一些专门的运算符: - -自增 ++ 将变量加1; - -自减 -- 将变量减1; - -自增/自减只能应用于变量。 - -将其应用于数值(比如 5++)则会报错。 自增、自减 coderwhy - -运算符 ++ 和 -- 可以置于变量前,也可以置于变量后。 - - 当运算符置于变量后,被称为“后置形式”(postfix form):counter++。 - -当运算符置于变量前,被称为“前置形式”(prefix form):++counter。 - -两者都做同一件事:将变量 counter 与 1 相加。 - -### 比较运算符 - -比较运算符的结果都是Boolean类型的 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | -------- | ------ | ----- | -| == | 相等 | 4 == 3 | false | -| != | 不等于 | 4 != 3 | true | -| > | 小于 | 4 > 3 | true | -| < | 大于 | 4 < 3 | false | -| >= | 小于等于 | 4 <= 3 | false | -| <= | 大于等于 | 4 >= 3 | true | - -### === 和 == 的区别 - -普通的相等性检查 == 存在一个问题,它不能区分出 0 和 false,或者空字符串和 false这类运算: - -这是因为在比较不同类型的值时,处于判断符号 == 两侧的值会先被转化为数字; - -空字符串和 false 也是如此,转化后它们都为数字 0; - -严格相等运算符 === 在进行比较时不会做任何的类型转换; - -换句话说,如果 a 和 b 属于不同的数据类型,那么 a === b 不会做任何的类型转换而立刻返回 false; - -## 分支语句和逻辑运算符 - -### 单分支语句:if - - if(...) 语句计算括号里的条件表达式,如果计算结果是 true,就会执行对应的代码块。 - -案例一: 如果小明考试超过90分, 就去游乐场 - -“如果”相当于JavaScript中的关键字if 分数超过90分是一个条件(可以使用 > 符号) - -```html -测试分数 - -``` - -案例二:单位5元/斤的苹果,如果购买超过5斤,那么立减8元 - -注意:这里我们让用户输入购买的重量,计算出最后的价格并且弹出结果 - -```html -计算价格 - -``` - -补充一:如果代码块中只有一行代码,那么{}可以省略: - -补充二:if (…) 语句会计算圆括号内的表达式,并将计算结果转换为布尔型(Boolean)。 - -转换规则和Boolean函数的规则一致; - -数字 0、空字符串 “”、null、undefined 和 NaN 都会被转换成 false。 因为它们被称为“假值(falsy)”; - -其他值被转换为 true,所以它们被称为“真值(truthy)”; - -### 多分支语句:if.. else.. - -案例一:如果分数超过90分去游乐场,否则去上补习班 - -满足条件时,做某些事情 - -不满足(else),去做另外一些事 - -```html -测试分数 - -``` - -案例二:m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js - var m=20,n=30; - if(m>n){ - alert('m>n'); - }else{ - alert('n>m'); - } -``` - -### 多分支结构: if.. else if.. else - -多分支结构: if.. else if.. else.. - -有时我们需要判断多个条件; - -我们可以通过使用 else if 子句实现; - -案例: 分数评级: - -考试分数大于90:优秀 - -大于80小于等于90:良好 - -大于60小于等于80:合格 - -小于60分:不及格 - -```html -分数评级 - -``` - -### 三元运算符 - -```js -var result = condition ? value1 : value2; -// 计算条件结果,如果结果为真,则返回 value1,否则返回 value2。 -``` - -案例一: m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js -var res = m>n?'m大':'n大'; -alert(res); -``` - -案例二:判断一个人是否是成年人了 - -```js -var age = prompt('年龄') -var res2 = age>=18 ? '成年':'未成年'; -alert(res2); -``` - -### 认识逻辑运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ------------ | ------------- | ----- | -| && | 与: 同时为真 | false && True | false | -| \|\| | 或: 一个为真 | false or true | true | -| ! | 非: 取反 | !false | true | - -### switch语句 - -case穿透问题: 一条case语句结束后,会自动执行下一个case的语句; - -这种现象被称之为case穿透;break关键字 - -通过在每个case的代码块后添加break关键字来解决这个问题; - -注意事项:这里的相等是严格相等。 - -被比较的值必须是相同的类型才能进行匹配。 - -## while和for循环 - -### while循环 - -当条件成立时,执行代码块; - -当条件不成立时,跳出代码块; - -如果条件一直成立(为true),那么会产生死循环。 - - 这个时候必须通过关闭页面来停止死循环; - -开发中一定要避免死循环的产生; while循环 coderwhy - -while循环的练习题目: - -练习一:打印10次Hello World - -```js - var i=1; - while(i<10){ - document.write('

Hello World

') - i++; - } -``` - -练习二:打印0~99的数字 - -```js - var i=1; - while(i<100){ - document.write(i+'\n'); - i++; - } -``` - -练习三:计算0~99的数字和 - -```js - var i=1; - var s=0; - while(i<100){ - s=s+i; - i++; - } - alert(s); -``` - -练习四:计算0~99所有奇数的和 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==1){ - s=s+i; - } - i++; - } - alert(s); -``` - -练习五:计算0~99所有偶数的 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==0){ - s=s+i; - } - i++; - } - alert(s); -``` - -### do..while循环 - -do..while循环和while循环非常像,二者经常可以相互替代(不常用) - -但是do..while的特点是不管条件成不成立,do循环体都会先执行一次; - - 通常我们更倾向于使用while循环。 - -### for循环 - -| 语句段 | 例子 | 执行过程 | -| -------------- | --------- | ---------------------------------------------- | -| begin | let i = 0 | 进入循环时执行一次 | -| condition | i < 3 | 在每次循环迭代之前检查,如果为 false,停止循环 | -| body(循环体) | alert(i) | 条件为真时,重复运行 | -| step | i++ | 在每次循环体迭代后执行 | - -begin 执行一次,然后进行迭代:每次检查 condition 后,执行 body 和 step - diff --git "a/04 \346\235\216\346\230\216\345\201\245/20231026 Day01 \344\275\234\344\270\232.md" "b/04 \346\235\216\346\230\216\345\201\245/20231026 Day01 \344\275\234\344\270\232.md" deleted file mode 100644 index 82e95dfe701bcdff1f5e9f6bba4f82048b833718..0000000000000000000000000000000000000000 --- "a/04 \346\235\216\346\230\216\345\201\245/20231026 Day01 \344\275\234\344\270\232.md" +++ /dev/null @@ -1,87 +0,0 @@ -# Day01 作业布置 - -## 一. 完成课堂所有的代码 - -~~~ html - - - - -

你敢点我吗?

-

你能不使用行内式让我弹窗吗?

- - -

你能不使用行内式、内部式让我弹窗吗?

- - -~~~ - -js外部代码 - -~~~ js -document.querySelector('.b').addEventListener('click',() =>{ - alert('你牛!') -}) -~~~ - - - -## 二. 简单聊聊JavaScript的历史(自己的话术来总结) - -​ 网景公司想要一种语言嵌入浏览器,招募了一个天才程序员Brendan Eich,与Sun公司合作,在Brendan Eich 的带领下设计出JavaScript(大杂烩)。后来跟微软公司推出的 IE 发生了浏览器大战,为了解决开发者的噩耗,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准,规定了ECMAScript范式。 - - - -## 三. 说说你对JS引擎的理解(自己的话术总结) - - JS引擎:就是帮助我们将JavaScript代码翻译成CPU指令来执行 - - - -## 四. JavaScript的交互方式有哪些?(后两种方式) - -| 方法 | 说明 | -| -------------------- | -------------------------------------------- | -| alert('内容') | 浏览器弹出警示框 | -| console.log('内容') | 浏览器控制台打印输入信息(给程序员测试用的) | -| prompt('内容') | 浏览器弹出输入框,用户可以输入 | -| document.write(内容) | 浏览器打印出该内容 | - - - -## 五. 定义一些你日常生活或者在某些程序中见到的变量(10个)(预习) - -let count、let num、let index、let str、const name - -const age、const sex、const arr、const list、const obj - - - -## 六. 说出JavaScript中的常见数据类型以及它们代表的含义(预习) - -#### 基本数据类型: - -​ **数字型(Number):**整数或浮点数 - -​ **布尔值(Boolean):**true 和 false. - -​ **null:**表示为空 - -​ **字符串(String):**如,‘张三’ - -​ **undefined:**表示变量未定义或未赋值 - -​ **NAN:**表示该变量不是数字 - -#### 引用数据类型: - -**对象(Object)、数组(Array)、函数(Function)** - diff --git "a/04 \346\235\216\346\230\216\345\201\245/20231027 \345\237\272\347\241\200\351\242\204\344\271\240.md" "b/04 \346\235\216\346\230\216\345\201\245/20231027 \345\237\272\347\241\200\351\242\204\344\271\240.md" deleted file mode 100644 index ffdd69180a62f64678eef7e5bd320f4ef2624805..0000000000000000000000000000000000000000 --- "a/04 \346\235\216\346\230\216\345\201\245/20231027 \345\237\272\347\241\200\351\242\204\344\271\240.md" +++ /dev/null @@ -1,192 +0,0 @@ -### 运算符 - -#### 算术运算符 - -算术运算使用的符号,用于执行俩个变量或值的算术运算 - -| 运算符 | 描述 | 实例 | -| ------ | -------------- | ------------------------ | -| + | 加 | 10 + 20 = 30 | -| - | 减 | 10 - 5 = 5 | -| * | 乘 | 5 * 5 = 25 | -| / | 除 | 10 / 20 = 0.5 | -| % | 取余数(取模) | 返回除法的余数 9 % 2 = 1 | - -#### 赋值运算符 - -用来把数据赋值给变量的运算符 - -| 赋值运算符 | 说明 | 案例 | -| ---------- | ------------------ | ------------------------------ | -| = | 直接赋值 | var usrName='我是值'; | -| += 、 -= | 加、减一个数后赋值 | var age= 10;age+=5;// 15 | -| *=、/=、%= | 乘、除、取模后赋值 | var age = 2 ; age*=5; // 10 | - -#### 运算符优先级 - -| 优先级 | 运算符 | 顺序 | -| ------ | ---------- | ------------------------- | -| 1 | 小括号 | () | -| 2 | 一元运算符 | ++ -- ! | -| 3 | 算数运算符 | 先 * / 后 + - | -| 4 | 关系运算符 | > >= < <= | -| 5 | 相等运算符 | == != **= !(不全等)** | -| 6 | 逻辑运算符 | 先&&(与) 后\|\|(或) | -| 7 | 赋值运算符 | = | -| 8 | 逗号运算符 | , | - -### 流程控制语句-分支 - -#### if语句 - -​ 由上到下执行代码的过程中,根据不同条件,执行不同路径代码(执行代码多选一的过程),从而得到不同的结果 - -语法: - -~~~ javascript - if (条件表达式1){ - // 执行语句1 - }else if (条件表达式2) { - // 执行语句2 - }else { - // 执行剩余条件语句 - } -~~~ - -**判断成绩案例** - -~~~ javascript -// 按照大到小判断的思路 -// 弹出prompt输入框 让用户输入分数,把这个值取过来保存到变量中 -// 使用if else if 语句来判断输出不同的值 -var score = prompt ('请输入您的分数'); -if(score >= 90){ - alert('你真棒哟!'); -}else if(score >=80){ - alert('你已经很棒了'); -}else if(score >= 70){ - alert('很好但是还需要努力'); -}else if (score>=60){ - alert('还需要继续努力哦!'); -}else{ - alert('你得努力了哦'); -} -~~~ - -#### switch语句 - -​ switch 语句也是多分支语句,它用于基本不同的条件来执行不同的代码,当要针对变量设置一系列的特定值的选项时,可以使用switch(多选1) - -语法: - -~~~ javascript -switch(表达式){ - case 值1: - // 执行语句1; - break; - case 值2: - // 执行语句2; - break; - // .... - default: - // 执行最后的语句; -} -//执行思路 - /*利用我们的表达式的值 和 case 后面的选项相匹配如果匹配上就执行该case里面的语句 如果没有匹配上,那么执行default里面的语句*/ -~~~ - -**switch注意事项** - -~~~ javascript -//我们开发里面 表达式经常写成变量 -//我们num 的值和case 里面相匹配的时候是全等,必须数据类型和值一样才 num === 1 -//不写break 会造成穿透 -~~~ - -#### 三元表达式 - -三元表达式能做一些简单的条件选择。有三元运算符组成的式子称为三元表达式 - -语法结构: - -~~~ javascript -// 条件表达式 ? 表达式1 :表达式2 -~~~ - -执行思路 - -如果条件表达式结果为真 则 返回表达式1 的值 如果表达式结果为假 则返回 表达式2 值 - -```javascript -var num = 10; -var result = num > 5 ? '是的':'不是的'; -``` - -**补零** - -```javascript -var time = prompt('请输入一个 0~50 之间的一个数字'); -条件表达式 ? 表达式1 :表达式2 -var result = time < 10 ? '0'+ time : time;//把返回值赋值给一个变量 -alert(result);//输出 -``` - -### 循环 - -#### for循环 - -语法: - -~~~ javascript -for (初始化变量;条件表达式;操作表达式){ - //循环体 -} -~~~ - -例: - -~~~ javascript -for(var i = 1; i<=100; i++){ - console.log('这个人今年'+ i +'岁了'); -} -~~~ - -#### for循环小结 - -+ for 循环可以重复执行某些相同代码 -+ for 循环可以重复执行些许不同的的代码,因为我们有计数器 -+ for 循环可以重复执行某些操作,比如算术运算符 -+ 随着需求增加,双重for循环可以做更多、更好看的效果 -+ 双重for循环,外层循环一次,内外for循环全部执行 -+ for循环,时循环条件和数字直接相关的循环 - -#### while 循环 - -```JAVA -//语法结构 -while(条件表达式){ - //循环体 -} -//执行思路 当条件表达式结果为true 则执行循环体 否则退出循环 -var num = 1; -while(num<=100){ - conlose.log('hao'); - num++; -} -//里面也有计数器,初始化变量 -// 里面应该也有操作表达式 完成计数器的更新 防止死循环 -``` - -#### do while 循环 (while变体) - -```javascript -//语法结构 -do{ - //循环体 -}while(条件表达式) -// 执行思路 跟while 不同的地方在于 do while 先执行一次循环体 在判断条件 如果条件结果为真,则继续执行循环体,否则退出循环 -var i = 1; -do{ - console.log('how'); -}while(i <= 100) -``` diff --git "a/05 \350\260\242\351\223\226\346\265\251/20231029 \345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213.md" "b/05 \350\260\242\351\223\226\346\265\251/20231029 \345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213.md" deleted file mode 100644 index 52e99481cfe6eee094765b850c45a0554801015d..0000000000000000000000000000000000000000 --- "a/05 \350\260\242\351\223\226\346\265\251/20231029 \345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213.md" +++ /dev/null @@ -1,201 +0,0 @@ -# 笔记 - -## 变量 - - 一个变量,就是一个用于存放数值的容器(可以是数字,字符串或其他任意的数据)变量的独特之处在于它存放的数值是可以改变的。 - -命名格式: - - 用var关键字(variable单词的缩写) - - var 名称 = ....; - - 也可以分开操作 - - var 名称; 名称 = ...; - - 同时声明多个变量 - - var 名称1,名称2....; 1 = .. 2 = .. - -##### 变量的命名规范(必须遵守) - - 第一个字符必须是字母,下划线,美元符,其它字符可以是字母,下划线,美元符或数字 - - 不能使用关键字和保留字命名 - - 变量严格区分大小写 - -命名规范: - - 1.使用小驼峰标识 - - 2.赋值=两边加上空格 - - 3.一条语句结束后加上分号; - - 4.见名知意 - -使用注意: - - 如果一个变量未声明,就直接使用,那么会报错 - - 如果有声明,没有赋值,那么默认值就是undefined - - 如果没有使用var声明变量也可以,但是不推荐(会被添加到window对象上) - -## 数据类型 - - 可以前一刻是字符串,下一刻便是数字,例如js被称为“动态类型” - -#### typeof操作符(用来确定任意变量的数据类型) - - typeof是一个操作符,并非是一个函数,()只是将后续内容当做一个整体而已 - -#### Number类型(代表整数和浮点数) - - 可以做加减乘除法等 - -数学概念中的无穷大(infinity) - -计算错误:它是一个错误的操作的结果(NAN)比如:字符串与数字相乘 - -最小正数值:(Number.MIN_VALUE) - -最小正数值:(Number.MAX_VALUE) - -is NAN:用于判断是否不是数字。不是数字返回ture,是数字返回false - -#### String类型 - - js中的字符串必须被括在引号里,有三种方式 - - 双引号"..." 单引号'..' 反引号`...` - -前后的引号类型必须一致 - -字符串的属性和方法: - -1.通过字符串拼接:通过+运算符 - -2.获取字符串长度(length) - -#### Boolean类型 - - 仅包含两个值:true和false - -#### Undefined类型 - - 如果声明一个变量,但没有对其进行初始化时,它默认就是undefined - -注意:最好在变量定义的时候进行初始化,而不是声明一个变量。不要显示的将一个变量赋值为undefined - -#### Object类型(对象) - - 通常把它称为引用类型或者复杂类型 - -其他的数据类型称为原始类型,因为他们的值包含一个单独的内容 - -Object往往可以表示一组数据,是其他数据的一个集合 - -在js中我们可以使用花括号的方式来表示一个对象 - -#### Null类型 - - 用来表示一个对象为空,所以通常在给一个对象进行初始化时,会赋值null - -null和undefined的关系 - - undefined通常只有在一个变量声明但是未初始化时,它的默认值是undefined才会用到 - - 不推荐直接给一个变量赋值为undefined,所以很少主动使用 - - null值非常常用,当一个变量准备保存一个对象,但这个对象不确定,可以先赋值为null - -#### 总结 - - js有八种基本的数据类型 - - object为复杂数据类型,也称为引用类型,其他七种为基本数据类型,也称为原始类型 - -### 数据类型的转换 - - 大多数情况下,运算符和函数会自动赋予它们的值转换为正确的类型,这是一种隐式转换,也可以通过显示的方式来数据类型进行转换 - -##### String的转换 - - 1.隐式转换 - - 一个字符串和另一个字符串进行+操作(如果+运算符两边有一个是字符串,那么另一边会转换为字符串拼接) - - 某些函数的执行也会自动将参数转为字符串类型(比如console.log函数) - - 2.显式转换 - - 调用string()函数; 调用toString()方法 - -##### Number的转换 - - 1.隐式:在算数运算中,通常会将其他类型转换成数字类型来计算 - - 2.显示:可以使用Number()函数来进行显示的转换 - -其他类型转换数字规则 - - undefined 转换后:NAN null 转换后:0 ture和false 转换后:1或0 - - string 转换后:去掉首尾空格后的纯数字中含有的数字,如果剩余字符串为空,则转换结果为0,否则,将会从剩余字符串中读取数字,当出现error时返回NAN。 - -##### Boolean的转换 - - 它发生在逻辑运算中,但是也可以通过Boolean(value)显式的进行转换 - -转换规则:直观上为“空”的值(如0,空字符串,null,undefined,和NAN)将变为false,其他值变成true。 - -# 作业 - -```mysql - - - - - - - 网页 - - - - - -``` \ No newline at end of file diff --git "a/06 \351\231\210\345\277\227\344\274\237/20231027 \351\242\204\344\271\240\345\276\252\347\216\257\347\255\211.md" "b/06 \351\231\210\345\277\227\344\274\237/20231027 \351\242\204\344\271\240\345\276\252\347\216\257\347\255\211.md" deleted file mode 100644 index 69fb539f17bd8c0b85fddc1b02053dfa45347859..0000000000000000000000000000000000000000 --- "a/06 \351\231\210\345\277\227\344\274\237/20231027 \351\242\204\344\271\240\345\276\252\347\216\257\347\255\211.md" +++ /dev/null @@ -1,543 +0,0 @@ -## JavaScript变量和数据类型 - -### 在 JavaScript 中有 8 种基本的数据类型(7 种原始类型和 1 种复杂类型) - -Number 代表数据类型是数值 - -- 整数 -- 浮点 -- 数组 - -String 代表字符串 - -Boolean 布尔型 - -- true -- false - -Undefined 变量未赋值 = 变量未定义 a is not define - -Null 空值 - -Object 对象 - -function 函数 - -BigInt(后续了解)大整数类型 - -Symbol(后续了解)符号类型 - -### 变量的声明:在 var 关键字 - -```js -// 定义变量同时赋值 -var name = ' 内容'; - -// 先定义再赋值 -var hobby; -hobby = '内容'; - -// 同时定义多个变量 -var a,b,c; -a=1,b=3,c=5; - -// 变量之间用;逗号隔开,分号结束 -var c=1,b=2,c=3; -``` - -不能用js关键字和保留字做变量名和常量名 - -基本上所有的编程语言都不允许变量的开头有数字 - -```js -name1 字母开头可以 -_name1 下划线开头可以 -1name 数字开头不可以 - -console.log('1'-1); // 0 -console.log('name1'-1); // NaN name1没赋值 Not a Number -``` - -js代码在 html 内部写法,需要写一对 script 标签 - -声明 js 的变量的时候,不需要写数据类型,js 会自动根据你给的值判断它 - -定义一个变量,但此时还没有赋值,会报 undefined - -undefined 即是一种数据类型,也是一种值,也就是有变量,但没有值,连 null 都没有 null - -没有 var 定义变量也不会报错,因为写到了 window 对象中 - -### 当计算错误是会报 NaN 错误 - -```js -NaN 是计算错误 / Not a Number -如 a = '你好' -b = 2.5 -console.log(a/b) -``` - -### 两个变量交换,实现 num1 和 num2 交换 - -```js -// 第一种方法 -var num3 = num1; -var num1 = num2; -var num2 = num3; - -// 第二种方法 -num1 = num1 + num2; -num2 = num1 - num2; -num1 = num1 - num2; -``` - -### 判断一个变量此时是什么类型 - -```js -typeof 变量; -console.log(typeof 变量); -``` - -### number 类型的最大和最小值 - -```js -console.log(number.min_value); -console.log(number.max_value); -``` - -### isNaN - -判断是不是数值,不是数值为 true 是数值为 false - -单引号,双引号都可以用来标记字符串全部英文引号 '' '',引号是成对出现,且前后要一致如果内容本身有引号,那么标记的引号要相反 - -### 转义字符串 - -\ ' 单引号 - -\ '' 双引号 - -\t 制表,缩进 - -\n 换行 - -在 + 加号的左右两边只要出现一个字符串,这个 + 加号就不是加法运算,而是拼接字符串,而且得到一个新的字符串 - -强制转成数值,不然结果为11 - -```js -console.log(number('1')+1); // 2 -``` - -转换数值 - -```js -number(true); // 1 -number(false); // 0 -number(null); // 0 -number(undefined); // NaN -number(''); // 0 -``` - -转换字符串 - -0、null、undefined、NaN、'' 转成字符串为false,其他的为true - -### 字符串长度 - -```js -console.log(变量名1,length); // 返回的字符数 -``` - -### 文档中的练习 - -```js -// 练习一:定义一些变量,保存自己的个人信息: -// 比如姓名、年龄、身高、体重、爱好等等 -var name='sana'; -var age=27; -var weight=48; -var hight=166; -var hobby='dance'; - -// 练习二:定义一个变量name,赋值成coderwhy。定义一个变量admin,将name赋值给admin -var corderwhy='mina'; -var name1=coderwhy; -var admin=name1; - -// 练习三:定义变量,保存两个数字,并且对两个变量的数字进行交换 -//  方式一:使用临时变量 -var a=1,b=2; -var c=a; -var a=b; -var b=c; - -// 方式二:不使用临时变量(了解即可) -var a=a+b; -var b=a-b; -var a=a-b; - -// 练习四:让用户在浏览器中输入一个值,在JavaScript程序中使用变量接收 -// 作业:你平时在使用一些应用程序时,哪些内容可以定义成变量? -// 比如玩游戏、听歌、购物的应用程序中; -prompt('请输入名字'); -``` - -## 常见的运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ---------- | ---------- | ------ | -| + | 加法 | 2 + 3 | 5 | -| + | 连接字符串 | ‘中’+ ‘国’ | ‘中国’ | -| - | 减法 | 2 - 3 | -1 | -| * | 乘法 | 2 * 3 | 6 | -| / | 除法 | 5 / 2 | 2.5 | -| % | 取余数 | 5 % 2 | 1 | -| ** | 幂(ES7) | 2 ** 3 | 8 | - -### 取余 % 和 求幂 - - 取余运算符是 %,尽管它看起来很像百分数,但实际并无关联 - - a % b 的结果是 a 整除 b 的 余数 - -```js -console.log(10%3) -VM72:1 1 -undefined -``` - - 求幂运算 a ** b 将 a 提升至 a 的 b 次幂。(ES7中的语法,也叫做ES2016) - -在数学中我们将其表示为 a的b次方 - -```js -console.log(2**3); -VM127:1 8 -undefined - -console.log(2**4); -VM140:1 16 -undefined -``` - -### 原地修改(Modify-in-place) - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ----------------- | -------------- | ---- | -| = | 赋值 | a = 5 | 5 | -| += | 加后赋值 | a = 5, a += 2 | 7 | -| -= | 减后赋值 | a = 5, a -= 2 | 3 | -| *= | 乘后赋值 | a = 5; a *= 2 | 10 | -| /= | 除后赋值 | a = 5; a /= 2 | 2.5 | -| %= | 取模 (余数)后赋值 | 5 % 2 | 1 | -| **= | 幂后赋值 | a = 5; a **= 2 | 25 | - -### 自增、自减 - -对一个数进行加一、减一是最常见的数学运算符之一。 - -所以,对此有一些专门的运算符: - -自增 ++ 将变量加1; - -自减 -- 将变量减1; - -自增/自减只能应用于变量。 - -将其应用于数值(比如 5++)则会报错。 自增、自减 coderwhy - -运算符 ++ 和 -- 可以置于变量前,也可以置于变量后。 - - 当运算符置于变量后,被称为“后置形式”(postfix form):counter++。 - -当运算符置于变量前,被称为“前置形式”(prefix form):++counter。 - -两者都做同一件事:将变量 counter 与 1 相加。 - -### 比较运算符 - -比较运算符的结果都是Boolean类型的 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | -------- | ------ | ----- | -| == | 相等 | 4 == 3 | false | -| != | 不等于 | 4 != 3 | true | -| > | 小于 | 4 > 3 | true | -| < | 大于 | 4 < 3 | false | -| >= | 小于等于 | 4 <= 3 | false | -| <= | 大于等于 | 4 >= 3 | true | - -### === 和 == 的区别 - -普通的相等性检查 == 存在一个问题,它不能区分出 0 和 false,或者空字符串和 false这类运算: - -这是因为在比较不同类型的值时,处于判断符号 == 两侧的值会先被转化为数字; - -空字符串和 false 也是如此,转化后它们都为数字 0; - -严格相等运算符 === 在进行比较时不会做任何的类型转换; - -换句话说,如果 a 和 b 属于不同的数据类型,那么 a === b 不会做任何的类型转换而立刻返回 false; - -## 分支语句和逻辑运算符 - -### 单分支语句:if - - if(...) 语句计算括号里的条件表达式,如果计算结果是 true,就会执行对应的代码块。 - -案例一: 如果小明考试超过90分, 就去游乐场 - -“如果”相当于JavaScript中的关键字if 分数超过90分是一个条件(可以使用 > 符号) - -```html -测试分数 - -``` - -案例二:单位5元/斤的苹果,如果购买超过5斤,那么立减8元 - -注意:这里我们让用户输入购买的重量,计算出最后的价格并且弹出结果 - -```html -计算价格 - -``` - -补充一:如果代码块中只有一行代码,那么{}可以省略: - -补充二:if (…) 语句会计算圆括号内的表达式,并将计算结果转换为布尔型(Boolean)。 - -转换规则和Boolean函数的规则一致; - -数字 0、空字符串 “”、null、undefined 和 NaN 都会被转换成 false。 因为它们被称为“假值(falsy)”; - -其他值被转换为 true,所以它们被称为“真值(truthy)”; - -### 多分支语句:if.. else.. - -案例一:如果分数超过90分去游乐场,否则去上补习班 - -满足条件时,做某些事情 - -不满足(else),去做另外一些事 - -```html -测试分数 - -``` - -案例二:m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js - var m=20,n=30; - if(m>n){ - alert('m>n'); - }else{ - alert('n>m'); - } -``` - -### 多分支结构: if.. else if.. else - -多分支结构: if.. else if.. else.. - -有时我们需要判断多个条件; - -我们可以通过使用 else if 子句实现; - -案例: 分数评级: - -考试分数大于90:优秀 - -大于80小于等于90:良好 - -大于60小于等于80:合格 - -小于60分:不及格 - -```html -分数评级 - -``` - -### 三元运算符 - -```js -var result = condition ? value1 : value2; -// 计算条件结果,如果结果为真,则返回 value1,否则返回 value2。 -``` - -案例一: m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js -var res = m>n?'m大':'n大'; -alert(res); -``` - -案例二:判断一个人是否是成年人了 - -```js -var age = prompt('年龄') -var res2 = age>=18 ? '成年':'未成年'; -alert(res2); -``` - -### 认识逻辑运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ------------ | ------------- | ----- | -| && | 与: 同时为真 | false && True | false | -| \|\| | 或: 一个为真 | false or true | true | -| ! | 非: 取反 | !false | true | - -### switch语句 - -case穿透问题: 一条case语句结束后,会自动执行下一个case的语句; - -这种现象被称之为case穿透;break关键字 - -通过在每个case的代码块后添加break关键字来解决这个问题; - -注意事项:这里的相等是严格相等。 - -被比较的值必须是相同的类型才能进行匹配。 - -## while和for循环 - -### while循环 - -当条件成立时,执行代码块; - -当条件不成立时,跳出代码块; - -如果条件一直成立(为true),那么会产生死循环。 - - 这个时候必须通过关闭页面来停止死循环; - -开发中一定要避免死循环的产生; while循环 coderwhy - -while循环的练习题目: - -练习一:打印10次Hello World - -```js - var i=1; - while(i<10){ - document.write('

Hello World

') - i++; - } -``` - -练习二:打印0~99的数字 - -```js - var i=1; - while(i<100){ - document.write(i+'\n'); - i++; - } -``` - -练习三:计算0~99的数字和 - -```js - var i=1; - var s=0; - while(i<100){ - s=s+i; - i++; - } - alert(s); -``` - -练习四:计算0~99所有奇数的和 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==1){ - s=s+i; - } - i++; - } - alert(s); -``` - -练习五:计算0~99所有偶数的 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==0){ - s=s+i; - } - i++; - } - alert(s); -``` - -### do..while循环 - -do..while循环和while循环非常像,二者经常可以相互替代(不常用) - -但是do..while的特点是不管条件成不成立,do循环体都会先执行一次; - - 通常我们更倾向于使用while循环。 - -### for循环 - -| 语句段 | 例子 | 执行过程 | -| -------------- | --------- | ---------------------------------------------- | -| begin | let i = 0 | 进入循环时执行一次 | -| condition | i < 3 | 在每次循环迭代之前检查,如果为 false,停止循环 | -| body(循环体) | alert(i) | 条件为真时,重复运行 | -| step | i++ | 在每次循环体迭代后执行 | - -begin 执行一次,然后进行迭代:每次检查 condition 后,执行 body 和 step \ No newline at end of file diff --git "a/07 \345\210\230\346\226\207\351\224\213/20231027\345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213..md" "b/07 \345\210\230\346\226\207\351\224\213/20231027\345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213..md" deleted file mode 100644 index 8d2e94ec41adcd8ba1669274e80476ac09e0fbe0..0000000000000000000000000000000000000000 --- "a/07 \345\210\230\346\226\207\351\224\213/20231027\345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213..md" +++ /dev/null @@ -1,543 +0,0 @@ -## JavaScript变量和数据类型 - -### 在 JavaScript 中有 8 种基本的数据类型(7 种原始类型和 1 种复杂类型) - -Number 代表数据类型是数值 - -- 整数 -- 浮点 -- 数组 - -String 代表字符串 - -Boolean 布尔型 - -- true -- false - -Undefined 变量未赋值 = 变量未定义 a is not define - -Null 空值 - -Object 对象 - -function 函数 - -BigInt(后续了解)大整数类型 - -Symbol(后续了解)符号类型 - -### 变量的声明:在 var 关键字 - -```js -// 定义变量同时赋值 -var name = ' 内容'; - -// 先定义再赋值 -var hobby; -hobby = '内容'; - -// 同时定义多个变量 -var a,b,c; -a=1,b=3,c=5; - -// 变量之间用;逗号隔开,分号结束 -var c=1,b=2,c=3; -``` - -不能用js关键字和保留字做变量名和常量名 - -基本上所有的编程语言都不允许变量的开始有数字 - -```js -name1 √ -_name1 √ -1name × - -console.log('1'-1); // 0 -console.log('name1'-1); // NaN -``` - -js代码在 html 内部写法,需要写一对 script 标签 - -声明 js 的变量的时候,不需要写数据类型,js 会自动根据你给的值判断它 - -定义一个变量,但此时还没有赋值,会报 undefined - -undefined 即是一种数据类型,也是一种值,也就是有变量,但没有值,连 null 都没有 null - -没有 var 定义变量也不会报错,因为写到了 window 对象中 - -### 当计算错误是会报 NaN 错误 - -```js -NaN 是计算错误 / Not a Number -如 a = '你好' -b = 2.5 -console.log(a/b) -``` - -### 两个变量交换,实现 num1 和 num2 交换 - -```js -// 第一种方法 -var num3 = num1; -var num1 = num2; -var num2 = num3; - -// 第二种方法 -num1 = num1 + num2; -num2 = num1 - num2; -num1 = num1 - num2; -``` - -### 判断一个变量此时是什么类型 - -```js -typeof 变量; -console.log(typeof 变量); -``` - -### number 类型的最大和最小值 - -```js -console.log(number.min_value); -console.log(number.max_value); -``` - -### isNaN - -判断是不是数值,不是数值为 true 是数值为 false - -单引号,双引号都可以用来标记字符串全部英文引号 '' '',引号是成对出现,且前后要一致如果内容本身有引号,那么标记的引号要相反 - -### 转义字符串 - -\ ' 单引号 - -\ '' 双引号 - -\t 制表,缩进 - -\n 换行 - -在 + 加号的左右两边只要出现一个字符串,这个 + 加号就不是加法运算,而是拼接字符串,而且得到一个新的字符串 - -强制转成数值,不然结果为11 - -```js -console.log(number('1')+1); // 2 -``` - -转换数值 - -```js -number(true); // 1 -number(false); // 0 -number(null); // 0 -number(undefined); // NaN -number(''); // 0 -``` - -转换字符串 - -0、null、undefined、NaN、'' 转成字符串为false,其他的为true - -### 字符串长度 - -```js -console.log(变量名1,length); // 返回的字符数 -``` - -### 文档中的练习 - -```js -// 练习一:定义一些变量,保存自己的个人信息: -// 比如姓名、年龄、身高、体重、爱好等等 -var name='sana'; -var age=27; -var weight=48; -var hight=166; -var hobby='dance'; - -// 练习二:定义一个变量name,赋值成coderwhy。定义一个变量admin,将name赋值给admin -var corderwhy='mina'; -var name1=coderwhy; -var admin=name1; - -// 练习三:定义变量,保存两个数字,并且对两个变量的数字进行交换 -//  方式一:使用临时变量 -var a=1,b=2; -var c=a; -var a=b; -var b=c; - -// 方式二:不使用临时变量(了解即可) -var a=a+b; -var b=a-b; -var a=a-b; - -// 练习四:让用户在浏览器中输入一个值,在JavaScript程序中使用变量接收 -// 作业:你平时在使用一些应用程序时,哪些内容可以定义成变量? -// 比如玩游戏、听歌、购物的应用程序中; -prompt('请输入名字'); -``` - -## 常见的运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ---------- | ---------- | ------ | -| + | 加法 | 2 + 3 | 5 | -| + | 连接字符串 | ‘中’+ ‘国’ | ‘中国’ | -| - | 减法 | 2 - 3 | -1 | -| * | 乘法 | 2 * 3 | 6 | -| / | 除法 | 5 / 2 | 2.5 | -| % | 取余数 | 5 % 2 | 1 | -| ** | 幂(ES7) | 2 ** 3 | 8 | - -### 取余 % 和 求幂 - - 取余运算符是 %,尽管它看起来很像百分数,但实际并无关联 - - a % b 的结果是 a 整除 b 的 余数 - -```js -console.log(10%3) -VM72:1 1 -undefined -``` - - 求幂运算 a ** b 将 a 提升至 a 的 b 次幂。(ES7中的语法,也叫做ES2016) - -在数学中我们将其表示为 a的b次方 - -```js -console.log(2**3); -VM127:1 8 -undefined - -console.log(2**4); -VM140:1 16 -undefined -``` - -### 原地修改(Modify-in-place) - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ----------------- | -------------- | ---- | -| = | 赋值 | a = 5 | 5 | -| += | 加后赋值 | a = 5, a += 2 | 7 | -| -= | 减后赋值 | a = 5, a -= 2 | 3 | -| *= | 乘后赋值 | a = 5; a *= 2 | 10 | -| /= | 除后赋值 | a = 5; a /= 2 | 2.5 | -| %= | 取模 (余数)后赋值 | 5 % 2 | 1 | -| **= | 幂后赋值 | a = 5; a **= 2 | 25 | - -### 自增、自减 - -对一个数进行加一、减一是最常见的数学运算符之一。 - -所以,对此有一些专门的运算符: - -自增 ++ 将变量加1; - -自减 -- 将变量减1; - -自增/自减只能应用于变量。 - -将其应用于数值(比如 5++)则会报错。 自增、自减 coderwhy - -运算符 ++ 和 -- 可以置于变量前,也可以置于变量后。 - - 当运算符置于变量后,被称为“后置形式”(postfix form):counter++。 - -当运算符置于变量前,被称为“前置形式”(prefix form):++counter。 - -两者都做同一件事:将变量 counter 与 1 相加。 - -### 比较运算符 - -比较运算符的结果都是Boolean类型的 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | -------- | ------ | ----- | -| == | 相等 | 4 == 3 | false | -| != | 不等于 | 4 != 3 | true | -| > | 小于 | 4 > 3 | true | -| < | 大于 | 4 < 3 | false | -| >= | 小于等于 | 4 <= 3 | false | -| <= | 大于等于 | 4 >= 3 | true | - -### === 和 == 的区别 - -普通的相等性检查 == 存在一个问题,它不能区分出 0 和 false,或者空字符串和 false这类运算: - -这是因为在比较不同类型的值时,处于判断符号 == 两侧的值会先被转化为数字; - -空字符串和 false 也是如此,转化后它们都为数字 0; - -严格相等运算符 === 在进行比较时不会做任何的类型转换; - -换句话说,如果 a 和 b 属于不同的数据类型,那么 a === b 不会做任何的类型转换而立刻返回 false; - -## 分支语句和逻辑运算符 - -### 单分支语句:if - - if(...) 语句计算括号里的条件表达式,如果计算结果是 true,就会执行对应的代码块。 - -案例一: 如果小明考试超过90分, 就去游乐场 - -“如果”相当于JavaScript中的关键字if 分数超过90分是一个条件(可以使用 > 符号) - -```html -测试分数 - -``` - -案例二:单位5元/斤的苹果,如果购买超过5斤,那么立减8元 - -注意:这里我们让用户输入购买的重量,计算出最后的价格并且弹出结果 - -```html -计算价格 - -``` - -补充一:如果代码块中只有一行代码,那么{}可以省略: - -补充二:if (…) 语句会计算圆括号内的表达式,并将计算结果转换为布尔型(Boolean)。 - -转换规则和Boolean函数的规则一致; - -数字 0、空字符串 “”、null、undefined 和 NaN 都会被转换成 false。 因为它们被称为“假值(falsy)”; - -其他值被转换为 true,所以它们被称为“真值(truthy)”; - -### 多分支语句:if.. else.. - -案例一:如果分数超过90分去游乐场,否则去上补习班 - -满足条件时,做某些事情 - -不满足(else),去做另外一些事 - -```html -测试分数 - -``` - -案例二:m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js - var m=20,n=30; - if(m>n){ - alert('m>n'); - }else{ - alert('n>m'); - } -``` - -### 多分支结构: if.. else if.. else - -多分支结构: if.. else if.. else.. - -有时我们需要判断多个条件; - -我们可以通过使用 else if 子句实现; - -案例: 分数评级: - -考试分数大于90:优秀 - -大于80小于等于90:良好 - -大于60小于等于80:合格 - -小于60分:不及格 - -```html -分数评级 - -``` - -### 三元运算符 - -```js -var result = condition ? value1 : value2; -// 计算条件结果,如果结果为真,则返回 value1,否则返回 value2。 -``` - -案例一: m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js -var res = m>n?'m大':'n大'; -alert(res); -``` - -案例二:判断一个人是否是成年人了 - -```js -var age = prompt('年龄') -var res2 = age>=18 ? '成年':'未成年'; -alert(res2); -``` - -### 认识逻辑运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ------------ | ------------- | ----- | -| && | 与: 同时为真 | false && True | false | -| \|\| | 或: 一个为真 | false or true | true | -| ! | 非: 取反 | !false | true | - -### switch语句 - -case穿透问题: 一条case语句结束后,会自动执行下一个case的语句; - -这种现象被称之为case穿透;break关键字 - -通过在每个case的代码块后添加break关键字来解决这个问题; - -注意事项:这里的相等是严格相等。 - -被比较的值必须是相同的类型才能进行匹配。 - -## while和for循环 - -### while循环 - -当条件成立时,执行代码块; - -当条件不成立时,跳出代码块; - -如果条件一直成立(为true),那么会产生死循环。 - - 这个时候必须通过关闭页面来停止死循环; - -开发中一定要避免死循环的产生; while循环 coderwhy - -while循环的练习题目: - -练习一:打印10次Hello World - -```js - var i=1; - while(i<10){ - document.write('

Hello World

') - i++; - } -``` - -练习二:打印0~99的数字 - -```js - var i=1; - while(i<100){ - document.write(i+'\n'); - i++; - } -``` - -练习三:计算0~99的数字和 - -```js - var i=1; - var s=0; - while(i<100){ - s=s+i; - i++; - } - alert(s); -``` - -练习四:计算0~99所有奇数的和 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==1){ - s=s+i; - } - i++; - } - alert(s); -``` - -练习五:计算0~99所有偶数的 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==0){ - s=s+i; - } - i++; - } - alert(s); -``` - -### do..while循环 - -do..while循环和while循环非常像,二者经常可以相互替代(不常用) - -但是do..while的特点是不管条件成不成立,do循环体都会先执行一次; - - 通常我们更倾向于使用while循环。 - -### for循环 - -| 语句段 | 例子 | 执行过程 | -| -------------- | --------- | ---------------------------------------------- | -| begin | let i = 0 | 进入循环时执行一次 | -| condition | i < 3 | 在每次循环迭代之前检查,如果为 false,停止循环 | -| body(循环体) | alert(i) | 条件为真时,重复运行 | -| step | i++ | 在每次循环体迭代后执行 | - -begin 执行一次,然后进行迭代:每次检查 condition 后,执行 body 和 step \ No newline at end of file diff --git "a/08 \345\256\230\346\226\207\350\257\232/20231027 \345\217\230\351\207\217.md" "b/08 \345\256\230\346\226\207\350\257\232/20231027 \345\217\230\351\207\217.md" deleted file mode 100644 index 22bc1bd6a751365f74638f980419025f2dc21cbc..0000000000000000000000000000000000000000 --- "a/08 \345\256\230\346\226\207\350\257\232/20231027 \345\217\230\351\207\217.md" +++ /dev/null @@ -1,170 +0,0 @@ -### 作业 - -~~~ html - - 161 - 162 - 163 - 164 - 165 - 166 网页 - 167 - 168 - 169 - 201 - 202 - -~~~ - -### 笔记 - -一个变量就是一个用于存放数值的容器 -这个变量可以是一个数字或是一个字符串 -变量声明 -用var声明 -变量的赋值 -使用=给变量赋值 -不能使用JS的关键字和保留字做变量名或常量名 -变量名规则 -开头只能用字母 下划线或美元符号 -变量严格区分大小写 -声明JS的变量不需要写数据类型 -undefined既是一种数据类型也是一种值 -undefined只有undefined一个值 -表示变量的值未定义 有变量名没有值 -JavaScript的数据类型 -JavaScript中的值都具有特定的数据类型 -typeof判断变量的数据类型 -infinity表示无穷大 -NaN表示一个计算错误 -is NaN判断是不是数字不是数字返回ture 是返回false -在+号两边只要出现一个字符串这个+号就不是加法运算而是拼接字符串 -boolean -表示真假 -object 是一个特殊类型我们通常把他称为引用类型 -null -表示一个值为空 - -### 预习 - -​ \+ 加法 2 + 3 5 - -+连接字符串 ‘中’+ ‘国’ ‘中国’ - --减法 2 - 3 -1 - - * 乘法 2 * 3 6 - -/ 除法 5 / 2 2.5 - - % 取余数 5 % 2 1 - -** 幂(ES7) 2 ** 3 8 - - - -= 赋值 a=10,将10赋值给变量a - -+= 加后赋值 a+=b,将a+b的值给a a = a+b; - --= 减后赋值 a-=b,将a-b的值给a a=a-b; - -*= 乘后赋值 a*=b*,将*a×b*的值给*a a=a*b; - -/= 除后赋值 a/=b,将a÷b的商给a a=a/b; - -%= 取余后赋值 a%=b,将a÷b的余数给a a=a%b; - -& - -逻辑与 and - -a&b,a和b都是true,结果为true,否则为false - -| - -逻辑或 or - -a|b,a和b都是false,结果为false,否则为true - -^ - -逻辑异或 不能有相等的关系 - -a^b,a和b结果不同为true,相同为false - -! - -逻辑非 not - -!a,结果和a的结果正好相反 - -三元运算符语法格式:关系表达式?表达式1:表达式2; - -~~~ html -顺序结构 -分支结构(if, switch) -循环结构(for, while, do…while) - -格式: -if(关系表达式){ - 语句体; -} - -switch (表达式) { -case 1: -语句体1; -break; -case 2: -语句体2; -break; -... -default: -语句体n+1; -break; -} - -for (初始化语句;条件判断语句;条件控制语句) { -循环体语句; -} - -while (条件判断语句) { -循环体语句; -条件控制语句; -} -执行条件判断语句,看其结果是true还是false - 如果是false,循环结束 - 如果是true,继续执行 -~~~ - diff --git "a/09 \346\233\271\346\255\243\346\263\242/20231027 JavaScript\346\225\260\346\215\256\347\261\273\345\236\213.md" "b/09 \346\233\271\346\255\243\346\263\242/20231027 JavaScript\346\225\260\346\215\256\347\261\273\345\236\213.md" deleted file mode 100644 index d34da3021e5ddef23f093076802aaf65053a6c24..0000000000000000000000000000000000000000 --- "a/09 \346\233\271\346\255\243\346\263\242/20231027 JavaScript\346\225\260\346\215\256\347\261\273\345\236\213.md" +++ /dev/null @@ -1,104 +0,0 @@ -# 笔记 - -定义变量:const ,let ,var ,直接赋值 - -Number数值,JavaScript 数值类型不再细分整型、浮点型等,js 的所有数值都属于浮点型,64位浮点数。 - -String字符串,最抽象的数据类型,信息传播的载体,字符串必须包含在单引号、双引号或反引号之中,一个字符两个字节。 - -Boolean布尔值,最机械的数据类型,逻辑运算的载体,仅有两个值,true / false。Symbol符号类型,ES6 引入的一种新的原始数据类型,表示独一无二的值,不常用。 - -undefined未定义,当声明变量而没有赋值时会显示该值,可以为变量赋值为 undefined。 - -Object对象,是一种无序的数据集合,内容是键值对的形式,键名(key)是字符串,可以包含任意字符(空格),字符串引号可省略。可以通过 Object.keys(obj) 打印出 obj 对象中的所有 key 值。读对象的属性时,如果使用 [ ] 语法,那么 JS 会先求 [ ] 中表达式的值。如果使用点语法,那么点后面一定是 string 常量。 - -```javascript -\' 单引号 -\" 双引号 -\\ 反斜杠 -\n 换行符 -\r 回车符 -\t 制表符 -\b 退格符 -转义字符串开发中只有特殊场景才会用到,暂时掌握 \’\” \t \n四个的用法即可。 -``` - -= 赋值 a=10,将10赋值给变量a - -+= 加后赋值 a+=b,将a+b的值给a a = a+b; - --= 减后赋值 a-=b,将a-b的值给a a=a-b; - -*= 乘后赋值 a*=b*,将*a×b*的值给*a a=a*b; - -/= 除后赋值 a/=b,将a÷b的商给a a=a/b; - -%= 取余后赋值 a%=b,将a÷b的余数给a a=a%b; - - - - - -& - -逻辑与 and - -a&b,a和b都是true,结果为true,否则为false - -| - -逻辑或 or - -a|b,a和b都是false,结果为false,否则为true - -^ - -逻辑异或 不能有相等的关系 - -a^b,a和b结果不同为true,相同为false - -! - -逻辑非 not - -!a,结果和a的结果正好相反 - - - -三元运算符语法格式:关系表达式?表达式1:表达式2; - -```javascript -顺序结构 -分支结构(if, switch) -循环结构(for, while, do…while) - -格式: -if(关系表达式){ -  语句体; -} - -switch (表达式) { -case 1: -语句体1; -break; -case 2: -语句体2; -break; -... -default: -语句体n+1; -break; -} - -for (初始化语句;条件判断语句;条件控制语句) { -循环体语句; -} - -while (条件判断语句) { -循环体语句; -条件控制语句; -} -执行条件判断语句,看其结果是true还是false - 如果是false,循环结束 - 如果是true,继续执行 -``` \ No newline at end of file diff --git "a/11 \351\202\271\344\272\250\344\274\237/202310.8.md" "b/11 \351\202\271\344\272\250\344\274\237/202310.8.md" deleted file mode 100644 index b7d88792cf35e0598b62610faefa8e2365a29125..0000000000000000000000000000000000000000 --- "a/11 \351\202\271\344\272\250\344\274\237/202310.8.md" +++ /dev/null @@ -1,69 +0,0 @@ -# - -1. --------------第一题----------------------- - -创建存储过程add_student(),实现传入姓名和手机号和生日,插入到 student 表中 - -DROP PROCEDURE add_student() -DELIMITER $ -CREATE PROCEDURE add_student(IN name VARCHAR(15),IN phone varchar(15),IN birth date) -BEGIN -INSERT INTO student(name,phone,birth) VALUES (name,phone,birth); -END $ -DELIMITER; - -CALL add_student('YOYO','123456789','1991-11-12'); -SELECT * FROM student; - -调用 - -查看数据是否成功插入 - -2.--------------第二题----------------------- - -创建存储过程get_tel(),实现传入学生编号,返回学生姓名和学生电话 - -DELIMITER/ -CREATE PROCEDURE get_tel(IN sid INT) -BEGIN -SELECT * FROM student WHERE id=sid; -END/ -call get_tel(2) - -调用 - -3.--------------第三题----------------------- - -创建存储过程birthday_battle(),实现传入两个学生编号,返回生日日期间隔大小(天数) - -DELIMITER/ -CREATE PROCEDURE birthday_battle(IN sid INT,IN sid1 INT) -BEGIN -SELECT * FROM student WHERE id=sid(SELECT * FROM student WHERE id=sid1); -END/ -call birthday_battle(2) - -#调用 - -4.--------------第四题----------------------- - -创建存储过程studen_limit(),根据传入的起始索引和条目数,查询学生表的记录 - -DELIMITER/ -CREATE PROCEDURE studen_limit(size INT,IN startIndex INT) -BEGIN -SELECT * FROM beauty LIMIT startIndex,size; -END/ -CALL studen_limit(1,2) - -调用 - -5.--------------第五题----------------------- - -使用inout模式参数创建存储过程get_double(),要求 传入a和b两个值,最终a和b都翻倍并返回 - -调用 - -6. 删除第四题的存储过程 - -7. 查看第五题中存储过程的信息 diff --git "a/12 \346\236\227\344\277\212\344\274\237/Day02 \347\254\224\350\256\260.md" "b/12 \346\236\227\344\277\212\344\274\237/Day02 \347\254\224\350\256\260.md" deleted file mode 100644 index 6aa402289373aed5bdc2c266d70c6aaf46203c13..0000000000000000000000000000000000000000 --- "a/12 \346\236\227\344\277\212\344\274\237/Day02 \347\254\224\350\256\260.md" +++ /dev/null @@ -1,79 +0,0 @@ - -= 赋值 a=10,将10赋值给变量a - -+= 加后赋值 a+=b,将a+b的值给a a = a+b; - --= 减后赋值 a-=b,将a-b的值给a a=a-b; - -*= 乘后赋值 a*=b*,将*a×b*的值给*a a=a*b; - -/= 除后赋值 a/=b,将a÷b的商给a a=a/b; - -%= 取余后赋值 a%=b,将a÷b的余数给a a=a%b; - - - - - -& - -逻辑与 and - -a&b,a和b都是true,结果为true,否则为false - -| - -逻辑或 or - -a|b,a和b都是false,结果为false,否则为true - -^ - -逻辑异或 不能有相等的关系 - -a^b,a和b结果不同为true,相同为false - -! - -逻辑非 not - -!a,结果和a的结果正好相反 - - - -三元运算符语法格式:关系表达式?表达式1:表达式2; - -```javascript -顺序结构 -分支结构(if, switch) -循环结构(for, while, do…while) - -格式: -if(关系表达式){ - 语句体; -} - -switch (表达式) { -case 1: -语句体1; -break; -case 2: -语句体2; -break; -... -default: -语句体n+1; -break; -} - -for (初始化语句;条件判断语句;条件控制语句) { -循环体语句; -} - -while (条件判断语句) { -循环体语句; -条件控制语句; -} -执行条件判断语句,看其结果是true还是false - 如果是false,循环结束 - 如果是true,继续执行 \ No newline at end of file diff --git "a/14 \346\235\216\344\277\212\345\205\264/20231026 JavaScript\345\210\235\350\257\206.md" "b/14 \346\235\216\344\277\212\345\205\264/20231026 JavaScript\345\210\235\350\257\206.md" deleted file mode 100644 index a1d6c9cb0fd9ee5b961d7d2bb6092d71a6b80256..0000000000000000000000000000000000000000 --- "a/14 \346\235\216\344\277\212\345\205\264/20231026 JavaScript\345\210\235\350\257\206.md" +++ /dev/null @@ -1,93 +0,0 @@ -# Day01 作业布置 - -## 一. 完成课堂所有的代码 - -~~~html -百度一下 -Google一下 - -Google一下 - -bing一下 - - - - - - - -~~~ - - - -## 二. 简单聊聊JavaScript的历史(自己的话术来总结) - -~~~javascript -1995年网景公司招募了BE这位大佬,希望将Scheme 语言 作为脚本语言,但是95年sum公司发行Java语言,网景公司动了心,想与sum公司结盟,希望将Java嵌入网页中运行但是BE非常热衷于Scheme,管理层希望可以简化Java 来适应网页脚本的需求,但是BE对此不感兴趣,用十天设计出来了JavaScript -~~~ - - - -## 三. 说说你对JS引擎的理解(自己的话术总结) - - ~~~JavaScript - // 我们前面说过,高级的编程语言都是需要转成最终的机器指令来执行的; - //  事实上我们编写的JavaScript无论你交给浏览器或者Node执行,最后都是需要被CPU执行的; - //  但是CPU只认识自己的指令集,实际上是机器语言,才能被CPU所执行; - //  所以我们需要JavaScript引擎帮助我们将JavaScript代码翻译成CPU指令来执行; - ~~~ - - - -## 四. JavaScript的交互方式有哪些?(后两种方式) - -```javascript -document.write // 接受多个字符串 // 效果:在浏览器页面查看 -``` - -~~~JavaScript -prompt // 接受一个参数 // 在浏览器接受用户输入 -~~~ - - - -## 五. 定义一些你日常生活或者在某些程序中见到的变量(10个)(预习) - -~~~JavaScript -let age = 18; // number -let str = '啧啧啧' // 字符串 -let age = 20; // 20岁 -let num = 18; -let str = '张' // 字符串 -let str = '程' // 字符串 -let str = '啧啧啧' // 字符串 -let flag = true; -let flag = false; -let arr =[1,'p',true,"张三"] // 数组 -~~~ - - - -## 六. 说出JavaScript中的常见数据类型以及它们代表的含义(预习) - -~~~JavaScript -// 1.null类型 表示空值 -// 2.undefined 表示未定义的值 -// 3.number类型 数字类型 -// 4.string类型 字符串类型 -~~~ - - - diff --git "a/14 \346\235\216\344\277\212\345\205\264/20231027 JavaScript\345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213.md" "b/14 \346\235\216\344\277\212\345\205\264/20231027 JavaScript\345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213.md" deleted file mode 100644 index 8d2e94ec41adcd8ba1669274e80476ac09e0fbe0..0000000000000000000000000000000000000000 --- "a/14 \346\235\216\344\277\212\345\205\264/20231027 JavaScript\345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213.md" +++ /dev/null @@ -1,543 +0,0 @@ -## JavaScript变量和数据类型 - -### 在 JavaScript 中有 8 种基本的数据类型(7 种原始类型和 1 种复杂类型) - -Number 代表数据类型是数值 - -- 整数 -- 浮点 -- 数组 - -String 代表字符串 - -Boolean 布尔型 - -- true -- false - -Undefined 变量未赋值 = 变量未定义 a is not define - -Null 空值 - -Object 对象 - -function 函数 - -BigInt(后续了解)大整数类型 - -Symbol(后续了解)符号类型 - -### 变量的声明:在 var 关键字 - -```js -// 定义变量同时赋值 -var name = ' 内容'; - -// 先定义再赋值 -var hobby; -hobby = '内容'; - -// 同时定义多个变量 -var a,b,c; -a=1,b=3,c=5; - -// 变量之间用;逗号隔开,分号结束 -var c=1,b=2,c=3; -``` - -不能用js关键字和保留字做变量名和常量名 - -基本上所有的编程语言都不允许变量的开始有数字 - -```js -name1 √ -_name1 √ -1name × - -console.log('1'-1); // 0 -console.log('name1'-1); // NaN -``` - -js代码在 html 内部写法,需要写一对 script 标签 - -声明 js 的变量的时候,不需要写数据类型,js 会自动根据你给的值判断它 - -定义一个变量,但此时还没有赋值,会报 undefined - -undefined 即是一种数据类型,也是一种值,也就是有变量,但没有值,连 null 都没有 null - -没有 var 定义变量也不会报错,因为写到了 window 对象中 - -### 当计算错误是会报 NaN 错误 - -```js -NaN 是计算错误 / Not a Number -如 a = '你好' -b = 2.5 -console.log(a/b) -``` - -### 两个变量交换,实现 num1 和 num2 交换 - -```js -// 第一种方法 -var num3 = num1; -var num1 = num2; -var num2 = num3; - -// 第二种方法 -num1 = num1 + num2; -num2 = num1 - num2; -num1 = num1 - num2; -``` - -### 判断一个变量此时是什么类型 - -```js -typeof 变量; -console.log(typeof 变量); -``` - -### number 类型的最大和最小值 - -```js -console.log(number.min_value); -console.log(number.max_value); -``` - -### isNaN - -判断是不是数值,不是数值为 true 是数值为 false - -单引号,双引号都可以用来标记字符串全部英文引号 '' '',引号是成对出现,且前后要一致如果内容本身有引号,那么标记的引号要相反 - -### 转义字符串 - -\ ' 单引号 - -\ '' 双引号 - -\t 制表,缩进 - -\n 换行 - -在 + 加号的左右两边只要出现一个字符串,这个 + 加号就不是加法运算,而是拼接字符串,而且得到一个新的字符串 - -强制转成数值,不然结果为11 - -```js -console.log(number('1')+1); // 2 -``` - -转换数值 - -```js -number(true); // 1 -number(false); // 0 -number(null); // 0 -number(undefined); // NaN -number(''); // 0 -``` - -转换字符串 - -0、null、undefined、NaN、'' 转成字符串为false,其他的为true - -### 字符串长度 - -```js -console.log(变量名1,length); // 返回的字符数 -``` - -### 文档中的练习 - -```js -// 练习一:定义一些变量,保存自己的个人信息: -// 比如姓名、年龄、身高、体重、爱好等等 -var name='sana'; -var age=27; -var weight=48; -var hight=166; -var hobby='dance'; - -// 练习二:定义一个变量name,赋值成coderwhy。定义一个变量admin,将name赋值给admin -var corderwhy='mina'; -var name1=coderwhy; -var admin=name1; - -// 练习三:定义变量,保存两个数字,并且对两个变量的数字进行交换 -//  方式一:使用临时变量 -var a=1,b=2; -var c=a; -var a=b; -var b=c; - -// 方式二:不使用临时变量(了解即可) -var a=a+b; -var b=a-b; -var a=a-b; - -// 练习四:让用户在浏览器中输入一个值,在JavaScript程序中使用变量接收 -// 作业:你平时在使用一些应用程序时,哪些内容可以定义成变量? -// 比如玩游戏、听歌、购物的应用程序中; -prompt('请输入名字'); -``` - -## 常见的运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ---------- | ---------- | ------ | -| + | 加法 | 2 + 3 | 5 | -| + | 连接字符串 | ‘中’+ ‘国’ | ‘中国’ | -| - | 减法 | 2 - 3 | -1 | -| * | 乘法 | 2 * 3 | 6 | -| / | 除法 | 5 / 2 | 2.5 | -| % | 取余数 | 5 % 2 | 1 | -| ** | 幂(ES7) | 2 ** 3 | 8 | - -### 取余 % 和 求幂 - - 取余运算符是 %,尽管它看起来很像百分数,但实际并无关联 - - a % b 的结果是 a 整除 b 的 余数 - -```js -console.log(10%3) -VM72:1 1 -undefined -``` - - 求幂运算 a ** b 将 a 提升至 a 的 b 次幂。(ES7中的语法,也叫做ES2016) - -在数学中我们将其表示为 a的b次方 - -```js -console.log(2**3); -VM127:1 8 -undefined - -console.log(2**4); -VM140:1 16 -undefined -``` - -### 原地修改(Modify-in-place) - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ----------------- | -------------- | ---- | -| = | 赋值 | a = 5 | 5 | -| += | 加后赋值 | a = 5, a += 2 | 7 | -| -= | 减后赋值 | a = 5, a -= 2 | 3 | -| *= | 乘后赋值 | a = 5; a *= 2 | 10 | -| /= | 除后赋值 | a = 5; a /= 2 | 2.5 | -| %= | 取模 (余数)后赋值 | 5 % 2 | 1 | -| **= | 幂后赋值 | a = 5; a **= 2 | 25 | - -### 自增、自减 - -对一个数进行加一、减一是最常见的数学运算符之一。 - -所以,对此有一些专门的运算符: - -自增 ++ 将变量加1; - -自减 -- 将变量减1; - -自增/自减只能应用于变量。 - -将其应用于数值(比如 5++)则会报错。 自增、自减 coderwhy - -运算符 ++ 和 -- 可以置于变量前,也可以置于变量后。 - - 当运算符置于变量后,被称为“后置形式”(postfix form):counter++。 - -当运算符置于变量前,被称为“前置形式”(prefix form):++counter。 - -两者都做同一件事:将变量 counter 与 1 相加。 - -### 比较运算符 - -比较运算符的结果都是Boolean类型的 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | -------- | ------ | ----- | -| == | 相等 | 4 == 3 | false | -| != | 不等于 | 4 != 3 | true | -| > | 小于 | 4 > 3 | true | -| < | 大于 | 4 < 3 | false | -| >= | 小于等于 | 4 <= 3 | false | -| <= | 大于等于 | 4 >= 3 | true | - -### === 和 == 的区别 - -普通的相等性检查 == 存在一个问题,它不能区分出 0 和 false,或者空字符串和 false这类运算: - -这是因为在比较不同类型的值时,处于判断符号 == 两侧的值会先被转化为数字; - -空字符串和 false 也是如此,转化后它们都为数字 0; - -严格相等运算符 === 在进行比较时不会做任何的类型转换; - -换句话说,如果 a 和 b 属于不同的数据类型,那么 a === b 不会做任何的类型转换而立刻返回 false; - -## 分支语句和逻辑运算符 - -### 单分支语句:if - - if(...) 语句计算括号里的条件表达式,如果计算结果是 true,就会执行对应的代码块。 - -案例一: 如果小明考试超过90分, 就去游乐场 - -“如果”相当于JavaScript中的关键字if 分数超过90分是一个条件(可以使用 > 符号) - -```html -测试分数 - -``` - -案例二:单位5元/斤的苹果,如果购买超过5斤,那么立减8元 - -注意:这里我们让用户输入购买的重量,计算出最后的价格并且弹出结果 - -```html -计算价格 - -``` - -补充一:如果代码块中只有一行代码,那么{}可以省略: - -补充二:if (…) 语句会计算圆括号内的表达式,并将计算结果转换为布尔型(Boolean)。 - -转换规则和Boolean函数的规则一致; - -数字 0、空字符串 “”、null、undefined 和 NaN 都会被转换成 false。 因为它们被称为“假值(falsy)”; - -其他值被转换为 true,所以它们被称为“真值(truthy)”; - -### 多分支语句:if.. else.. - -案例一:如果分数超过90分去游乐场,否则去上补习班 - -满足条件时,做某些事情 - -不满足(else),去做另外一些事 - -```html -测试分数 - -``` - -案例二:m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js - var m=20,n=30; - if(m>n){ - alert('m>n'); - }else{ - alert('n>m'); - } -``` - -### 多分支结构: if.. else if.. else - -多分支结构: if.. else if.. else.. - -有时我们需要判断多个条件; - -我们可以通过使用 else if 子句实现; - -案例: 分数评级: - -考试分数大于90:优秀 - -大于80小于等于90:良好 - -大于60小于等于80:合格 - -小于60分:不及格 - -```html -分数评级 - -``` - -### 三元运算符 - -```js -var result = condition ? value1 : value2; -// 计算条件结果,如果结果为真,则返回 value1,否则返回 value2。 -``` - -案例一: m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -```js -var res = m>n?'m大':'n大'; -alert(res); -``` - -案例二:判断一个人是否是成年人了 - -```js -var age = prompt('年龄') -var res2 = age>=18 ? '成年':'未成年'; -alert(res2); -``` - -### 认识逻辑运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| ------ | ------------ | ------------- | ----- | -| && | 与: 同时为真 | false && True | false | -| \|\| | 或: 一个为真 | false or true | true | -| ! | 非: 取反 | !false | true | - -### switch语句 - -case穿透问题: 一条case语句结束后,会自动执行下一个case的语句; - -这种现象被称之为case穿透;break关键字 - -通过在每个case的代码块后添加break关键字来解决这个问题; - -注意事项:这里的相等是严格相等。 - -被比较的值必须是相同的类型才能进行匹配。 - -## while和for循环 - -### while循环 - -当条件成立时,执行代码块; - -当条件不成立时,跳出代码块; - -如果条件一直成立(为true),那么会产生死循环。 - - 这个时候必须通过关闭页面来停止死循环; - -开发中一定要避免死循环的产生; while循环 coderwhy - -while循环的练习题目: - -练习一:打印10次Hello World - -```js - var i=1; - while(i<10){ - document.write('

Hello World

') - i++; - } -``` - -练习二:打印0~99的数字 - -```js - var i=1; - while(i<100){ - document.write(i+'\n'); - i++; - } -``` - -练习三:计算0~99的数字和 - -```js - var i=1; - var s=0; - while(i<100){ - s=s+i; - i++; - } - alert(s); -``` - -练习四:计算0~99所有奇数的和 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==1){ - s=s+i; - } - i++; - } - alert(s); -``` - -练习五:计算0~99所有偶数的 - -```js - var i=1; - var s=0; - while(i<100){ - if (i%2==0){ - s=s+i; - } - i++; - } - alert(s); -``` - -### do..while循环 - -do..while循环和while循环非常像,二者经常可以相互替代(不常用) - -但是do..while的特点是不管条件成不成立,do循环体都会先执行一次; - - 通常我们更倾向于使用while循环。 - -### for循环 - -| 语句段 | 例子 | 执行过程 | -| -------------- | --------- | ---------------------------------------------- | -| begin | let i = 0 | 进入循环时执行一次 | -| condition | i < 3 | 在每次循环迭代之前检查,如果为 false,停止循环 | -| body(循环体) | alert(i) | 条件为真时,重复运行 | -| step | i++ | 在每次循环体迭代后执行 | - -begin 执行一次,然后进行迭代:每次检查 condition 后,执行 body 和 step \ No newline at end of file diff --git "a/17 \345\221\250\345\257\214/10.26\344\275\234\344\270\232.md" "b/17 \345\221\250\345\257\214/10.26\344\275\234\344\270\232.md" deleted file mode 100644 index 3ced8aa2ff07f5966acf290ed7b54f8d49813ee1..0000000000000000000000000000000000000000 --- "a/17 \345\221\250\345\257\214/10.26\344\275\234\344\270\232.md" +++ /dev/null @@ -1,79 +0,0 @@ -```html -百度一下 -Google一下 - -Google一下 - -bing一下 - - - - - - - -~~~ - - - -## 二. 简单聊聊JavaScript的历史(自己的话术来总结) -1995年网景公司招募了BE这位大佬,希望将Scheme 语言 作为脚本语言,但是95年sum公司发行Java语言,网景公司动了心,想与sum公司结盟,希望将Java嵌入网页中运行但是BE非常热衷于Scheme,管理层希望可以简化Java 来适应网页脚本的需求,但是BE对此不感兴趣,用十天设计出来了JavaScript -~~~ - - - -## 三. 说说你对JS引擎的理解(自己的话术总结) - // 我们前面说过,高级的编程语言都是需要转成最终的机器指令来执行的; - //  事实上我们编写的JavaScript无论你交给浏览器或者Node执行,最后都是需要被CPU执行的; - //  但是CPU只认识自己的指令集,实际上是机器语言,才能被CPU所执行; - //  所以我们需要JavaScript引擎帮助我们将JavaScript代码翻译成CPU指令来执行; - - - - -## 四. JavaScript的交互方式有哪些?(后两种方式) - - -document.write // 接受多个字符串 // 效果:在浏览器页面查看 - - - -prompt // 接受一个参数 // 在浏览器接受用户输入 - - - - -## 五. 定义一些你日常生活或者在某些程序中见到的变量(10个)(预习) - -let age = 18; // number -let str = '啧啧啧' // 字符串 -let age = 20; // 20岁 -let num = 18; -let str = '张' // 字符串 -let str = '程' // 字符串 -let str = '啧啧啧' // 字符串 -let flag = true; -let flag = false; -let arr =[1,'p',true,"张三"] // 数组 - - - -## 六. 说出JavaScript中的常见数据类型以及它们代表的含义(预习) -// 1.null类型 表示空值 -// 2.undefined 表示未定义的值 -// 3.number类型 数字类型 -// 4.string类型 字符串类型 -``` - diff --git "a/17 \345\221\250\345\257\214/10.27\344\275\234\344\270\232.md" "b/17 \345\221\250\345\257\214/10.27\344\275\234\344\270\232.md" deleted file mode 100644 index 98f14c36824fa0d0ee039d337c2289bc3c14612a..0000000000000000000000000000000000000000 --- "a/17 \345\221\250\345\257\214/10.27\344\275\234\344\270\232.md" +++ /dev/null @@ -1,46 +0,0 @@ -```htmi - - - - - - - 网页 - - - - - -``` - diff --git "a/20 \347\237\263\350\211\257\346\266\233/.keep" "b/20 \347\237\263\350\211\257\346\266\233/.keep" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/20 \347\237\263\350\211\257\346\266\233/20231029\345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213.md" "b/20 \347\237\263\350\211\257\346\266\233/20231029\345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213.md" deleted file mode 100644 index bb1a26348a722632e72cc053f4af00d561379d1e..0000000000000000000000000000000000000000 --- "a/20 \347\237\263\350\211\257\346\266\233/20231029\345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213.md" +++ /dev/null @@ -1,203 +0,0 @@ -# 笔记 - -## 变量 - -​ 一个变量,就是一个用于存放数值的容器(可以是数字,字符串或其他任意的数据)变量的独特之处在于它存放的数值是可以改变的。 - -命名格式: - -​ 用var关键字(variable单词的缩写) - -​ var 名称 = ....; - -​ 也可以分开操作 - -​ var 名称; 名称 = ...; - -​ 同时声明多个变量 - -​ var 名称1,名称2....; 1 = .. 2 = .. - -##### 变量的命名规范(必须遵守) - -​ 第一个字符必须是字母,下划线,美元符,其它字符可以是字母,下划线,美元符或数字 - -​ 不能使用关键字和保留字命名 - -​ 变量严格区分大小写 - -命名规范: - -​ 1.使用小驼峰标识 - -​ 2.赋值=两边加上空格 - -​ 3.一条语句结束后加上分号; - -​ 4.见名知意 - -使用注意: - -​ 如果一个变量未声明,就直接使用,那么会报错 - -​ 如果有声明,没有赋值,那么默认值就是undefined - -​ 如果没有使用var声明变量也可以,但是不推荐(会被添加到window对象上) - -## 数据类型 - -​ 可以前一刻是字符串,下一刻便是数字,例如js被称为“动态类型” - -#### typeof操作符(用来确定任意变量的数据类型) - -​ typeof是一个操作符,并非是一个函数,()只是将后续内容当做一个整体而已 - -#### Number类型(代表整数和浮点数) - -​ 可以做加减乘除法等 - -数学概念中的无穷大(infinity) - -计算错误:它是一个错误的操作的结果(NAN)比如:字符串与数字相乘 - -最小正数值:(Number.MIN_VALUE) - -最小正数值:(Number.MAX_VALUE) - -is NAN:用于判断是否不是数字。不是数字返回ture,是数字返回false - -#### String类型 - -​ js中的字符串必须被括在引号里,有三种方式 - -​ 双引号"..." 单引号'..' 反引号`...` - -前后的引号类型必须一致 - -字符串的属性和方法: - -1.通过字符串拼接:通过+运算符 - -2.获取字符串长度(length) - -#### Boolean类型 - -​ 仅包含两个值:true和false - -#### Undefined类型 - -​ 如果声明一个变量,但没有对其进行初始化时,它默认就是undefined - -注意:最好在变量定义的时候进行初始化,而不是声明一个变量。不要显示的将一个变量赋值为undefined - -#### Object类型(对象) - -​ 通常把它称为引用类型或者复杂类型 - -其他的数据类型称为原始类型,因为他们的值包含一个单独的内容 - -Object往往可以表示一组数据,是其他数据的一个集合 - -在js中我们可以使用花括号的方式来表示一个对象 - -#### Null类型 - -​ 用来表示一个对象为空,所以通常在给一个对象进行初始化时,会赋值null - -null和undefined的关系 - -​ undefined通常只有在一个变量声明但是未初始化时,它的默认值是undefined才会用到 - -​ 不推荐直接给一个变量赋值为undefined,所以很少主动使用 - -​ null值非常常用,当一个变量准备保存一个对象,但这个对象不确定,可以先赋值为null - -#### 总结 - -​ js有八种基本的数据类型 - -​ object为复杂数据类型,也称为引用类型,其他七种为基本数据类型,也称为原始类型 - - - -### 数据类型的转换 - -​ 大多数情况下,运算符和函数会自动赋予它们的值转换为正确的类型,这是一种隐式转换,也可以通过显示的方式来数据类型进行转换 - -##### String的转换 - -​ 1.隐式转换 - -​ 一个字符串和另一个字符串进行+操作(如果+运算符两边有一个是字符串,那么另一边会转换为字符串拼接) - -​ 某些函数的执行也会自动将参数转为字符串类型(比如console.log函数) - -​ 2.显式转换 - -​ 调用string()函数; 调用toString()方法 - -##### Number的转换 - -​ 1.隐式:在算数运算中,通常会将其他类型转换成数字类型来计算 - -​ 2.显示:可以使用Number()函数来进行显示的转换 - -其他类型转换数字规则 - -​ undefined 转换后:NAN null 转换后:0 ture和false 转换后:1或0 - -​ string 转换后:去掉首尾空格后的纯数字中含有的数字,如果剩余字符串为空,则转换结果为0,否则,将会从剩余字符串中读取数字,当出现error时返回NAN。 - -##### Boolean的转换 - -​ 它发生在逻辑运算中,但是也可以通过Boolean(value)显式的进行转换 - -转换规则:直观上为“空”的值(如0,空字符串,null,undefined,和NAN)将变为false,其他值变成true。 - -# 作业 - -```html - - - - - - - 网页 - - - - - -``` diff --git "a/20231027\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.md" "b/20231027\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.md" deleted file mode 100644 index 0d7481bc2910db7f309a8f238509f3a5074c43d6..0000000000000000000000000000000000000000 --- "a/20231027\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.md" +++ /dev/null @@ -1,206 +0,0 @@ -2023年10月28日 - -# 数据类型,分支逻辑,运算符,循环 - -## 案例 - -```html - - - - - - - 05 - - -

05_JavaScript分支语句和逻辑运算符

- - - - - - - -``` - -```html - - - - - - - 06 - - - - - - - -``` \ No newline at end of file diff --git "a/22 \350\202\226\351\222\237\345\207\257\351\237\251/20231026 JavaScript.md" "b/22 \350\202\226\351\222\237\345\207\257\351\237\251/20231026 JavaScript.md" deleted file mode 100644 index a1d6c9cb0fd9ee5b961d7d2bb6092d71a6b80256..0000000000000000000000000000000000000000 --- "a/22 \350\202\226\351\222\237\345\207\257\351\237\251/20231026 JavaScript.md" +++ /dev/null @@ -1,93 +0,0 @@ -# Day01 作业布置 - -## 一. 完成课堂所有的代码 - -~~~html -百度一下 -Google一下 - -Google一下 - -bing一下 - - - - - - - -~~~ - - - -## 二. 简单聊聊JavaScript的历史(自己的话术来总结) - -~~~javascript -1995年网景公司招募了BE这位大佬,希望将Scheme 语言 作为脚本语言,但是95年sum公司发行Java语言,网景公司动了心,想与sum公司结盟,希望将Java嵌入网页中运行但是BE非常热衷于Scheme,管理层希望可以简化Java 来适应网页脚本的需求,但是BE对此不感兴趣,用十天设计出来了JavaScript -~~~ - - - -## 三. 说说你对JS引擎的理解(自己的话术总结) - - ~~~JavaScript - // 我们前面说过,高级的编程语言都是需要转成最终的机器指令来执行的; - //  事实上我们编写的JavaScript无论你交给浏览器或者Node执行,最后都是需要被CPU执行的; - //  但是CPU只认识自己的指令集,实际上是机器语言,才能被CPU所执行; - //  所以我们需要JavaScript引擎帮助我们将JavaScript代码翻译成CPU指令来执行; - ~~~ - - - -## 四. JavaScript的交互方式有哪些?(后两种方式) - -```javascript -document.write // 接受多个字符串 // 效果:在浏览器页面查看 -``` - -~~~JavaScript -prompt // 接受一个参数 // 在浏览器接受用户输入 -~~~ - - - -## 五. 定义一些你日常生活或者在某些程序中见到的变量(10个)(预习) - -~~~JavaScript -let age = 18; // number -let str = '啧啧啧' // 字符串 -let age = 20; // 20岁 -let num = 18; -let str = '张' // 字符串 -let str = '程' // 字符串 -let str = '啧啧啧' // 字符串 -let flag = true; -let flag = false; -let arr =[1,'p',true,"张三"] // 数组 -~~~ - - - -## 六. 说出JavaScript中的常见数据类型以及它们代表的含义(预习) - -~~~JavaScript -// 1.null类型 表示空值 -// 2.undefined 表示未定义的值 -// 3.number类型 数字类型 -// 4.string类型 字符串类型 -~~~ - - - diff --git "a/22 \350\202\226\351\222\237\345\207\257\351\237\251/20231029 \351\242\204\344\271\240.md" "b/22 \350\202\226\351\222\237\345\207\257\351\237\251/20231029 \351\242\204\344\271\240.md" deleted file mode 100644 index 6962c00cee1c873dfb9e40abfe832497ef254bbe..0000000000000000000000000000000000000000 --- "a/22 \350\202\226\351\222\237\345\207\257\351\237\251/20231029 \351\242\204\344\271\240.md" +++ /dev/null @@ -1,192 +0,0 @@ -### 运算符 - -#### 算术运算符 - -算术运算使用的符号,用于执行俩个变量或值的算术运算 - -| 运算符 | 描述 | 实例 | -| ------ | -------------- | ------------------------ | -| + | 加 | 10 + 20 = 30 | -| - | 减 | 10 - 5 = 5 | -| * | 乘 | 5 * 5 = 25 | -| / | 除 | 10 / 20 = 0.5 | -| % | 取余数(取模) | 返回除法的余数 9 % 2 = 1 | - -#### 赋值运算符 - -用来把数据赋值给变量的运算符 - -| 赋值运算符 | 说明 | 案例 | -| ---------- | ------------------ | ----------------------------- | -| = | 直接赋值 | var usrName='我是值'; | -| += 、 -= | 加、减一个数后赋值 | var age= 10;age+=5;// 15 | -| *=、/=、%= | 乘、除、取模后赋值 | var age = 2 ; age*=5; // 10 | - -#### 运算符优先级 - -| 优先级 | 运算符 | 顺序 | -| ------ | ---------- | ----------------------- | -| 1 | 小括号 | () | -| 2 | 一元运算符 | ++ -- ! | -| 3 | 算数运算符 | 先 * / 后 + - | -| 4 | 关系运算符 | > >= < <= | -| 5 | 相等运算符 | == != **= !(不全等)** | -| 6 | 逻辑运算符 | 先&&(与) 后\|\|(或) | -| 7 | 赋值运算符 | = | -| 8 | 逗号运算符 | , | - -### 流程控制语句-分支 - -#### if语句 - - 由上到下执行代码的过程中,根据不同条件,执行不同路径代码(执行代码多选一的过程),从而得到不同的结果 - -语法: - -``` - if (条件表达式1){ - // 执行语句1 - }else if (条件表达式2) { - // 执行语句2 - }else { - // 执行剩余条件语句 - } -``` - -**判断成绩案例** - -``` -// 按照大到小判断的思路 -// 弹出prompt输入框 让用户输入分数,把这个值取过来保存到变量中 -// 使用if else if 语句来判断输出不同的值 -var score = prompt ('请输入您的分数'); -if(score >= 90){ - alert('你真棒哟!'); -}else if(score >=80){ - alert('你已经很棒了'); -}else if(score >= 70){ - alert('很好但是还需要努力'); -}else if (score>=60){ - alert('还需要继续努力哦!'); -}else{ - alert('你得努力了哦'); -} -``` - -#### switch语句 - - switch 语句也是多分支语句,它用于基本不同的条件来执行不同的代码,当要针对变量设置一系列的特定值的选项时,可以使用switch(多选1) - -语法: - -``` -switch(表达式){ - case 值1: - // 执行语句1; - break; - case 值2: - // 执行语句2; - break; - // .... - default: - // 执行最后的语句; -} -//执行思路 - /*利用我们的表达式的值 和 case 后面的选项相匹配如果匹配上就执行该case里面的语句 如果没有匹配上,那么执行default里面的语句*/ -``` - -**switch注意事项** - -``` -//我们开发里面 表达式经常写成变量 -//我们num 的值和case 里面相匹配的时候是全等,必须数据类型和值一样才 num === 1 -//不写break 会造成穿透 -``` - -#### 三元表达式 - -三元表达式能做一些简单的条件选择。有三元运算符组成的式子称为三元表达式 - -语法结构: - -``` -// 条件表达式 ? 表达式1 :表达式2 -``` - -执行思路 - -如果条件表达式结果为真 则 返回表达式1 的值 如果表达式结果为假 则返回 表达式2 值 - -``` -var num = 10; -var result = num > 5 ? '是的':'不是的'; -``` - -**补零** - -``` -var time = prompt('请输入一个 0~50 之间的一个数字'); -条件表达式 ? 表达式1 :表达式2 -var result = time < 10 ? '0'+ time : time;//把返回值赋值给一个变量 -alert(result);//输出 -``` - -### 循环 - -#### for循环 - -语法: - -``` -for (初始化变量;条件表达式;操作表达式){ - //循环体 -} -``` - -例: - -``` -for(var i = 1; i<=100; i++){ - console.log('这个人今年'+ i +'岁了'); -} -``` - -#### for循环小结 - -- for 循环可以重复执行某些相同代码 -- for 循环可以重复执行些许不同的的代码,因为我们有计数器 -- for 循环可以重复执行某些操作,比如算术运算符 -- 随着需求增加,双重for循环可以做更多、更好看的效果 -- 双重for循环,外层循环一次,内外for循环全部执行 -- for循环,时循环条件和数字直接相关的循环 - -#### while 循环 - -``` -//语法结构 -while(条件表达式){ - //循环体 -} -//执行思路 当条件表达式结果为true 则执行循环体 否则退出循环 -var num = 1; -while(num<=100){ - conlose.log('hao'); - num++; -} -//里面也有计数器,初始化变量 -// 里面应该也有操作表达式 完成计数器的更新 防止死循环 -``` - -#### do while 循环 (while变体) - -``` -//语法结构 -do{ - //循环体 -}while(条件表达式) -// 执行思路 跟while 不同的地方在于 do while 先执行一次循环体 在判断条件 如果条件结果为真,则继续执行循环体,否则退出循环 -var i = 1; -do{ - console.log('how'); -}while(i <= 100) -``` \ No newline at end of file diff --git "a/26\351\231\210\344\275\263\347\202\234/1030\344\275\234\344\270\232.md" "b/26\351\231\210\344\275\263\347\202\234/1030\344\275\234\344\270\232.md" deleted file mode 100644 index 417d690322ba7e5efd3de6070472407f6317617f..0000000000000000000000000000000000000000 --- "a/26\351\231\210\344\275\263\347\202\234/1030\344\275\234\344\270\232.md" +++ /dev/null @@ -1,169 +0,0 @@ -作业 - -~~~ html - - 161 - 162 - 163 - 164 - 165 - 166 网页 - 167 - 168 - 169 - 201 - 202 - -~~~ - -### 笔记 - -一个变量就是一个用于存放数值的容器 -这个变量可以是一个数字或是一个字符串 -变量声明 -用var声明 -变量的赋值 -使用=给变量赋值 -不能使用JS的关键字和保留字做变量名或常量名 -变量名规则 -开头只能用字母 下划线或美元符号 -变量严格区分大小写 -声明JS的变量不需要写数据类型 -undefined既是一种数据类型也是一种值 -undefined只有undefined一个值 -表示变量的值未定义 有变量名没有值 -JavaScript的数据类型 -JavaScript中的值都具有特定的数据类型 -typeof判断变量的数据类型 -infinity表示无穷大 -NaN表示一个计算错误 -is NaN判断是不是数字不是数字返回ture 是返回false -在+号两边只要出现一个字符串这个+号就不是加法运算而是拼接字符串 -boolean -表示真假 -object 是一个特殊类型我们通常把他称为引用类型 -null -表示一个值为空 - -### 预习 - - \+ 加法 2 + 3 5 - -+连接字符串 ‘中’+ ‘国’ ‘中国’ - --减法 2 - 3 -1 - - * 乘法 2 * 3 6 - -/ 除法 5 / 2 2.5 - - % 取余数 5 % 2 1 - -** 幂(ES7) 2 ** 3 8 - - - -= 赋值 a=10,将10赋值给变量a - -+= 加后赋值 a+=b,将a+b的值给a a = a+b; - --= 减后赋值 a-=b,将a-b的值给a a=a-b; - -*= 乘后赋值 a*=b*,将*a×b*的值给*a a=a*b; - -/= 除后赋值 a/=b,将a÷b的商给a a=a/b; - -%= 取余后赋值 a%=b,将a÷b的余数给a a=a%b; - -& - -逻辑与 and - -a&b,a和b都是true,结果为true,否则为false - -| - -逻辑或 or - -a|b,a和b都是false,结果为false,否则为true - -^ - -逻辑异或 不能有相等的关系 - -a^b,a和b结果不同为true,相同为false - -! - -逻辑非 not - -!a,结果和a的结果正好相反 - -三元运算符语法格式:关系表达式?表达式1:表达式2; - -~~~ html -顺序结构 -分支结构(if, switch) -循环结构(for, while, do…while) - -格式: -if(关系表达式){ - 语句体; -} - -switch (表达式) { -case 1: -语句体1; -break; -case 2: -语句体2; -break; -... -default: -语句体n+1; -break; -} - -for (初始化语句;条件判断语句;条件控制语句) { -循环体语句; -} - -while (条件判断语句) { -循环体语句; -条件控制语句; -} -执行条件判断语句,看其结果是true还是false - 如果是false,循环结束 - 如果是true,继续执行 -~~~ \ No newline at end of file diff --git "a/27 \346\235\250\346\242\205/\345\217\230\351\207\217.md" "b/27 \346\235\250\346\242\205/\345\217\230\351\207\217.md" deleted file mode 100644 index f12a0a4d5f67cb5dc30507b515519953f4dd4d4f..0000000000000000000000000000000000000000 --- "a/27 \346\235\250\346\242\205/\345\217\230\351\207\217.md" +++ /dev/null @@ -1,38 +0,0 @@ -```my - - - - - - Document - - - - - -``` - diff --git "a/29 \350\267\257\347\216\262/20231026 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.md" "b/29 \350\267\257\347\216\262/20231026 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.md" deleted file mode 100644 index ca00343b833a70a198ecc2bb24ae25771dc8385c..0000000000000000000000000000000000000000 --- "a/29 \350\267\257\347\216\262/20231026 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.md" +++ /dev/null @@ -1,145 +0,0 @@ -```html - - - - - - Document - - - - - -``` - diff --git "a/33\351\227\253\347\273\247\345\221\250/20231027\345\243\260\346\230\216\345\217\230\351\207\217.md" "b/33\351\227\253\347\273\247\345\221\250/20231027\345\243\260\346\230\216\345\217\230\351\207\217.md" deleted file mode 100644 index 2ae25cecd9653bd9b2a2fb7e067b7d56518d70e4..0000000000000000000000000000000000000000 --- "a/33\351\227\253\347\273\247\345\221\250/20231027\345\243\260\346\230\216\345\217\230\351\207\217.md" +++ /dev/null @@ -1,94 +0,0 @@ -# 笔记 - -let 名 = 值 //定义一个变量 const 名 = 值 //定义一个常量 number 数字类型//js没有整型啥的 NaN 表示计算时不是数字类型 String 字符串 //没有字符型 infinity 无穷大 -无穷小 boolean 布尔值 undefined 未定义 //没赋值默认为未定义 null 空 - -# 作业 - -``` - - - - - - Document - - - - - - - - - - - - - - - - - -
薪水房租水電餘額
- - -``` - -# 练习 - -``` -// 练习一:定义一些变量,保存自己的个人信息: -// 比如姓名、年龄、身高、体重、爱好等等 -let uname,uage,uheight,uweight,uhobby; -uname='韩某某'; -uage=19; -uheight=159; -uweight=160; -uhobby='女'; -docu -document.write(uname,uage,uheight,uweight,uhobby); -// 练习二:定义一个变量name,赋值成coderwhy。定义一个变量admin,将name赋值给admin -let name='coderwhy',admin; -admin=name; -console.log(admin); -// 练习三:定义变量,保存两个数字,并且对两个变量的数字进行交换 -// 方式一:使用临时变量 -let a1=1,b1=2,c; -console.log(a,b); -c=a1; -a1=b1; -b1=c; -console.log(a,b); -// 方式二:不使用临时变量(了解即可) -let a=1,b=2; -console.log(a,b); -a=a+b; -b=a-b; -a=a-b; -console.log(a,b); -// 练习四:让用户在浏览器中输入一个值,在JavaScript程序中使用变量接收 -prompt(a1); -document.write(a1); -// 作业:你平时在使用一些应用程序时,哪些内容可以定义成变量? -// 比如玩游戏、听歌、购物的应用程序中; -let HP=100; -let MP=100; -let Lv=1; -``` \ No newline at end of file diff --git "a/34 \345\210\230\346\231\272\347\277\224/js\346\225\260\346\215\256\347\261\273\345\236\213.md" "b/34 \345\210\230\346\231\272\347\277\224/js\346\225\260\346\215\256\347\261\273\345\236\213.md" deleted file mode 100644 index 85fbf8c6b6b0536ce37b3d0a87723c476cea5960..0000000000000000000000000000000000000000 --- "a/34 \345\210\230\346\231\272\347\277\224/js\346\225\260\346\215\256\347\261\273\345\236\213.md" +++ /dev/null @@ -1,169 +0,0 @@ -作业 - -~~~ html - - 161 - 162 - 163 - 164 - 165 - 166 网页 - 167 - 168 - 169 - 201 - 202 - -~~~ - -### 笔记 - -一个变量就是一个用于存放数值的容器 -这个变量可以是一个数字或是一个字符串 -变量声明 -用var声明 -变量的赋值 -使用=给变量赋值 -不能使用JS的关键字和保留字做变量名或常量名 -变量名规则 -开头只能用字母 下划线或美元符号 -变量严格区分大小写 -声明JS的变量不需要写数据类型 -undefined既是一种数据类型也是一种值 -undefined只有undefined一个值 -表示变量的值未定义 有变量名没有值 -JavaScript的数据类型 -JavaScript中的值都具有特定的数据类型 -typeof判断变量的数据类型 -infinity表示无穷大 -NaN表示一个计算错误 -is NaN判断是不是数字不是数字返回ture 是返回false -在+号两边只要出现一个字符串这个+号就不是加法运算而是拼接字符串 -boolean -表示真假 -object 是一个特殊类型我们通常把他称为引用类型 -null -表示一个值为空 - -### 预习 - - \+ 加法 2 + 3 5 - -+连接字符串 ‘中’+ ‘国’ ‘中国’ - --减法 2 - 3 -1 - - * 乘法 2 * 3 6 - -/ 除法 5 / 2 2.5 - - % 取余数 5 % 2 1 - -** 幂(ES7) 2 ** 3 8 - - - -= 赋值 a=10,将10赋值给变量a - -+= 加后赋值 a+=b,将a+b的值给a a = a+b; - --= 减后赋值 a-=b,将a-b的值给a a=a-b; - -*= 乘后赋值 a*=b*,将*a×b*的值给*a a=a*b; - -/= 除后赋值 a/=b,将a÷b的商给a a=a/b; - -%= 取余后赋值 a%=b,将a÷b的余数给a a=a%b; - -& - -逻辑与 and - -a&b,a和b都是true,结果为true,否则为false - -| - -逻辑或 or - -a|b,a和b都是false,结果为false,否则为true - -^ - -逻辑异或 不能有相等的关系 - -a^b,a和b结果不同为true,相同为false - -! - -逻辑非 not - -!a,结果和a的结果正好相反 - -三元运算符语法格式:关系表达式?表达式1:表达式2; - -~~~ html -顺序结构 -分支结构(if, switch) -循环结构(for, while, do…while) - -格式: -if(关系表达式){ - 语句体; -} - -switch (表达式) { -case 1: -语句体1; -break; -case 2: -语句体2; -break; -... -default: -语句体n+1; -break; -} - -for (初始化语句;条件判断语句;条件控制语句) { -循环体语句; -} - -while (条件判断语句) { -循环体语句; -条件控制语句; -} -执行条件判断语句,看其结果是true还是false - 如果是false,循环结束 - 如果是true,继续执行 -~~~ \ No newline at end of file diff --git "a/37 \346\217\255\351\230\263\344\270\275/20231027 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.txt" "b/37 \346\217\255\351\230\263\344\270\275/20231027 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.txt" deleted file mode 100644 index bc8a8bd610cba70330996408a1e03eaac5791b97..0000000000000000000000000000000000000000 --- "a/37 \346\217\255\351\230\263\344\270\275/20231027 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.txt" +++ /dev/null @@ -1,150 +0,0 @@ -## 练习 - -````html -```html - - - - - - Document - - - - - -``` - -```` - diff --git "a/39 \351\203\255\346\202\246\350\277\216/20231027 JS\345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213.md" "b/39 \351\203\255\346\202\246\350\277\216/20231027 JS\345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213.md" deleted file mode 100644 index 87d30c07938e019286cec0093fc9e7983e688324..0000000000000000000000000000000000000000 --- "a/39 \351\203\255\346\202\246\350\277\216/20231027 JS\345\217\230\351\207\217\345\222\214\346\225\260\346\215\256\347\261\273\345\236\213.md" +++ /dev/null @@ -1,255 +0,0 @@ -## 笔记 - -### JavaScript变量 - -- **如何命名一个变量?** - -1. 变量的声明:使用 var关键字 - -2. 变量的赋值:使用 = 给变量进行赋值 - - ```html - var name = "why" - ``` - -- 这个过程也可以分开操作 - - ```html - var name; - name = "coderwhy"; - ``` - -- 同时声明多个变量 - - ```html - var name,age,height - name = "why" - age = 18 - height = 1.88\ - console.log(name,age,height) - 或者 - var name = "why", age = 18, height = 1.88 - console.log(name,age,height) - ``` - - - -**命名规范**: - -1. 不能用js的关键字和保留字命名; -2. 基本上所有的编程语言,都不允许变量的开始有数字 -3. 可以使用下划线 (_)美元符号 ($) -4. 变量严格区分大小写 -5. 多个单词使用驼峰标识 建议 >>>(小驼峰) - - - -> **ps**:js 代码在html内部写法,需要先写一对script标签; -> -> 声明 js 的变量的时候,不需要写数据类型,js 会自动根据你的值判断它 - - - -**注意事项**: - -1. 一个变量未声明就直接使用,会报错 - -2. 定义一个变量,但此时还未赋值,报错>>>undefined - - > - undefined 即是一种数据类型,也是一种值,也就是说,undefined 这种类型的数据只有 undefined 这一个值,类似null; - > - undefined 表示变量的值未定义,也就是有变量名,但没有值,连null都没有null - -3. 如果没有使用var声明变量也可以,但不推荐 - - ```html - e.g. myBrother = '成龙'; // 不是标准的变量定义语法,少了var - ``` - - > 没有var也没报错,是因为这种写法将 myBrother = '成龙' 写到了windows对象中 - - - -### **JavaScript的数据类型** - -- JS 中的都具有特定的类型 -- JS 中有八种基本的数据类型,前七种为基本数据类型,也称为原始类型;object 为复杂数据类型 - 1. **Number** - 2. **String** - 3. **Boolean** - 4. **Undefined** - 5. **Null** - 6. **Object** - 7. **BigInt**(后续了解) - 8. **Symbol**(后续了解) - - - -**typeof操作符**: - -> 判断一个变量此时是什么类型 -> -> e.g. console.log(typeof...) - -- typeof(x) 与 typeof x 用法相同 - - - -**Number类型一**: - -1. number类型代表浮点数和整数 - -2. 数字number可以有很多操作 - - e.g 乘除加减等等 - -3. 特殊数值:infinity 无穷大;NaN 计算错误 - -**Number类型二**: - -1. 十进制(掌握)、十六、二、八进制(了解) - -2. 最大值 (Number.MIN_VALUE)、最小值(Number.MAX_VALUE) - -3. isNaN :判断是否不是一个数值 - - > NaN :Not a Number 不是一个数值 - > - > isNaN :是?不是一个数值吗?>>> 不是数字返回 true ,反之,返回 false - - - -**String类型**: - -1. 单引号,双引号都可以用来标记字符串 -2. 全部英文引号 -3. 引号是成对出现,且前后要一致 -4. 如果内容本身有引号,那么标记的引号要相反 - - - -**字符串的属性和方法** - -1. 操作一:字符串拼接 - - > 在+号的左右两边,只要出现一个字符串,这个+号就不是加法运算,而是拼接字符串,而且得到一个新字符串 - > - > e.g. console.log('aa'+1+1+2); >>> aa112 - > - > ​ console.log(1+1+2+'aa'); >>>4aa - -2. 操作二:获取字符串长度 - - e.g. console.log(str1.length); >>> length直接返回字符串 - - - -**字符串中的转义字符**: - -1. \ ' 单引号 - -2. \ " 双引号 - -3. \ t 制表符 - -4. \ n 换行符 - - > 暂时掌握这四个单词 - -5. 还有\ \ 反斜杠、\ r 回车 、\ b 退格 - - - -**Boolean类型**: - -1. 用于表示真假 - - e.g. 是否成年、是否登录等等 - -2. 仅包含两个值:true 和 false - - - -**Undefined类型**: - -1. 只有一个值,就是特殊值 undefined - - ps:如果声明一个变量,但是没有对其进行初始化值时,他默认就是undefined - - e.g. var = message - - ​ console.log(message) >>> undefined - - ​ console.log(message === undefined) >>>true - -## 作业 - -```html - - - -    -    -    Document - - -      - - - - - - - - - - - - - - - - -    -    -    Document - - -``` - - - - - - - - - diff --git "a/41 \345\221\250\344\272\232\350\276\211/20231028 js\345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213 .md" "b/41 \345\221\250\344\272\232\350\276\211/20231028 js\345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213 .md" deleted file mode 100644 index 988ea52854537b858ec9bd2a097cb534eab2109e..0000000000000000000000000000000000000000 --- "a/41 \345\221\250\344\272\232\350\276\211/20231028 js\345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213 .md" +++ /dev/null @@ -1,94 +0,0 @@ -# 笔记 - -let 名 = 值 //定义一个变量 const 名 = 值 //定义一个常量 number 数字类型//js没有整型啥的 NaN 表示计算时不是数字类型 String 字符串 //没有字符型 infinity 无穷大 -无穷小 boolean 布尔值 undefined 未定义 //没赋值默认为未定义 null 空 - -# 作业 - -``` - - - - - - Document - - - - - - - - - - - - - - - - - -
薪水房租水電餘額
- - -``` - -# 练习 - -``` -// 练习一:定义一些变量,保存自己的个人信息: -// 比如姓名、年龄、身高、体重、爱好等等 -let uname,uage,uheight,uweight,uhobby; -uname='韩某某'; -uage=19; -uheight=159; -uweight=160; -uhobby='女'; -docu -document.write(uname,uage,uheight,uweight,uhobby); -// 练习二:定义一个变量name,赋值成coderwhy。定义一个变量admin,将name赋值给admin -let name='coderwhy',admin; -admin=name; -console.log(admin); -// 练习三:定义变量,保存两个数字,并且对两个变量的数字进行交换 -// 方式一:使用临时变量 -let a1=1,b1=2,c; -console.log(a,b); -c=a1; -a1=b1; -b1=c; -console.log(a,b); -// 方式二:不使用临时变量(了解即可) -let a=1,b=2; -console.log(a,b); -a=a+b; -b=a-b; -a=a-b; -console.log(a,b); -// 练习四:让用户在浏览器中输入一个值,在JavaScript程序中使用变量接收 -prompt(a1); -document.write(a1); -// 作业:你平时在使用一些应用程序时,哪些内容可以定义成变量? -// 比如玩游戏、听歌、购物的应用程序中; -let HP=100; -let MP=100; -let Lv=1; -``` \ No newline at end of file diff --git "a/42 \346\226\271\345\242\236\345\205\264/\347\273\237\350\256\241\345\233\276\345\222\214\351\232\217\346\234\272\347\202\271\345\220\215\345\206\222\346\263\241.md" "b/42 \346\226\271\345\242\236\345\205\264/\347\273\237\350\256\241\345\233\276\345\222\214\351\232\217\346\234\272\347\202\271\345\220\215\345\206\222\346\263\241.md" new file mode 100644 index 0000000000000000000000000000000000000000..14dcad4cf5aa9a752ca613cba512eebc8629c1c7 --- /dev/null +++ "b/42 \346\226\271\345\242\236\345\205\264/\347\273\237\350\256\241\345\233\276\345\222\214\351\232\217\346\234\272\347\202\271\345\220\215\345\206\222\346\263\241.md" @@ -0,0 +1,185 @@ +# 统计图 + +```javascript + + + + 统计图 + + + + + + + + +``` + +# 随机点名 + +```javascript + + + + Random Name Picker + + + +

随机点名函数

+ + +
+ + + + +``` + +# 冒泡 + +```javascript + + + + + + Document + + + + + + +``` + diff --git "a/43 \351\237\251\346\226\207\346\235\260/js\351\242\204\344\271\240.md" "b/43 \351\237\251\346\226\207\346\235\260/js\351\242\204\344\271\240.md" deleted file mode 100644 index f9382cbbb721bc7bce49ecd47bfe911ed537a813..0000000000000000000000000000000000000000 --- "a/43 \351\237\251\346\226\207\346\235\260/js\351\242\204\344\271\240.md" +++ /dev/null @@ -1,99 +0,0 @@ -# 笔记 - - - -~~~js - -let 名 = 值 //定义一个变量 const 名 = 值 //定义一个常量 number 数字类型//js没有整型啥的 NaN 表示计算时不是数字类型 String 字符串 //没有字符型 infinity 无穷大 -无穷小 boolean 布尔值 undefined 未定义 //没赋值默认为未定义 null 空 - -~~~ - -# 作业 - -~~~js - - - - - - - Document - - - - - - - - - - - - - - - - - -
薪水房租水電餘額
- - - -~~~ - -# 练习 - -~~~js - -// 练习一:定义一些变量,保存自己的个人信息: -// 比如姓名、年龄、身高、体重、爱好等等 -let uname,uage,uheight,uweight,uhobby; -uname='韩某某'; -uage=19; -uheight=159; -uweight=160; -uhobby='女'; -docu -document.write(uname,uage,uheight,uweight,uhobby); -// 练习二:定义一个变量name,赋值成coderwhy。定义一个变量admin,将name赋值给admin -let name='coderwhy',admin; -admin=name; -console.log(admin); -// 练习三:定义变量,保存两个数字,并且对两个变量的数字进行交换 -// 方式一:使用临时变量 -let a1=1,b1=2,c; -console.log(a,b); -c=a1; -a1=b1; -b1=c; -console.log(a,b); -// 方式二:不使用临时变量(了解即可) -let a=1,b=2; -console.log(a,b); -a=a+b; -b=a-b; -a=a-b; -console.log(a,b); -// 练习四:让用户在浏览器中输入一个值,在JavaScript程序中使用变量接收 -prompt(a1); -document.write(a1); -~~~ - diff --git "a/48 \351\251\254\345\256\217\350\276\276/1027\344\275\234\344\270\232.md" "b/48 \351\251\254\345\256\217\350\276\276/1027\344\275\234\344\270\232.md" deleted file mode 100644 index ad29abf13a152d1623105b13281c05f8c683ea8c..0000000000000000000000000000000000000000 --- "a/48 \351\251\254\345\256\217\350\276\276/1027\344\275\234\344\270\232.md" +++ /dev/null @@ -1,104 +0,0 @@ -# 笔记 - -定义变量:const ,let ,var ,直接赋值 - -Number数值,JavaScript 数值类型不再细分整型、浮点型等,js 的所有数值都属于浮点型,64位浮点数。 - -String字符串,最抽象的数据类型,信息传播的载体,字符串必须包含在单引号、双引号或反引号之中,一个字符两个字节。 - -Boolean布尔值,最机械的数据类型,逻辑运算的载体,仅有两个值,true / false。Symbol符号类型,ES6 引入的一种新的原始数据类型,表示独一无二的值,不常用。 - -undefined未定义,当声明变量而没有赋值时会显示该值,可以为变量赋值为 undefined。 - -Object对象,是一种无序的数据集合,内容是键值对的形式,键名(key)是字符串,可以包含任意字符(空格),字符串引号可省略。可以通过 Object.keys(obj) 打印出 obj 对象中的所有 key 值。读对象的属性时,如果使用 [ ] 语法,那么 JS 会先求 [ ] 中表达式的值。如果使用点语法,那么点后面一定是 string 常量。 - -```javascript -\' 单引号 -\" 双引号 -\\ 反斜杠 -\n 换行符 -\r 回车符 -\t 制表符 -\b 退格符 -转义字符串开发中只有特殊场景才会用到,暂时掌握 \’\” \t \n四个的用法即可。 -``` - -= 赋值 a=10,将10赋值给变量a - -+= 加后赋值 a+=b,将a+b的值给a a = a+b; - --= 减后赋值 a-=b,将a-b的值给a a=a-b; - -*= 乘后赋值 a*=b*,将*a×b*的值给*a a=a*b; - -/= 除后赋值 a/=b,将a÷b的商给a a=a/b; - -%= 取余后赋值 a%=b,将a÷b的余数给a a=a%b; - - - - - -& - -逻辑与 and - -a&b,a和b都是true,结果为true,否则为false - -| - -逻辑或 or - -a|b,a和b都是false,结果为false,否则为true - -^ - -逻辑异或 不能有相等的关系 - -a^b,a和b结果不同为true,相同为false - -! - -逻辑非 not - -!a,结果和a的结果正好相反 - - - -三元运算符语法格式:关系表达式?表达式1:表达式2; - -```javascript -顺序结构 -分支结构(if, switch) -循环结构(for, while, do…while) - -格式: -if(关系表达式){ -  语句体; -} - -switch (表达式) { -case 1: -语句体1; -break; -case 2: -语句体2; -break; -... -default: -语句体n+1; -break; -} - -for (初始化语句;条件判断语句;条件控制语句) { -循环体语句; -} - -while (条件判断语句) { -循环体语句; -条件控制语句; -} -执行条件判断语句,看其结果是true还是false - 如果是false,循环结束 - 如果是true,继续执行 -``` diff --git "a/49 \346\235\216\350\210\222\346\261\266/10.27\345\237\272\347\241\200\347\273\203\344\271\240.md" "b/49 \346\235\216\350\210\222\346\261\266/10.27\345\237\272\347\241\200\347\273\203\344\271\240.md" deleted file mode 100644 index 2e240697e25d9d1c556fd772cd7c8e7c9cca3d10..0000000000000000000000000000000000000000 --- "a/49 \346\235\216\350\210\222\346\261\266/10.27\345\237\272\347\241\200\347\273\203\344\271\240.md" +++ /dev/null @@ -1,752 +0,0 @@ -### 在 JavaScript 中有 8 种基本的数据类型(7 种原始类型和 1 种复杂类型) - -```js -Number 代表数据类型是数值 - -* 整数 -* 浮点 -* 数组 - -String 代表字符串 - -Boolean 布尔型 - -* true -* false - -Undefined 变量未赋值 = 变量未定义 a is not define - -Null 空值 - -Object 对象 - -function 函数 - -BigInt(后续了解)大整数类型 - -Symbol(后续了解)符号类型 -``` - -### typeof操作符 - -```js -一个值使用 typeof 操作符会返回下列字符串之一: -"undefined"表示值未定义; -"boolean"表示值为布尔值; -"string"表示值为字符串; -"number"表示值为数值; -"object"表示值为对象(而不是函数)或 null; -"function"表示值为函数; -“symbol”表示值为符号; - -typeof()的用法: -你可能还会遇到另一种语法:typeof(x),它与 typeof x 相同; -typeof是一个操作符,并非是一个函数,()只是将后续的内容当做一个整体而已; -``` - -### Number类型(一) - -```js -number 类型代表整数和浮点数 - var age = 18; -var height = 1.88; - - -数字number可以有很多操作,比如,乘法 *、除法 /、加法 +、减法 - 等等。 -var result1 = 10*2; -var result2 = 10\3; - - -除了常规的数字,还包括所谓的“特殊数值(“special numeric values”)”也属于Number类型(了解) - - -Infinity:代表数学概念中的 无穷大 ∞,也可以表示-Infinity; -✓ 比如 1/0 得到的就是无穷大; - - -NaN:NaN 代表一个计算错误,它是一个错误的操作所得到的结果; -✓ 比如 字符串和一个数字相乘; - - -``` - -### Number类型(二) - -```js -十进制(掌握)、十六进制、二进制、八进制 -1.十进制 -var num1 =111; -2.十六进制 -var num2 =0x111; -3.八进制 -var num3 =0o111; -4.二进制 -var num4 =0b111; -console.log(num1,num2,num3,num4) - - -Number 类型的最大和最小值 -console.log(number.min_value);5e-324 -console.log(number.max_value); 1.7976931348623157e+308 - -isNaN -判断是不是数值,不是数值为 true 是数值为 false - - -``` - -### String类型(一) - -```js -JavaScript 中的字符串必须被括在引号里,有三种包含字符串的方式。 -1.双引号:"Hello" -2.单引号:'Hello’ -3.反引号:`Hello` -var name ="张三" -var add ="北京" -var des ="文字" - -前后的引号类型必须一致: -1.如果在字符串里面本身包括单引号,可以使用双引号; -2.如果在字符串里面本身包括双引号,可以使用单引号; -var message = "我是'张三" -``` - -### 字符串中的转义字符 - -```js -转义字符串 -\ ' 单引号 -\ '' 双引号 -\t 制表,缩进 -\n 换行 - -``` - -### 字符串的属性和方法 - -```js -在 + 加号的左右两边只要出现一个字符串,这个 + 加号就不是加法运算,而是拼接字符串,而且得到一个新的字符串 -这里我们先掌握几个基本的字符串使用操作: -操作一:字符串拼接,通过+运算符(后续还会详细讲解) -var str1 = "H" -var str2 ="O" -var newStr = str1+str2 //HO -操作二:获取字符串长度 -console.log(变量名1,length); // 返回的字符数 - -强制转成数值,不然结果为11 -console.log(number('1')+1); // 2 - -转换数值 -number(true); // 1 -number(false); // 0 -number(null); // 0 -number(undefined); // NaN -number(''); // 0 - -转换字符串 -0、null、undefined、NaN、'' 转成字符串为false,其他的为true -``` - - - -### Boarolean类型 - -```js -Boolean(布尔)类型用于表示真假: -比如是否毕业. 是否有身份证. 是否购买车票. 是否成年人; -比如开发中,我们会判断一个账号是否登录、是否是管理员、是否具备某个权限、是否拥有某个英雄、皮肤等; -布尔(英语:Boolean)是计算机科学中的逻辑数据类型,以发明布尔代数的数学家乔治·布尔为名。 -Boolean 类型仅包含两个值:true 和 false。 -var isLogin =false; -var flag = true; -var result = 1 == 1; -``` - -### Undefined类型 - -```js -Undefined 类型只有一个值,就是特殊值 undefined。 -如果我们声明一个变量,但是没有对其进行初始化时,它默认就是undefined; -var message -console.log(message)//Undefined -console.log(message === Undefined)// true - -var info; -var info = Undefined; -这里有两个注意事项: -注意一:最好在变量定义的时候进行初始化,而不只是声明一个变量; -注意二:不要显示的将一个变量赋值为undefined -✓ 如果变量刚开始什么都没有,我们可以初始化为0、空字符串、null等值; - -``` - -### Object类型 - -```js -Object 类型是一个特殊的类型,我们通常把它称为引用类型或者复杂类型; -1.其他的数据类型我们通常称之为 “原始类型”,因为它们的值质保函一个单独的内容(字符串、数字或者其他); -2.Object往往可以表示一组数据,是其他数据的一个集合; -3.在JavaScript中我们可以使用 花括号{} 的方式来表示一个对象; -var info = { - name:"why", - age: 18, - height: 1.88 -} - -Object是对象的意思,后续我们会专门讲解面向对象的概念等; -``` - - - -### Null类型 - -```js -Null 类型同样只有一个值,即特殊值 null。 -null类型通常用来表示一个对象为空,所以通常我们在给一个对象进行初始化时,会赋值为null; -console.log(typeof null);//object -var obj = null; -obj = { - name:"why", - age: 18 -} - -null和undefined的关系: -1.undefined通常只有在一个变量声明但是未初始化时,它的默认值是undefined才会用到; -2.并且我们不推荐直接给一个变量赋值为undefined,所以很少主动来使用; -3.null值非常常用,当一个变量准备保存一个对象,但是这个对象不确定时,我们可以先赋值为null; -``` - - - -### 数据类型总结 - -```js -JavaScript 中有八种基本的数据类型(前七种为基本数据类型,也称为原始类型,而 object 为复杂数据类型,也称为引用类 -型)。 - 1.number 用于任何类型的数字:整数或浮点数。 - 2.string 用于字符串:一个字符串可以包含 0 个或多个字符,所以没有单独的单字符类型。 - 3.boolean 用于 true 和 false。 - 4.undefined 用于未定义的值 —— 只有一个 undefined 值的独立类型。 - 5.object 用于更复杂的数据结构。 - 6.null 用于未知的值 —— 只有一个 null 值的独立类型。 - - - 后续学习的类型: - symbol 用于唯一的标识符。 - bigint 用于任意长度的整数。 - -``` - - - -### 数据类型的转换 - -```js -在开发中,我们可能会在不同的数据类型之间进行某些操作 -比如把一个String类型的数字和另外一个Number类型的数字进行运算; -比如把一个String类型的文本和另外一个Number类型的数字进行相加; -比如把一个String类型或者Number类型的内容,当做一个Boolean类型来进行判断; - - -也就是在开发中,我们会经常需要对数据类型进行转换: -大多数情况下,运算符和函数会自动将赋予它们的值转换为正确的类型,这是一种隐式转换; -我们也可以,通过显示的方式来对数据类型进行转换; - - -接下来我们来看一下数据类型之间的转换: -String、Number、Boolean类型; -``` - - - -### 字符串String的转换 - -```js -其他类型经常需要转换成字符串类型,比如和字符串拼接在一起或者使用字符串中的方法。 - - -转换方式一:隐式转换 -一个字符串和另一个字符串进行+操作; -✓ 如果+运算符左右两边有一个是字符串,那么另一边会自动转换成字符串类型进行拼接; -某些函数的执行也会自动将参数转为字符串类型; -✓ 比如console.log函数; - - -转换方式二:显式转换 -调用String()函数; -调用toString()方法; - -``` - - - -### 数字类型Number的转换 - -```js -其他类型也可能会转成数字类型。 -转换方式一:隐式转换 -在算数运算中,通常会将其他类型转换成数字类型来进行运算; -✓ 比如 "6" / "2"; -✓ 但是如果是+运算,并且其中一边有字符串,那么还是按照字符串来连接的; -转换方式二:显式转换 -我们也可以使用Number()函数来进行显式的转换; -其他类型转换数字的规则: -数字类型Number的转换 -值 undefined null true 和 false string -转换后的值 NaN 0 1 and 0 去掉首尾空格后的纯数字字符串中含有的数字。如果剩余字符串为空,则转换结 -果为 0。否则,将会从剩余字符串中“读取”数字。当类型转换出现 error 时返回 NaN。 - - -``` - - - -### 布尔类型Boolean的转换 - -```js -布尔(boolean)类型转换是最简单的。 -它发生在逻辑运算中,但是也可以通过调用 Boolean(value) 显式地进行转换。 -转换规则如下: -1.直观上为“空”的值(如 0、空字符串、null、undefined 和 NaN)将变为 false。 -2.其他值变成 trlean的转换 -1.值 0, null, undefined, NaN, "" -转换后 false - -2.其他值 -转换后 true - - -注意:包含 0 的字符串 "0" 是 true -一些编程语言(比如 PHP)视 "0" 为 false。但在 JavaScript 中,非空的字符串总是 true。 - -``` - - - -### 变量的声明:在 var 关键字 - -```js -// 定义变量同时赋值 -var name = ' 内容'; - -// 先定义再赋值 -var hobby; -hobby = '内容'; - -// 同时定义多个变量 -var a,b,c; -a=1,b=3,c=5; - -// 变量之间用;逗号隔开,分号结束 -var c=1,b=2,c=3; - -//不能用js关键字和保留字做变量名和常量名 -``` - -var var1=10; 基本上所有的编程语言,都不允许变量的开始有数字,前面可以用美元符合$,下划线__,字母v。 - - - -Js代码在HTML内部写法,需要先写 - - - - - - - - - - - - - - - - -``` - -常见的运算符 ------ - -| 运算符 | 运算规则 | 范例 | 结果 | -| --- | ------ | -------- | ---- | -| + | 加法 | 2 + 3 | 5 | -| + | 连接字符串 | ‘中’+ ‘国’ | ‘中国’ | -| - | 减法 | 2 - 3 | -1 | -| * | 乘法 | 2 * 3 | 6 | -| / | 除法 | 5 / 2 | 2.5 | -| % | 取余数 | 5 % 2 | 1 | -| ** | 幂(ES7) | 2 ** 3 | 8 | - -### 取余 % 和 求幂 - -取余运算符是 %,尽管它看起来很像百分数,但实际并无关联 - -a % b 的结果是 a 整除 b 的 余数 - -console.log(10%3) -VM72:1 1 -undefined - -求幂运算 a ** b 将 a 提升至 a 的 b 次幂。(ES7中的语法,也叫做ES2016) - -在数学中我们将其表示为 a的b次方 - -console.log(2**3); -VM127:1 8 -undefined -console.log(2**4); -VM140:1 16 -undefined - -### 原地修改(Modify-in-place) - -| 运算符 | 运算规则 | 范例 | 结果 | -| --- | ---------- | -------------- | --- | -| = | 赋值 | a = 5 | 5 | -| += | 加后赋值 | a = 5, a += 2 | 7 | -| -= | 减后赋值 | a = 5, a -= 2 | 3 | -| *= | 乘后赋值 | a = 5; a *= 2 | 10 | -| /= | 除后赋值 | a = 5; a /= 2 | 2.5 | -| %= | 取模 (余数)后赋值 | 5 % 2 | 1 | -| **= | 幂后赋值 | a = 5; a **= 2 | 25 | - -### 自增、自减 - -对一个数进行加一、减一是最常见的数学运算符之一。 - -所以,对此有一些专门的运算符: - -自增 ++ 将变量加1; - -自减 -- 将变量减1; - -自增/自减只能应用于变量。 - -将其应用于数值(比如 5++)则会报错。 自增、自减 coderwhy - -运算符 ++ 和 -- 可以置于变量前,也可以置于变量后。 - -当运算符置于变量后,被称为“后置形式”(postfix form):counter++。 - -当运算符置于变量前,被称为“前置形式”(prefix form):++counter。 - -两者都做同一件事:将变量 counter 与 1 相加。 - -### 比较运算符 - -比较运算符的结果都是Boolean类型的 - -| 运算符 | 运算规则 | 范例 | 结果 | -| --- | ---- | ------ | ----- | -| == | 相等 | 4 == 3 | false | -| != | 不等于 | 4 != 3 | true | -| > | 小于 | 4 > 3 | true | -| < | 大于 | 4 < 3 | false | -| >= | 小于等于 | 4 <= 3 | false | -| <= | 大于等于 | 4 >= 3 | true | - -### 和 == 的区别 - -普通的相等性检查 == 存在一个问题,它不能区分出 0 和 false,或者空字符串和 false这类运算: - -这是因为在比较不同类型的值时,处于判断符号 == 两侧的值会先被转化为数字; - -空字符串和 false 也是如此,转化后它们都为数字 0; - -严格相等运算符 === 在进行比较时不会做任何的类型转换; - -换句话说,如果 a 和 b 属于不同的数据类型,那么 a === b 不会做任何的类型转换而立刻返回 false; - -### 分支语句和逻辑运算符 - -### 单分支语句:if - -if(...) 语句计算括号里的条件表达式,如果计算结果是 true,就会执行对应的代码块。 - -案例一: 如果小明考试超过90分, 就去游乐场 - -“如果”相当于JavaScript中的关键字if 分数超过90分是一个条件(可以使用 > 符号) - -测试分数 - - -案例二:单位5元/斤的苹果,如果购买超过5斤,那么立减8元 - -注意:这里我们让用户输入购买的重量,计算出最后的价格并且弹出结果 - -计算价格 - - - -补充一:如果代码块中只有一行代码,那么{}可以省略: - -补充二:if (…) 语句会计算圆括号内的表达式,并将计算结果转换为布尔型(Boolean)。 - -转换规则和Boolean函数的规则一致; - -数字 0、空字符串 “”、null、undefined 和 NaN 都会被转换成 false。 因为它们被称为“假值(falsy)”; - -其他值被转换为 true,所以它们被称为“真值(truthy)”; - -### 多分支语句:if.. else.. - -案例一:如果分数超过90分去游乐场,否则去上补习班 - -满足条件时,做某些事情 - -不满足(else),去做另外一些事 - -测试分数 - - -案例二:m=20,n=30,比较两个数字的大小,获取较大的那个数字 - - var m=20,n=30; - if(m>n){ - alert('m>n'); - }else{ - alert('n>m'); - } - -### 多分支结构: if.. else if.. else - -多分支结构: if.. else if.. else.. - -有时我们需要判断多个条件; - -我们可以通过使用 else if 子句实现; - -案例: 分数评级: - -考试分数大于90:优秀 - -大于80小于等于90:良好 - -大于60小于等于80:合格 - -小于60分:不及格 - -分数评级 - - - -### 三元运算符 - -var result = condition ? value1 : value2; -// 计算条件结果,如果结果为真,则返回 value1,否则返回 value2。 - -案例一: m=20,n=30,比较两个数字的大小,获取较大的那个数字 - -var res = m>n?'m大':'n大'; -alert(res); - -案例二:判断一个人是否是成年人了 - -var age = prompt('年龄') -var res2 = age>=18 ? '成年':'未成年'; -alert(res2); - -### 认识逻辑运算符 - -| 运算符 | 运算规则 | 范例 | 结果 | -| --- | ------- | ------------- | ----- | -| && | 与: 同时为真 | false && True | false | -| \| | 或: 一个为真 | false or true | true | -| ! | 非: 取反 | !false | true | - -### switch语句 - -case穿透问题: 一条case语句结束后,会自动执行下一个case的语句; - -这种现象被称之为case穿透;break关键字 - -通过在每个case的代码块后添加break关键字来解决这个问题; - -注意事项:这里的相等是严格相等。 - -被比较的值必须是相同的类型才能进行匹配。 - -## while和for循环 - -### while循环 - -当条件成立时,执行代码块; - -当条件不成立时,跳出代码块; - -如果条件一直成立(为true),那么会产生死循环。 - -这个时候必须通过关闭页面来停止死循环; - -开发中一定要避免死循环的产生; while循环 coderwhy - -while循环的练习题目: - -练习一:打印10次Hello World - var i=1; - while(i<10){ - document.write('

Hello World

') - i++; - } - -练习二:打印0~99的数字 - var i=1; - while(i<100){ - document.write(i+'\n'); - i++; - } - -练习三:计算0~99的数字和 - var i=1; - var s=0; - while(i<100){ - s=s+i; - i++; - } - alert(s); - -练习四:计算0~99所有奇数的和 - var i=1; - var s=0; - while(i<100){ - if (i%2==1){ - s=s+i; - } - i++; - } - alert(s); - -练习五:计算0~99所有偶数的 - var i=1; - var s=0; - while(i<100){ - if (i%2==0){ - s=s+i; - } - i++; - } - alert(s); - -### do..while循环 - -do..while循环和while循环非常像,二者经常可以相互替代(不常用) - -但是do..while的特点是不管条件成不成立,do循环体都会先执行一次; - -通常我们更倾向于使用while循环。 - -### for循环 - -| 语句段 | 例子 | 执行过程 | -| --------- | --------- | -------------------------- | -| begin | let i = 0 | 进入循环时执行一次 | -| condition | i < 3 | 在每次循环迭代之前检查,如果为 false,停止循环 | -| body(循环体) | alert(i) | 条件为真时,重复运行 | -| step | i++ | 在每次循环体迭代后执行 | - -begin 执行一次,然后进行迭代:每次检查 condition 后,执行 body 和 step diff --git "a/50 \345\274\240\350\265\267\347\221\236/20231027 js \351\242\204\344\271\240.md" "b/50 \345\274\240\350\265\267\347\221\236/20231027 js \351\242\204\344\271\240.md" deleted file mode 100644 index d5a13872d592c6435f81448cf1640e0cb76a9cbe..0000000000000000000000000000000000000000 --- "a/50 \345\274\240\350\265\267\347\221\236/20231027 js \351\242\204\344\271\240.md" +++ /dev/null @@ -1,206 +0,0 @@ -## 运算符在变量前后的区别: - -```javascript -1.有,但只有当我们使用 ++/-- 的返回值时才能看到区别; -2.如果自增/自减的值不会被使用,那么两者形式没有区别; -3.如果我们想要对变量进行自增操作,并且 需要立刻使用自增后的值,那么我们需要使用前置形式; -4.前置形式返回一个新的值,但后置返回原来的值; -``` - -## 两种形式: - -```javascript -运算符 ++ 和 -- 可以置于变量前,也可以置于变量后。 -1 当运算符置于变量后,被称为“后置形式”(postfix form):counter++。 -2 当运算符置于变量前,被称为“前置形式”(prefix form):++counter。 -3 两者都做同一件事:将变量 counter 与 1 相加。 -``` - -## 分支: - -```javascript -在程序开发中,程序有三种不同的执行方式: -1.顺序 —— 从上向下,顺序执行代码 -2.分支 —— 根据条件判断,决定执行代码的 分支 -3.循环 —— 让 特定代码 重复 执行 -4.代码块是多行执行代码的集合,通过一个花括号{}放到了一起。 -5.在开发中,一行代码很难完成某一个特定的功能,我们就会将这些代码放到一个代码块中 -6.在JavaScript中,我们可以通过流程控制语句来决定如何执行一个代码块: -7.通常会通过一些关键字来告知js引擎代码要如何被执行,比如分支语句、循环语句对应的关键字等; -``` - -## 条件运算符: - -```javascript -1.这个运算符通过问号 ? 表示; -2.时它被称为三元运算符,被称为“三元”是因为该运算符中有三个操作数(运算元); -3.实际上它是 JavaScript 中唯一一个有这么多操作数的运算符 -4. &&(或)两个竖线符号表示“与”运算符(也称为短路与): -5.从左到右依次计算操作数。 -6.在处理每一个操作数时,都将其转化为布尔值(Boolean); -7.如果结果是 false,就停止计算,并返回这个操作数的初始值(一般不需要获取到初始值); -8.如果所有的操作数都被计算过(例如都是真值),则返回最后一个操作数。 - - -逻辑非运算符接受一个参数,并按如下运算: -1. 步骤一:将操作数转化为布尔类型:true/false; -2.步骤二:返回相反的值; -3.两个非运算 !! 有时候用来将某个值转化为布尔类型: -4.也就是,第一个非运算将该值转化为布尔类型并取反,第二个非运算再次取反。 -5.最后我们就得到了一个任意值到布尔值的转化。 -``` - -## switch是分支结构的一种语句 - -```javascript -它是通过判断表达式的结果(或者变量)是否等于case语句的常量,来执行相应的分支体的;与if语句不同的是,switch语句只能做值的相等判断(使用全等运算符 ===),而if语句可以做值的范围判断; -1.switch的语法: -switch 语句有至少一个 case 代码块和一个可选的 default 代码块 -2.循环 是一种重复运行同一代码的方法。 -3.如果是对某一个列表进行循环操作,我们通常也会称之为 遍历(traversal)或者迭代(iteration); -``` - -```javascript -运算符: -1.如果一个运算符对应的只有一个运算元,那么它是 一元运算符。 -2.如果一个运算符拥有两个运算元,那么它是 二元运算符。 -3. 运算元 —— 运算符应用的对象。 -4.一元运算符通常我们是使用 – 和 +,-号使用的会较多一些; -5.算术运算符是对数据进行计算的符号 -6.所有算术和位运算符都有简短的“修改并赋值”运算符:/= 和 -= 等 -``` - -## 练习: - -````javascript -案例一: 如果小明考试超过90分, 就去游乐场 - -“如果”相当于JavaScript中的关键字if 分数超过90分是一个条件(可以使用 > 符号) - -测试分数 - -``` - -案例二:单位5元/斤的苹果,如果购买超过5斤,那么立减8元 - -注意:这里我们让用户输入购买的重量,计算出最后的价格并且弹出结果 - -```html -计算价格 - - -测试分数 - - - -案例二:m=20,n=30,比较两个数字的大小,获取较大的那个数字 - - - var m=20,n=30; - if(m>n){ - alert('m>n'); - }else{ - alert('n>m'); - } - -分数评级 - -### 三元运算符 -var result = condition ? value1 : value2; -// 计算条件结果,如果结果为真,则返回 value1,否则返回 value2。 -案例一: m=20,n=30,比较两个数字的大小,获取较大的那个数字 -var res = m>n?'m大':'n大'; -alert(res); - -案例二:判断一个人是否是成年人了 -var age = prompt('年龄') -var res2 = age>=18 ? '成年':'未成年'; -alert(res2); -练习一:打印10次Hello World - var i=1; - while(i<10){ - document.write('

Hello World

') - i++; - } - -练习二:打印0~99的数字 - var i=1; - while(i<100){ - document.write(i+'\n'); - i++; - } -练习三:计算0~99的数字和 - var i=1; - var s=0; - while(i<100){ - s=s+i; - i++; - } - alert(s); -练习四:计算0~99所有奇数的和 - var i=1; - var s=0; - while(i<100){ - if (i%2==1){ - s=s+i; - } - i++; - } - alert(s); -练习五:计算0~99所有偶数的 - var i=1; - var s=0; - while(i<100){ - if (i%2==0){ - s=s+i; - } - i++; - } - alert(s); - -```` - diff --git "a/52\345\217\267 \347\250\213\345\270\205\347\277\224/10\346\234\21027\346\227\245\344\275\234\344\270\232.md" "b/52\345\217\267 \347\250\213\345\270\205\347\277\224/10\346\234\21027\346\227\245\344\275\234\344\270\232.md" deleted file mode 100644 index a6ce5cf35e9e5e3952518fef9d32684ab29ba4f7..0000000000000000000000000000000000000000 --- "a/52\345\217\267 \347\250\213\345\270\205\347\277\224/10\346\234\21027\346\227\245\344\275\234\344\270\232.md" +++ /dev/null @@ -1,103 +0,0 @@ -# 笔记 - -定义变量:const ,let ,var ,直接赋值 - -Number数值,JavaScript 数值类型不再细分整型、浮点型等,js 的所有数值都属于浮点型,64位浮点数。 - -String字符串,最抽象的数据类型,信息传播的载体,字符串必须包含在单引号、双引号或反引号之中,一个字符两个字节。 - -Boolean布尔值,最机械的数据类型,逻辑运算的载体,仅有两个值,true / false。Symbol符号类型,ES6 引入的一种新的原始数据类型,表示独一无二的值,不常用。 - -undefined未定义,当声明变量而没有赋值时会显示该值,可以为变量赋值为 undefined。 - -Object对象,是一种无序的数据集合,内容是键值对的形式,键名(key)是字符串,可以包含任意字符(空格),字符串引号可省略。可以通过 Object.keys(obj) 打印出 obj 对象中的所有 key 值。读对象的属性时,如果使用 [ ] 语法,那么 JS 会先求 [ ] 中表达式的值。如果使用点语法,那么点后面一定是 string 常量。 - -```javascript -\' 单引号 -\" 双引号 -\\ 反斜杠 -\n 换行符 -\r 回车符 -\t 制表符 -\b 退格符 -转义字符串开发中只有特殊场景才会用到,暂时掌握 \’\” \t \n四个的用法即可。 -``` - -= 赋值 a=10,将10赋值给变量a - -+= 加后赋值 a+=b,将a+b的值给a a = a+b; - --= 减后赋值 a-=b,将a-b的值给a a=a-b; - -*= 乘后赋值 a*=b*,将*a×b*的值给*a a=a*b; - -/= 除后赋值 a/=b,将a÷b的商给a a=a/b; - -%= 取余后赋值 a%=b,将a÷b的余数给a a=a%b; - - - - - -& - -逻辑与 and - -a&b,a和b都是true,结果为true,否则为false - -| - -逻辑或 or - -a|b,a和b都是false,结果为false,否则为true - -^ - -逻辑异或 不能有相等的关系 - -a^b,a和b结果不同为true,相同为false - -! - -逻辑非 not - -!a,结果和a的结果正好相反 - - - -三元运算符语法格式:关系表达式?表达式1:表达式2; - -```javascript -顺序结构 -分支结构(if, switch) -循环结构(for, while, do…while) - -格式: -if(关系表达式){ - 语句体; -} - -switch (表达式) { -case 1: -语句体1; -break; -case 2: -语句体2; -break; -... -default: -语句体n+1; -break; -} - -for (初始化语句;条件判断语句;条件控制语句) { -循环体语句; -} - -while (条件判断语句) { -循环体语句; -条件控制语句; -} -执行条件判断语句,看其结果是true还是false - 如果是false,循环结束 - 如果是true,继续执行 \ No newline at end of file diff --git "a/53 \345\221\250\345\216\232\350\276\260/2023-10-28 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232 \346\225\260\346\215\256\347\261\273\345\236\213\357\274\214\345\210\206\346\224\257\351\200\273\350\276\221\357\274\214\350\277\220\347\256\227\347\254\246\357\274\214\345\276\252\347\216\257.md" "b/53 \345\221\250\345\216\232\350\276\260/2023-10-28 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232 \346\225\260\346\215\256\347\261\273\345\236\213\357\274\214\345\210\206\346\224\257\351\200\273\350\276\221\357\274\214\350\277\220\347\256\227\347\254\246\357\274\214\345\276\252\347\216\257.md" deleted file mode 100644 index 3ae2f7530d166b29ab53a4048e50ffea25469870..0000000000000000000000000000000000000000 --- "a/53 \345\221\250\345\216\232\350\276\260/2023-10-28 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232 \346\225\260\346\215\256\347\261\273\345\236\213\357\274\214\345\210\206\346\224\257\351\200\273\350\276\221\357\274\214\350\277\220\347\256\227\347\254\246\357\274\214\345\276\252\347\216\257.md" +++ /dev/null @@ -1,207 +0,0 @@ -2023年10月28日 - -# 数据类型,分支逻辑,运算符,循环 - -## 案例 - -```html - - - - - - - 05 - - -

05_JavaScript分支语句和逻辑运算符

- - - - - - - -``` - -```html - - - - - - - 06 - - - - - - - -``` - diff --git "a/54 \345\217\266\345\255\220\350\261\252/10.27\344\275\234\344\270\232.md" "b/54 \345\217\266\345\255\220\350\261\252/10.27\344\275\234\344\270\232.md" deleted file mode 100644 index 98f14c36824fa0d0ee039d337c2289bc3c14612a..0000000000000000000000000000000000000000 --- "a/54 \345\217\266\345\255\220\350\261\252/10.27\344\275\234\344\270\232.md" +++ /dev/null @@ -1,46 +0,0 @@ -```htmi - - - - - - - 网页 - - - - - -``` - diff --git "a/54 \345\217\266\345\255\220\350\261\252/10.27\347\254\224\350\256\260.md" "b/54 \345\217\266\345\255\220\350\261\252/10.27\347\254\224\350\256\260.md" deleted file mode 100644 index d907a4af768de093bb56f0f1402726e38623e1d9..0000000000000000000000000000000000000000 --- "a/54 \345\217\266\345\255\220\350\261\252/10.27\347\254\224\350\256\260.md" +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -一个变量就是一个用于存放数值的容器 - -这个变量可以是一个数字或是一个字符串 - - - -变量声明 - -用var声明 - -变量的赋值 - -使用=给变量赋值 - -不能使用JS的关键字和保留字做变量名或常量名 - - - -变量名规则 - -开头只能用字母 下划线或美元符号 - -变量严格区分大小写 - -声明JS的变量不需要写数据类型 - - - -undefined既是一种数据类型也是一种值 - -undefined只有undefined一个值 - -表示变量的值未定义 有变量名没有值 - - - -JavaScript的数据类型 - -JavaScript中的值都具有特定的数据类型 - -typeof判断变量的数据类型 - -infinity表示无穷大 - -NaN表示一个计算错误 - -is NaN判断是不是数字不是数字返回ture 是返回false - -在+号两边只要出现一个字符串这个+号就不是加法运算而是拼接字符串 - - - -boolean - -表示真假 - - - -object 是一个特殊类型我们通常把他称为引用类型 - - - -null - -表示一个值为空 diff --git "a/57 \351\273\204\346\265\201\346\266\233/20231029 \345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213.md" "b/57 \351\273\204\346\265\201\346\266\233/20231029 \345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213.md" deleted file mode 100644 index 9f126f2003dbc0173d25cf66ff8b24460854ac60..0000000000000000000000000000000000000000 --- "a/57 \351\273\204\346\265\201\346\266\233/20231029 \345\217\230\351\207\217\344\270\216\346\225\260\346\215\256\347\261\273\345\236\213.md" +++ /dev/null @@ -1,204 +0,0 @@ -# 笔记 - -## 变量 - -​ 一个变量,就是一个用于存放数值的容器(可以是数字,字符串或其他任意的数据)变量的独特之处在于它存放的数值是可以改变的。 - -命名格式: - -​ 用var关键字(variable单词的缩写) - -​ var 名称 = ....; - -​ 也可以分开操作 - -​ var 名称; 名称 = ...; - -​ 同时声明多个变量 - -​ var 名称1,名称2....; 1 = .. 2 = .. - -##### 变量的命名规范(必须遵守) - -​ 第一个字符必须是字母,下划线,美元符,其它字符可以是字母,下划线,美元符或数字 - -​ 不能使用关键字和保留字命名 - -​ 变量严格区分大小写 - -命名规范: - -​ 1.使用小驼峰标识 - -​ 2.赋值=两边加上空格 - -​ 3.一条语句结束后加上分号; - -​ 4.见名知意 - -使用注意: - -​ 如果一个变量未声明,就直接使用,那么会报错 - -​ 如果有声明,没有赋值,那么默认值就是undefined - -​ 如果没有使用var声明变量也可以,但是不推荐(会被添加到window对象上) - -## 数据类型 - -​ 可以前一刻是字符串,下一刻便是数字,例如js被称为“动态类型” - -#### typeof操作符(用来确定任意变量的数据类型) - -​ typeof是一个操作符,并非是一个函数,()只是将后续内容当做一个整体而已 - -#### Number类型(代表整数和浮点数) - -​ 可以做加减乘除法等 - -数学概念中的无穷大(infinity) - -计算错误:它是一个错误的操作的结果(NAN)比如:字符串与数字相乘 - -最小正数值:(Number.MIN_VALUE) - -最小正数值:(Number.MAX_VALUE) - -is NAN:用于判断是否不是数字。不是数字返回ture,是数字返回false - -#### String类型 - -​ js中的字符串必须被括在引号里,有三种方式 - -​ 双引号"..." 单引号'..' 反引号`...` - -前后的引号类型必须一致 - -字符串的属性和方法: - -1.通过字符串拼接:通过+运算符 - -2.获取字符串长度(length) - -#### Boolean类型 - -​ 仅包含两个值:true和false - -#### Undefined类型 - -​ 如果声明一个变量,但没有对其进行初始化时,它默认就是undefined - -注意:最好在变量定义的时候进行初始化,而不是声明一个变量。不要显示的将一个变量赋值为undefined - -#### Object类型(对象) - -​ 通常把它称为引用类型或者复杂类型 - -其他的数据类型称为原始类型,因为他们的值包含一个单独的内容 - -Object往往可以表示一组数据,是其他数据的一个集合 - -在js中我们可以使用花括号的方式来表示一个对象 - -#### Null类型 - -​ 用来表示一个对象为空,所以通常在给一个对象进行初始化时,会赋值null - -null和undefined的关系 - -​ undefined通常只有在一个变量声明但是未初始化时,它的默认值是undefined才会用到 - -​ 不推荐直接给一个变量赋值为undefined,所以很少主动使用 - -​ null值非常常用,当一个变量准备保存一个对象,但这个对象不确定,可以先赋值为null - -#### 总结 - -​ js有八种基本的数据类型 - -​ object为复杂数据类型,也称为引用类型,其他七种为基本数据类型,也称为原始类型 - - - -### 数据类型的转换 - -​ 大多数情况下,运算符和函数会自动赋予它们的值转换为正确的类型,这是一种隐式转换,也可以通过显示的方式来数据类型进行转换 - -##### String的转换 - -​ 1.隐式转换 - -​ 一个字符串和另一个字符串进行+操作(如果+运算符两边有一个是字符串,那么另一边会转换为字符串拼接) - -​ 某些函数的执行也会自动将参数转为字符串类型(比如console.log函数) - -​ 2.显式转换 - -​ 调用string()函数; 调用toString()方法 - -##### Number的转换 - -​ 1.隐式:在算数运算中,通常会将其他类型转换成数字类型来计算 - -​ 2.显示:可以使用Number()函数来进行显示的转换 - -其他类型转换数字规则 - -​ undefined 转换后:NAN null 转换后:0 ture和false 转换后:1或0 - -​ string 转换后:去掉首尾空格后的纯数字中含有的数字,如果剩余字符串为空,则转换结果为0,否则,将会从剩余字符串中读取数字,当出现error时返回NAN。 - -##### Boolean的转换 - -​ 它发生在逻辑运算中,但是也可以通过Boolean(value)显式的进行转换 - -转换规则:直观上为“空”的值(如0,空字符串,null,undefined,和NAN)将变为false,其他值变成true。 - -# 作业 - -``` html - - - - - - - 网页 - - - - - -``` - diff --git "a/58\351\231\210\350\203\234\346\235\260/2023-10-27.md" "b/58\351\231\210\350\203\234\346\235\260/2023-10-27.md" deleted file mode 100644 index 6a2e995763575560a1fa8c60331e4ec68c8c0d1e..0000000000000000000000000000000000000000 --- "a/58\351\231\210\350\203\234\346\235\260/2023-10-27.md" +++ /dev/null @@ -1,203 +0,0 @@ -# 笔记 - -## 变量 - - 一个变量,就是一个用于存放数值的容器(可以是数字,字符串或其他任意的数据)变量的独特之处在于它存放的数值是可以改变的。 - -命名格式: - - 用var关键字(variable单词的缩写) - - var 名称 = ....; - - 也可以分开操作 - - var 名称; 名称 = ...; - - 同时声明多个变量 - - var 名称1,名称2....; 1 = .. 2 = .. - -##### 变量的命名规范(必须遵守) - - 第一个字符必须是字母,下划线,美元符,其它字符可以是字母,下划线,美元符或数字 - - 不能使用关键字和保留字命名 - - 变量严格区分大小写 - -命名规范: - - 1.使用小驼峰标识 - - 2.赋值=两边加上空格 - - 3.一条语句结束后加上分号; - - 4.见名知意 - -使用注意: - - 如果一个变量未声明,就直接使用,那么会报错 - - 如果有声明,没有赋值,那么默认值就是undefined - - 如果没有使用var声明变量也可以,但是不推荐(会被添加到window对象上) - -## 数据类型 - - 可以前一刻是字符串,下一刻便是数字,例如js被称为“动态类型” - -#### typeof操作符(用来确定任意变量的数据类型) - - typeof是一个操作符,并非是一个函数,()只是将后续内容当做一个整体而已 - -#### Number类型(代表整数和浮点数) - - 可以做加减乘除法等 - -数学概念中的无穷大(infinity) - -计算错误:它是一个错误的操作的结果(NAN)比如:字符串与数字相乘 - -最小正数值:(Number.MIN_VALUE) - -最小正数值:(Number.MAX_VALUE) - -is NAN:用于判断是否不是数字。不是数字返回ture,是数字返回false - -#### String类型 - - js中的字符串必须被括在引号里,有三种方式 - - 双引号"..." 单引号'..' 反引号`...` - -前后的引号类型必须一致 - -字符串的属性和方法: - -1.通过字符串拼接:通过+运算符 - -2.获取字符串长度(length) - -#### Boolean类型 - - 仅包含两个值:true和false - -#### Undefined类型 - - 如果声明一个变量,但没有对其进行初始化时,它默认就是undefined - -注意:最好在变量定义的时候进行初始化,而不是声明一个变量。不要显示的将一个变量赋值为undefined - -#### Object类型(对象) - - 通常把它称为引用类型或者复杂类型 - -其他的数据类型称为原始类型,因为他们的值包含一个单独的内容 - -Object往往可以表示一组数据,是其他数据的一个集合 - -在js中我们可以使用花括号的方式来表示一个对象 - -#### Null类型 - - 用来表示一个对象为空,所以通常在给一个对象进行初始化时,会赋值null - -null和undefined的关系 - - undefined通常只有在一个变量声明但是未初始化时,它的默认值是undefined才会用到 - - 不推荐直接给一个变量赋值为undefined,所以很少主动使用 - - null值非常常用,当一个变量准备保存一个对象,但这个对象不确定,可以先赋值为null - -#### 总结 - - js有八种基本的数据类型 - - object为复杂数据类型,也称为引用类型,其他七种为基本数据类型,也称为原始类型 - - - -### 数据类型的转换 - - 大多数情况下,运算符和函数会自动赋予它们的值转换为正确的类型,这是一种隐式转换,也可以通过显示的方式来数据类型进行转换 - -##### String的转换 - - 1.隐式转换 - - 一个字符串和另一个字符串进行+操作(如果+运算符两边有一个是字符串,那么另一边会转换为字符串拼接) - - 某些函数的执行也会自动将参数转为字符串类型(比如console.log函数) - - 2.显式转换 - - 调用string()函数; 调用toString()方法 - -##### Number的转换 - - 1.隐式:在算数运算中,通常会将其他类型转换成数字类型来计算 - - 2.显示:可以使用Number()函数来进行显示的转换 - -其他类型转换数字规则 - - undefined 转换后:NAN null 转换后:0 ture和false 转换后:1或0 - - string 转换后:去掉首尾空格后的纯数字中含有的数字,如果剩余字符串为空,则转换结果为0,否则,将会从剩余字符串中读取数字,当出现error时返回NAN。 - -##### Boolean的转换 - - 它发生在逻辑运算中,但是也可以通过Boolean(value)显式的进行转换 - -转换规则:直观上为“空”的值(如0,空字符串,null,undefined,和NAN)将变为false,其他值变成true。 - -# 作业 - -```html - - - - - - - 网页 - - - - - -``` \ No newline at end of file