类型转换
类型转换:把一种数据类型转换成另外一种数据类型
为什么需要类型转换呢?
例如:使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算
此时需要转换数据类型
数据类型转换可以分为: 显示转换和隐式转换
显示转换
自己手动写代码告诉系统该转成什么类型(数据类型明确、程序员主导)
转换为数字型
- Number(数据)
- 转换成功返回一个数字类型
- 转换失败则返回 NaN (例如数据里面包含非数字)
- parseInt(数据)
- 只保留整数
- 如果数字开头的字符串,只保留整数数字 比如 12px 返回 12
- parseFloat(数据)
- 可以保留小数
- 如果数字开头的字符串,可以保留小数 比如 12.5px 返回 12.5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| let num1 = prompt('请输入第一个月工资:')
let num2 = prompt('请输入第二个月工资:')
alert(Number(num1) + Number(num2))
console.log(typeof Number('1')) console.log(Number('abcd'))
console.log(Number(true)) console.log(Number(false))
console.log(Number(null)) console.log(Number(undefined))
console.log(parseInt('100px')) console.log(parseInt('100.5px')) console.log(parseFloat('100.5px'))
|
转换为字符串和布尔型

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
console.log(typeof String(1)) console.log(String(true))
let num = 10 console.log(typeof num.toString()) console.log(num.toString(10)) console.log(num.toString(8))
console.log(Boolean(false)) console.log(Boolean(0)) console.log(Boolean(1)) console.log(Boolean('')) console.log(Boolean(null)) console.log(Boolean(undefined)) console.log(Boolean(NaN))
|
隐式转换
某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
console.log(8 - '3') console.log('1999' * '2') console.log(3 > '1') console.log(3 == '3')
console.log('123') console.log(+'123') console.log(typeof +'123')
console.log('pink' + 18) console.log('' + 18)
console.log(!true) console.log(!0) console.log(!'') console.log(!null) console.log(!undefined) console.log(!NaN) console.log(!false) console.log(!'pink')
|
语句
表达式和语句

分支语句
分支语句可以根据条件判定真假,来选择性的执行想要的代码
分支语句包含:
- if分支语句(重点)
- 三元运算符
- switch语句
if 分支语句
语法:
小括号内的条件结果是布尔值,为 true 时,进入大括号里执行代码;为false,则不执行大括号里面代码
小括号内的结果若不是布尔类型时,会发生类型转换为布尔值,类似Boolean()
如果大括号只有一个语句,大括号可以省略,但是,俺们不提倡这么做~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
if ('') { console.log('我想要被表扬') }
let score = +prompt('请您输入高考成绩:') if (score >= 700) { alert('恭喜您考入') }
|
if双分支语句
如果有两个条件的时候,可以使用 if else 双分支语句
1 2 3 4 5
| if (条件表达式){ } else { }
|
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
let uname = prompt('请您输入用户名:') let pwd = prompt('请您输入密码:') if (uname === '刘德华' && pwd === '123456') { alert('登录成功,欢迎回来~') } else { alert('登录失败,您输入的用户名和密码错误~') }
|
if 多分支语句
使用场景: 适合于有多个条件的时候
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
let score = +prompt('请您输入考试成绩:')
if (score >= 90) { alert('优秀,棒棒棒~') } else if (score >= 70) { alert('良好,棒棒~') } else if (score >= 60) { alert('及格,棒~') } else { alert('不及格,好好加油,你可以的~') }
|
三元运算符(三元表达式)
使用场景: 一些简单的双分支,可以使用 三元运算符(三元表达式),写起来比 if else双分支 更简单
符号:? 与 : 配合使用
语法:
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
console.log(5 < 3 ? '真的' : '假的')
let x = 100 let y = 20 console.log(x > y ? x : y)
|
switch语句(了解)
使用场景: 适合于有多个条件的时候,也属于分支语句,大部分情况下和 if多分支语句 功能相同
注意:
- switch case语句一般用于等值判断, if适合于区间判断
- switchcase一般需要配合break关键字使用 没有break会造成case穿透
- if 多分支语句开发要比switch更重要,使用也更多
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
let fruits = '苹果' switch (fruits) { case '香蕉': alert('香蕉的价格是: 3元/斤') break case '苹果': alert('苹果的价格是: 4元/斤') break case '橘子': alert('橘子的价格是: 2元/斤') break default: alert('没有查到此水果') }
|
断点调试
作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug
浏览器打开调试界面
- 按F12打开开发者工具
- 点到源代码一栏 ( sources )
- 选择代码文件
断点:在某句代码上加的标记就叫断点,当程序执行到这句有标记的代码时会暂停下来

循环语句
使用场景:重复执行 指定的一段代码,比如我们想要输出10次 ‘我学的很棒’
学习路径:
1.while循环
2.for 循环(重点)
while循环
while : 在…. 期间, 所以 while循环 就是在满足条件期间,重复执行某些代码。
语法:
例如:
1 2 3 4 5 6 7 8
|
let i = 1 while (i <= 3) { document.write('月薪过万不是梦,毕业时候见英雄~<br>') i++ }
|
循环三要素:
1.初始值 (经常用变量)
2.循环条件
3.变量计数(常用自增或者自减)
for 循环
作用:重复执行指定的一段代码
好处:把声明初始值、循环条件、变量计数写到一起,让人一目了然,它是最常使用的循环形式
语法:
1 2 3
| for (初始值; 循环条件; 变量计数) { }
|
例如:
1 2 3 4 5 6 7 8 9 10 11
|
for (let i = 1; i <= 3; i++) { document.write('键盘敲烂要行动,前端行业一览众~ <br>') }
|
中止循环
break
中止整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用(提高效率)
continue
中止本次循环,一般用于排除或者跳过某一个选项的时候
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
for (let i = 1; i <= 6; i++) { if (i === 3) { continue } document.write(`第${i}个孩子可以进入电影院<br>`)
}
|
无限循环
1.while(true) 来构造“无限”循环,需要使用break退出循环。(常用)
2.for(;;) 也可以来构造“无限”循环,同样需要使用break退出循环。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
for (; ;) { let love = prompt('你爱我吗?') if (love === '爱') { break } }
|