Web前端最新JavaScript学习02(2),被阿里面试官征服了

最后

面试一面会问很多基础问题,而这些基础问题基本上在网上搜索,面试题都会很多很多。最好把准备一下常见的面试问题,毕竟面试也相当与一次考试,所以找工作面试的准备千万别偷懒。面试就跟考试一样的,时间长了不复习,现场表现肯定不会太好。表现的不好面试官不可能说,我猜他没发挥好,我录用他吧。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

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)**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值