最后
面试一面会问很多基础问题,而这些基础问题基本上在网上搜索,面试题都会很多很多。最好把准备一下常见的面试问题,毕竟面试也相当与一次考试,所以找工作面试的准备千万别偷懒。面试就跟考试一样的,时间长了不复习,现场表现肯定不会太好。表现的不好面试官不可能说,我猜他没发挥好,我录用他吧。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
96道前端面试题:
常用算法面试题:
前端基础面试题:
内容主要包括HTML,CSS,JavaScript,浏览器,性能优化
-
} else {
alert(‘成绩不合格!’)
}
##### 三元运算符
语法: 条件 ? 满足条件执行的代码 :不满足条件执行的代码
// 三元运算符
// 返回两个数中的较大值
let a = 3
let b = 5
let max = a > b ? a : b
console.log(${a}和${b}中较大的是${max}
) // 3和5中较大的是5
***数字补0案例***
// 需求:用户输入1个数,如果数字小于10,则前面进行补0,例如09、03
// 1. 用户输入
let num = prompt('请您输入一个数字:')
num = num < 10 ? 0 + num : num
// 2.判断输出
console.log(num)
console.log(typeof num) // string
##### switch语句
switch (数据) {
case 值1:
代码块1
break
case 值2:
代码块2
break
case 值3:
代码块3
break
default:
代码4
// break
}
**释义**
>
> 找到跟小括号里数据全等的case值,并执行里面对应的代码
>
>
> 若没有全等 ( === ) 的则执行default里的代码
>
>
> default可以不写在最后,写在最后时可以省略break
>
>
> switch case语句一般用于等值判断,不适合于区间判断
>
>
> switch case一般需要配合break关键字使用 没有break会造成case穿透
>
>
>
switch (1) {
default:
console.log(‘没有符合条件的’)
break
case 1 :
console.log(‘您选择的是1’)
break
case 2 :
console.log(‘您选择的是2’)
break
case 3 :
console.log(‘您选择的是3’)
break
}
---
**switch语句是可以使用中文的**
let name = prompt(‘请输入名字:’)
switch (name) {
case ‘木子’ :
console.log(您的名字是${name}
)
break
case ‘小明’ :
console.log(您的名字是${name}
)
break
case ‘小红’ :
console.log(您的名字是${name}
)
break
default:
console.log(查询不到信息
)
}
---
##### if多分支语句与switch语句
* switch…case语句通常处理case为确定值得情况,而if…else…语句更加灵活,通常用于范围判断
* switch语句进行判断后直接执行到符合条件的代码,效率更高,而if…else…有几种判断条件,就得执行多少次
* switch一定要注意必须是 === 全等 ,一定注意数据类型,同时注意不要忘记break
>
> 当分支比较少时,if…else语句执行效率高
>
>
> 当分支比较多时,switch语句执行效率更高,而且结构更清晰
>
>
>
#### 循环语句
常用while循环和for循环
##### while循环
while (循环条件) {
循环体
}
>
> 小括号里的条件为true才会进入 循环体 执行代码
>
>
> while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到小括号判断条件,直到括号内条件不满足,即跳出
>
>
>
**while循环三要素**
1. 变量起始值
2. 终止条件(没有终止条件,循环会一直执行,造成死循环)
3. 变量变化量(用自增或者自减)
// 1. 变量初始值
let i = 1
// 2. 终止条件
while (i <= 3) {
// 打印三次
console.log(‘月薪过万’)
// 3. 变量的变化量
i++
}
**页面输出**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0a8980d69afe43a9b85d9c3d81cd687e.png#pic_center)
---
***案例:计算1到100的偶数的和并输出***
// 1. 变量初始值
let i = 1
let sum = 0
// 2. 终止条件
while (i <= 100) {
if (i % 2 === 0) {
sum += i
}
// 3. 变量的变化量
i++
}
console.log(sum) // 2550
**break 和 continue 退出循环**
* break : 退出循环
* continue : 结束本次循环,继续下一次循环
---
**break**
// 1. 变量初始值
let i = 1
// 终止条件
while (i <= 5) {
// 打印 2句
if (i === 3){
break
}
console.log(这是第${i}句
)
// 变量的变化量
i++
}
**页面输出**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0a839a6ab9914009a06a1cb35bc86993.png#pic_center)
---
**continue**
// 1. 变量初始值
let i = 1
// 终止条件
while (i <= 5) {
// 打印 除第二句之外的句子
if (i === 2){
i++ // 如果不对i的值进行改变,则一直 i === 2 变成死循环
continue
}
console.log(这是第${i}句
)
// 变量的变化量
i++
}
**页面输出**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a6bff134b558416483759876906a376a.png#pic_center)
---
**区别**
>
> continue : 退出本次循环,一般用于排除或者跳过某一个选项的时候, 可以使用continue
>
>
> break : 退出整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用
>
>
>
***简易ATM取款机案例***
let money = 2000
while (true) {
let re = +prompt( 请您选择操作: 1.存钱 2.取钱 3.查看余额 4.退出
)
// 用户输入4 退出服务
if (re === 4) {
break
}
// 根据用户输入进行操作
switch (re) {
// 存款
case 1:
let cun = +prompt(‘请输入存款金额:’)
// 存款金额不能少于0
if (cun >= 0) {
money += cun
} else {
alert(‘输入的数字不合法!’)
}
break
// 取款
case 2:
let qu = +prompt(‘请输入取款金额:’)
//取款金额不能少于0
if ( qu >= 0) {
//取款金额不能大于账号余额
if (money >= qu) {
money -= qu
} else {
alert(‘余额不足!’)
}
} else {
alert(‘输入的数字不合法!’)
}
break
// 余额打印
case 3:
alert(您的余额是${money}
)
break
default :
alert(‘error’)
}
}
---
##### for循环
将初始值声明、循环条件、变化值写到一起,一目了然,最常用
for (变量起始值;终止条件;变量变化量) {
// 循环体
}
// 打印三次
for (let i = 0; i < 3; i++) {
console.log(‘月薪过万’)
}
**页面输出**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/02d02715a4564823966945f35b49841a.png#pic_center)
---
**for循环遍历数组**
// 定义一个数组
let arr = [0,1,2,3,4,5]
// 遍历数组
for (let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
// arr[6]未赋值 输出undefined
console.log(arr[6])
**页面输出**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/944ddd8043c34ac3bdc43d48fa72d4d6.png#pic_center)
**for循环中也能使用 continue 和 break 和while循环同理,使用continue执行“i++”,遇到break结束for循环**
---
###### for循环嵌套
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c700932b422c4a79aa368ea31b58553c.png#pic_center)
**打印n行m列星星**
let row = +prompt(‘请输入行数:’)
let col = +prompt(‘请输入列数:’)
// 外层循环打印行数
for (let i = 0; i < row ; i++) {
// 内层循环打印5个星星
for (let j = 0; j < col ; j++) {
document.write(‘⭐’)
}
// 换行输出
document.write(‘
’)
}
**6行6列输出页面:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c7327ba5d75947f7bbb62d5a3a69b5b6.png#pic_center)
---
**打印九九乘法表**
**页面输出**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/21f97921e84e4fd1993b6ce42be4705e.png#pic_center)
---
##### for循环与while循环比较
* 当如果明确了循环的次数的时候推荐使用for循环
* 当不明确循环的次数的时候推荐使用while循环
### 数组的使用
1. 数组声明
2. 数组遍历
// 声明数组
let arr = [1, 2, ‘hello’, ‘world’]
let arr1 = new Array( 3, 2, ‘hello’, ‘world’) // 用对象声明,不推荐使用
// 数组遍历
for (let i = 0; i < arr.length; i++) {
document.write(arr[i])
}
document.write(‘
’)
for (let i = 0; i < arr1.length; i++) {
document.write(arr1[i])
}
**页面输出**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/08e3809d0b2542bc97ca1a7a68b40afe.png#pic_center)
#### 数组求和、求平均值
// 定义一个数组
let arr = [2, 6, 1, 7,4]
// 小测试
let s
console.log(typeof s) // undefined
console.log(s) // undefined
console.log(typeof (s + 1)) // number
console.log(s + 1) // NaN
console.log(typeof (s + ‘1’)) // string
console.log(s + ‘1’) // undefined1
console.log(‘--------------------’)
// 数组求和
// sum 必须赋值
let sum = 0
for (let i = 0; i < arr.length; i++) {
sum += arr[i]
}
// 打印数组的和sum
console.log(数组的和为${sum}
)
// 数组求平均值
let avg = sum / arr.length
console.log(数组的平均值为${avg}
)
**页面输出**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/112a9d0aabe64ba983762f63a718bb9d.png#pic_center)
---
#### 数组求最大值、最小值
// 定义一个数组
let arr = [2, 6, 1, 77, 52, 25, 7]
// 不需要赋值0
let max = arr[0]
// 遍历数组
for (let i = 1; i < arr.length; i++) {
if(max < arr[i]){
max = arr[i]
}
}
console.log(数组的最大值为:${max}
) // 77
// 不需要赋值0
let min = arr[0]
// 变量数组
for (let i = 1; i < arr.length; i++) {
if(min > arr[i]){
min = arr[i]
}
}
console.log(数组的最小值为:${min}
) // 1
// 也可以用三元运算符实现
**页面输出**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/67a838a17995437fbe8334c14cb68222.png#pic_center)
---
#### 数组的增删改查
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c0c3015d41ad5bc3f01eb985bde30f2e.png#pic_center)
let arr = []
console.log(arr) // [] 空数组
console.log(arr[0]) // undefined
console.log(‘------------------’)
let arr1 = [‘pink’, ‘red’, ‘green’]
// 修改元素
console.log(原数组:${arr1}
)
文末
篇幅有限没有列举更多的前端面试题,小编把整理的前端大厂面试题PDF分享出来,一共有269页
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
direct/67a838a17995437fbe8334c14cb68222.png#pic_center)
数组的增删改查
let arr = []
console.log(arr) // [] 空数组
console.log(arr[0]) // undefined
console.log('------------------')
let arr1 = ['pink', 'red', 'green']
// 修改元素
console.log(`原数组:${arr1}`)
### 文末
篇幅有限没有列举更多的前端面试题,小编把整理的前端大厂面试题PDF分享出来,一共有269页
![](https://i-blog.csdnimg.cn/blog_migrate/4108548db5145c5fe1083826224b1d95.png)
![](https://i-blog.csdnimg.cn/blog_migrate/dff4146ba799d7342bfe0c6a761ed6ce.png)
**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**