javascript ,从mozilla 官方网站学习语法,非常不错

news/2024/5/9 11:14:01/文章来源:https://yanghuaiyuan.blog.csdn.net/article/details/81153733

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/81153733

博主地址是:http://blog.csdn.net/freewebsys

1,关于mozilla 开发者


https://developer.mozilla.org/zh-CN/
还有这么一个开发者中心呢,上面搜索写JavaScript的东西也相当的全面。
开始是使用 firefox,现在使用了 chrome就再也不看 mozilla 的东西了。
但是人家有个号东西也去学习。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Introduction
学习javascript

2,学习


虽然写javascript好多年,但是一些高级的用法不会。
造成代码感觉上冗余的多,不优美。
比如昨天写的CURD 项目设置属性为空,就相当难看的代码:

filters: {id: '',userName: '',password: '',nickName: '',role: '',status: '',type: '',},loading: false,dataForm: {//编辑界面数据id: '',userName: '',password: '',nickName: '',role: '',status: '',type: '',createTime: '',updateTime: '',},

感觉上肯定有啥高级的用法,能将属性的默认值设置空啥的。
或者使用啥foreach的函数。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

拼接字符串:

let tmpDataForm = this.dataForm //赋值变量Object.keys(tmpDataForm).forEach(function(key){data += "&"+key+"=" + tmpDataForm[key]})
进行filter查询:
let query = ""let tmpFilters = this.filters //赋值变量Object.keys(tmpFilters).forEach(function(key){query += "&"+key+"=" + tmpFilters[key]})

3,代码优化


昨天的curd优化:
https://blog.csdn.net/freewebsys/article/details/81112630

<template><section><!--工具条--><el-col :span="24" class="toolbar" style="padding-bottom: 0px;"><el-form :inline="true" :model="filters"><el-form-item><el-button type="primary" @click="editFunc">新建</el-button></el-form-item><el-form-item><el-input v-model="filters.id" placeholder="id"></el-input></el-form-item><el-form-item><el-input v-model="filters.userName" placeholder="用户名"></el-input></el-form-item><el-form-item><el-input v-model="filters.password" placeholder="密码"></el-input></el-form-item><el-form-item><el-input v-model="filters.nickName" placeholder="昵称"></el-input></el-form-item><el-form-item><el-input v-model="filters.role" placeholder="角色"></el-input></el-form-item><el-form-item><el-input v-model="filters.status" placeholder="状态"></el-input></el-form-item><el-form-item><el-input v-model="filters.type" placeholder="类型"></el-input></el-form-item><el-form-item><el-button type="primary" v-on:click="listFunc">查询</el-button></el-form-item></el-form></el-col><!--列表--><template><el-table :data="dataList" v-loading="loading" style="width: 100%;"><el-table-column prop="id" label="id"/><el-table-column prop="userName" label="用户名"/><el-table-column prop="password" label="密码"/><el-table-column prop="nickName" label="昵称"/><el-table-column prop="role" label="角色"/><el-table-column prop="status" label="状态"/><el-table-column prop="type" label="类型"/><el-table-column prop="createTime" label="创建时间"/><el-table-column prop="updateTime" label="更新时间"/><el-table-column label="操作" width="150"><template slot-scope="scope"><el-button-group><el-button type="primary" size="mini" @click="editFunc(scope.$index, scope.row)">编辑</el-button><el-button type="danger" size="mini" @click="deleteFunc(scope.$index, scope.row)">删除</el-button></el-button-group></template></el-table-column></el-table></template><el-col style="text-align:right;padding-top: 30px;"><el-pagination @current-change="pageChangeFunc" background="" layout="prev, pager, next" :total="totalCount"></el-pagination></el-col><!--编辑弹出页面--><el-dialog title="用户编辑" :visible.sync="dialogVisible"><el-input v-model="dataForm.id" placeholder="id" type="hidden"/><el-form label-width="100px" :rules="dataFormRules" ref="dataForm"><el-form-item label="用户名" prop="userName"><el-input/></el-form-item><el-form-item label="密码" prop="password"><el-input/></el-form-item><el-form-item label="昵称" prop="nickName"><el-input v-model="dataForm.nickName"/></el-form-item><el-form-item label="角色" prop="role"><el-input v-model="dataForm.role"/></el-form-item><el-form-item label="状态" prop="status"><el-input v-model="dataForm.status"/></el-form-item><el-form-item label="类型" prop="type"><el-input v-model="dataForm.type"/></el-form-item></el-form><span slot="footer" class="dialog-footer"><el-button @click="dialogVisible = false">取 消</el-button><el-button type="primary" @click="saveFunc">确 定</el-button></span></el-dialog></section>
</template><script>
export default {data() {return {filters: {id: '', userName: '', password: '', nickName: '', role: '', status: '', type: '',},loading: false,dataForm: {//编辑界面数据id: '', userName: '', password: '', nickName: '', role: '', status: '', type: '', createTime: '', updateTime: '',},dataFormRules: {//编辑界面校验规则userName: [{required: true, message: '请输入用户名', trigger: 'blur' } ],password: [{required: true, message: '请输入密码', trigger: 'blur' } ],nickName: [{required: true, message: '请输入昵称', trigger: 'blur' } ],role: [{required: true, message: '请输入角色', trigger: 'blur' } ],status: [{required: true, message: '请输入状态', trigger: 'blur' } ],type: [{required: true, message: '请输入类型', trigger: 'blur' } ],},dialogVisible: false,dataList: [], //列表数据totalCount: 0,currentPage: 1}},methods: {editFunc: function(index, row) {//新建&编辑if (row == undefined) {let tmpDataForm = this.dataForm //赋值变量,修改tmpDataForm即可Object.keys(tmpDataForm).forEach(function(key){tmpDataForm[key] = ''})this.dialogVisible = true} else {this.$axios.get('/userInfo/get?id=' + row.id).then(resp => {//数据直接赋值this.dataForm = resp.data.data}).finally(() => {this.loading = falsethis.dialogVisible = true})}},saveFunc: function() {this.$refs['dataForm'].validate((valid) => {if (!valid) { return false }let data = ""let tmpDataForm = this.dataForm //赋值变量Object.keys(tmpDataForm).forEach(function(key){data += "&"+key+"=" + tmpDataForm[key]})this.$axios.post('/userInfo/save?' + data).finally(() => {this.dialogVisible = falsethis.listFunc()})})},deleteFunc: function(index, row) {this.$confirm('确认删除该记录吗?', '提示', {type: 'warning'}).then(() => {this.$axios.delete('/userInfo/delete?id=' + row.id).finally(() => {this.listFunc()})})},listFunc: function() {this.loading = truelet query = ""let tmpFilters = this.filters //赋值变量Object.keys(tmpFilters).forEach(function(key){query += "&"+key+"=" + tmpFilters[key]})this.$axios.get('/userInfo/list?page=' + this.currentPage + query).then(resp => {this.dataList = resp.data.datathis.totalCount = resp.data.totalCount}).finally(() => {this.loading = false})},pageChangeFunc: function(idx) {this.currentPage = idxthis.listFunc()}},created: function() {this.listFunc()}};
</script>

4,总结


js代码中出现大量的 set 代码其实是冗余的本来就是动态语言,不能像java那样去写:this.xxx = xxx 这样不优雅。
要用 forEach去写:

let tmpDataForm = this.dataForm //赋值变量,修改tmpDataForm即可Object.keys(tmpDataForm).forEach(function(key){tmpDataForm[key] = ''})

这个要是大表单数据,十几个 也没有啥意义。

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/81153733

博主地址是:http://blog.csdn.net/freewebsys

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_791429.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pagespeed insights 上线了,可以通过web进行网站性能分析了

地址&#xff1a; https://developers.google.cn/speed/pagespeed/insights/ 分析下csdn网站&#xff1a; 功能挺多的&#xff0c;还不错。 可以进行参考&#xff0c;然后优化。提高访问速度。

中国大学MOOC(慕课) 一个不错的学习网站

https://www.icourse163.org/category/all 中国大学MOOC是由网易与高教社携手推出的在线教育平台&#xff0c;承接教育部国家精品开放课程任务&#xff0c;向大众提供中国知名高校的MOOC课程。在这里&#xff0c;每一个有意愿提升自己的人都可以免费获得更优质的高等教育。 央…

flutter(4):在linux 下安装flutter 环境,sdk,Android Studio ,从中文镜像网站下载,速度快,安装插件,调整bios使用x86镜像,写个hello world。

目录前言1&#xff0c;关于 flutter2&#xff0c;使用3&#xff0c;启动5&#xff0c;学习视频6&#xff0c;总结前言 相关arduino 全部分类&#xff1a; https://blog.csdn.net/freewebsys/category_8957746.html 本文的原文连接是: https://blog.csdn.net/freewebsys/articl…

图片切换onmouseover 事件

http://www.w3school.com.cn/htmldom/event_onmouseover.asp 定义和用法 onmouseover 时间会在鼠标指针移动到指定的对象上时发生。 语法 οnmοuseοver"SomeJavaScriptCode" 参数描述SomeJavaScriptCode必需。规定该事件发生时执行的 JavaScript。支持该事件的 HTM…

kotlin学习(2):android开发股票APP开发。先上github交友网站进行搜索,参考相关开源项目。然后进行二次开发、修改,不从零进行项目开发。

目录前言1&#xff0c;关于股票APP2&#xff0c;使用下载代码运行3&#xff0c;总结前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/108718819 未经博主允许不得转载。 博主地址是&#xff1a;http://blog.csdn.net/freewebsys 1&#xff0c;关于…

手机网站按住放大图片_动辄上千的手机稳定器值不值?魔爪手机稳定器mini mx 499不香么...

现在什么最火&#xff1f;当然是小视频vlog了。随着抖音等短视频App的火爆&#xff0c;短视频就风靡全球了。录制短视频也从兴趣爱好演变成了多种职业形式&#xff0c;不仅能够满足个人记录还能够带来经济收益。那么怎样才能像vlog创作者一样录制高质量的短视频资源呢&#xff…

2018洛奇英雄传永恒最新服务器,洛奇英雄传:永恒官方网站-这一次让经典成为永恒...

《洛奇英雄传&#xff1a;永恒》公会篝火玩法介绍2017年05月16日公会是洛英手游的特色系统&#xff0c;在洛英手游中&#xff0c;公会玩法众多&#xff0c;既有着公会饮酒&#xff0c;公会篝火等休闲玩法&#xff0c;还有着斗争之塔&#xff0c;征战英雄等公会副本战斗&#xf…

摄影分享网站之导航栏

一. 图片展示 二.内容构成 该导航栏由一个大div标签里面包裹三个小div&#xff0c;分别用来放置logo,和搜索框加按钮&#xff0c;最后一个放置导航链接 &#xff0c;链接里实现下拉菜单。 1.logo logo部分比较简单&#xff0c;把图片放入设定好大小的div中&#xff0c;使用flo…

python编程游戏用什么软件好,推荐4个 Python 的编程游戏网站

简说Python号主老表&#xff0c;自学&#xff0c;分享Python&#xff0c;SQL零基础入门、数据分析、数据挖掘、机器学习优质文章以及学习经验。135篇原创内容公众号↑↑↑关注后"星标"简说Python人人都可以简单入门Python、爬虫、数据分析简说Python推荐本文内容来源…

java线程睡眠的方法_「thread.sleep」Java Thread之Sleep()使用方法总结 - seo实验室

thread.sleep一、API简介Thread.sleep()是Thread类的一个静态方法&#xff0c;使当前线程休眠&#xff0c;进入阻塞状态(暂停执行)&#xff0c;如果线程在睡眠状态被中断&#xff0c;将会抛出IterruptedException中断异常。。主要方法如下&#xff1a;【a】sleep(long millis) …

计算机科学与技术导论 网站,计算机科学与技术导论

????张小峰、贾世祥、柳婵娟、邹海林编著的《计算机科学与技术导论》以启迪科学思想、培育创新精神为目标&#xff0c;以知识为起点&#xff0c;以知识发现、发展和应用为主线&#xff0c;构建 计算机科学技术导论 课程的内容体系。包括理论产生、研究的动因、思想方法和理…

服务器错误信息暴露URL,访问网站提示An error occurred on the server when processing the URL的解决方法...

大家看到这个信息不要怕&#xff0c;这个就说明了你的iis7或iis7.5的下的网站有错误。只要找到具体的信息就可以了&#xff0c;跟iis6下的经典提示错误一样的。解决方法:An error occurred on the server when processing the URL. Please contact the system administrator在W…

html网站首页代码_如何在百度站长工具平台上进行“网站验证”

作为一名站长&#xff0c;在网站搭建以后&#xff0c;如果想要使用百度站长工具了解网站的相关数据&#xff0c;这时需要先到百度站长工具平台上验证您的网站。站长平台推荐站长添加主站(您网站的链接也许会使用www和非www两种网址&#xff0c;建议添加用户能够真实访问到的网址…

mysql 网页版管理工具_WP菜鸟建站25:怎样安装和打开phpMyAdmin数据库管理工具?...

wordpress程序是由PHP语言开发而的一个动态网站程序&#xff0c;所以&#xff0c;它拥有自己的mysql数据库。我们的wordpress网站的前端页面所展示的文字和图片信息&#xff0c;都是从这个mysql数据库中调用出来的。一般情况下&#xff0c;作为wordpress站长的我们&#xff0c;…

randint函数_静态网站利用云函数 SCF + API 网关访问自定义后端接口

本文介绍使用全静态页面的网站如何利用腾讯云的 SCFAPI 服务实现简单的后端接口&#xff0c;并提供了一个 Python 出题器的实例演示。相关服务介绍&#xff1a;云函数(Serverless Cloud Function&#xff0c;SCF)是腾讯云为企业和开发者们提供的无服务器执行环境&#xff0c;帮…

html 字加白色透明,如何给网站背景加一个白色的透明文字

如何给网站背景加一个白色的透明文字如何给网站背景加一个白色的透明文字&#xff0c;如果对你有帮助就看看吧。那么如何给网站背景添加呢?其实也很简单&#xff0c;只需要一些代码即可实现&#xff0c;这个代码呢也是站长在其他地方发现的&#xff0c;就感觉还不错就拿过来用…

基于SSM的模板项目运动网站(附源码链接)

基于SSM的体适能运动协会 基于SSM的体适能运动协会项目属于SSM的一个综合实例项目&#xff0c;很多类似的项目都可在上面进行扩展。整个项目包括前台与后台&#xff0c;它不仅包括前台资源的展示&#xff0c;也包含了后台数据的实时更新等。此项目适用于毕设也适用于地方机构网…

火狐firefox,IE,网站变灰变黑兼容代码

内容提要&#xff1a; 大家都知道在IE浏览器中&#xff0c;可以使用一段代码 body {filter: gray;} 用微软的滤镜代码将网站整体去色成为黑白灰色调效果&#xff0c;但是并不兼容firefox等其他非IE浏览器。大家都知道在IE浏览器中&#xff0c;可以使用一段代码 body {filter: g…

树莓派raspbian大小_想自己搭建服务器,永久运行网站?一个U盘大小的树莓派就够了!...

来自&#xff1a;https://urlify.cn/nqaQVfNo.1前言由于本人在这段时候&#xff0c;看到了一个叫做树莓派的东东&#xff0c;初步了解之后觉得很有意思&#xff0c;于是想把整个过程记录下来。No.2树莓派是什么&#xff1f;Raspberry Pi(中文名为树莓派,简写为 RPi&#xff0c;…

支付宝当面付扫码支付支付后不回调_对接支付宝当面付进行电脑网站和手机网站收款教程...

对接支付宝当面付进行电脑网站和手机网站收款教程第一步&#xff1a;风铃自动卡密发卡平台前端搭建第二步&#xff1a;对接支付宝当面付进行电脑网站和手机网站收款项目地址&#xff1a;https://github.com/Tai7sy/card-system该系统采用Laravel / Vue MuseUI Element &#…