202404问题总结,前端开发自学教程

rFlag.city = this.cityArr || []

}

// console.log(typeof(rFlag.region));

if (rFlag !== 0 ||if ( rFlag.region === ‘’ && rFlag.city.length === 0 ) {

console.log(‘no’);

return false

} else {

console.log(‘yes’);

}

分析:选择地区后虽然 rFlag.region === ‘’ && rFlag.city.length === 0两条件都为false,但rFlag !== 0 也是成立的,所以还是会执行if语句,不会执行else语句,但并不能把rFlag !== 0 || rFlag.region === ‘’ && rFlag.city.length === 0改成rFlag !== 0 && rFlag.region === ‘’ && rFlag.city.length === 0,因为不选择地区的话rFlag 就为0

所以此处选择用if嵌套语句,

if{rFlag !== 0} {

if ( rFlag.region === ‘’ || rFlag.city.length === 0 ) {

// 只要地区和城市有一个没选都返回false

return false

} else {

// 或的反是与,此处意为两者都选后返回true

return

}

} else {

// rFlag = 0 即为地区不限

return true

}

问题2:与其他项一起验证时规则不正确

表单验证时一开始先判断单个未知选项(地区不限或选择地区),再判断已知选项集(金额,终端等),这时就会出现4种情况:

let regionFlag = this.handleRegion()//此函数检验地区选择是否正确

if (regionFlag) {// 如果选择了地区

// 判断已知选项集,只要有一个没填就显示错误

if (this.startDate == ‘’ || this.endDate == ‘’) {

console.log(‘请完善信息’)

} else {

// 都填了正确

todoSomething()

}

} else {//如果没有选择地区

if (this.startDate == ‘’ || this.endDate == ‘’) {

// 选项集也不完善就提示错误信息

console.log(‘请完善信息’)

} else {//选项集完全也提示错误信息

console.log(‘请完善信息’)

}

}

这样代码繁琐还不易懂,所以改为先判断已知选项集,再判断地区

if (this.startDate == ‘’ || this.endDate == ‘’) {//只要有一个没选就提示错误

console.log(‘请完善信息’)

} else {//如果都选了去判断地区

if (regionFlag) {

todoSomething()

} else {

console.log(‘请完善信息’)

}

}

遍历用户选中信息


项目:《华智数联官网-拟定方案模块》

时间: 2018年4月3日

场景: 把age:1,sex:male等用户选择的不确定信息显示在页面中,所以需要把用户选中的信息单独存起来再遍历

问题1:json格式为[age: 1, sex: male],需要分别把key与value显示在页面中,vue中可直接遍历key,value值,不需要把key遍历出来放到一个数组中循环,单独放到数组中导致了页面中先把key循环完再显示循环value,不是一对一的key与value

问题2: 页面使用v-for显示key与value时不成功,打印要循环的json发现此处是一个数组,并不是对象,所以不存在obj.key与obj.value

分析:给json赋的初始值是[],所以json就是一个数组,应赋值为json:{}

问题3:给json存值,直接使用json[key]=val就可以,放在循环中依次把key:value存入json

问题4:遍历key值

for (keys in obj){

}

使用date方法时,看是否需要转换成对象


项目:《华智数联官网-拟定方案模块》

时间: 2018年4月3日

场景:把datePicker选择后的日期格式“Wed Apr 04 2018 17:35:07 GMT+0800 (中国标准时间)”转换成"2018/4/17"

问题:封装函数,用date参数接收,使用date.getFullYear等函数提示"date.getFullYear is not a function"

分析:不是一个函数,证明date不能使用这个函数,用typeof(date)发现结果是"string",所以传过来的date并不是一个对象,一开始,datePicker中的日期是使用"startDate: new Date(),endDate: new Date(),"来赋的初始值,所以并没有什么问题,但当datePicker中的值发生变化后,返回的值类型也是一个string,所以需要转换成date对象

解决办法:

let myDate = new Date(date)

v-for的key属性


项目:《华智数联官网-拟定方案模块》

时间: 2018年4月4日

问题: 在使用v-for时给出警告"component lists rendered with v-for should have explicit keys. See https://vuejs.org/guide/list.html#key for more info."

分析:为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。理想的 key 值是每项都有的且唯一的 id。建议尽可能在使用 v-for 时提供 key,除非遍历输出的 DOM 内容非常简单,或者是刻意依赖默认行为以获取性能上的提升。因为它是 Vue 识别节点的一个通用机制。

解决办法:

在jquery事件里调用event对象


项目:《云乐道运营后台-新建媒资-调取百度地图api返回关键字结果》

时间:2018年4月16日

问题:在事件里调用event对象,直接调用函数传递event参数,不起作用

问题代码:

$(“#model-input”).click(stop(e))

function stop(ev) {

console.log(111111111)

ev.stopPropagation()

}

分析:应该将函数调用语句写在回调函数里

$(“#model-input”).click(function(ev) {

stop(ev)

})

function stop(ev) {

console.log(111111111)

ev.stopPropagation()

}

相当于

$(“#model-input”).click(function(ev) {

ev.stopPropagation()

})

vuePress需要注意的问题


项目:《使用vuePress搭建个人博客》

时间: 2018年4月24-25日

问题1:侧边栏sidebar写成了slidebar

问题2: sidebar配置也是主题配置,应该写到themeConfig里边

问题3:.vuepress写到docs下,所有关于vuePress的配置

jquery的attr prop


项目:《云乐道运营后台-新建媒资-查找楼盘将坐标回显在页面中》

时间:2018年4月25日

问题:选中地区后页面坐标不能回显示在页面中

分析:坐标可以打印出来,在chorme中element页面中发现input中value属性已有值,但不显示,用val()函数获取也获取不到

解决办法: 使用jquery的prop设置的元素原生属性,

相关知识:

attr:

attr使用setAttribute方法实现,使用的是dom属性节点多设置自定义属性,

document.getElementById(‘div1’).setAttribute(‘name’,‘one’);

prop":

而设置元素的原生属性(如name、value、checked等)使用prop,porp使用’.‘或’[]'实现,是转化为js对象的属性,减少访问dom节点的频率。

document.getElementById(‘div1’).name = ‘one’; //或者

document.getElementById(‘div1’)[‘name’] = ‘one’;

fatal: The remote end hung up unexpectedly5.00 KiB/s


项目:《自学vuepress》

时间:2018年4月28

问题:使用git push推送项目的时候提示错误

$ git push -f git@github.com:MOMO-0902/MOMO-0902.github.io.git master:gh-pages

Counting objects: 88, done.

Delta compression using up to 4 threads.

Compressing objects: 100% (86/86), done.

Connection to github.com closed by remote host. KiB/s

fatal: The remote end hung up unexpectedly5.00 KiB/s

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

大厂面试题

面试题目录

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-PhMHig3C-1712061922911)]

最后

面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-No4f13uo-1712061922911)]

[外链图片转存中…(img-WJBrCLRs-1712061922912)]

[外链图片转存中…(img-ohLM5Pzg-1712061922912)]

[外链图片转存中…(img-LI1tpyTL-1712061922913)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值