写JS代码让自己头秃的点
写JS代码让自己头秃的点
主要还是自己没系统学习js的锅吧,记录一下。
匿名函数内用this
匿名函数中,this指代的是window对象,不是直观理解中的,局部this,这就会产生undefine的问题。
可以在匿名函数外使用另外的变量名表示。
var vm = this
var f = function () {vm.count = 1
}
匿名函数中赋值外部变量无效
本质上是因为js是异步执行,按照同步的思路写代码会造成误以为没有赋值成功的错觉,其实是赋值成功了的,只不过是在后面的代码执行之后,他才执行。
但是同步执行很多时候是必要的,可以使用Promise在实现,在then中确保能够同步执行。
首先来个栗子。
// from https://www.runoob.com/w3cnote/javascript-promise-object.html
function ajax(URL) {return new Promise(function (resolve, reject) {var req = new XMLHttpRequest(); req.open('GET', URL, true);req.onload = function () {if (req.status === 200) { resolve(req.responseText);} else {reject(new Error(req.statusText));} };req.onerror = function () {reject(new Error(req.statusText));};req.send(); });
}
var URL = "/try/ajax/testpromise.php";
ajax(URL).then(function onFulfilled(value){document.write('内容是:' + value);
}).catch(function onRejected(error){document.write('错误:' + error);
});
也可以使用async和await来写,这两个关键字学过python比较容易理解。可以理解为自动生成了Promise对象。
async download (url) {var flag = falseawait axios.get(url, {}).then((res) => {flag = true}).catch((err) => {flag = false})// await使得进程挂起,直到get请求执行完毕,最后再回来returnreturn flag
}var down = download('/abc.txt')
down.then((ret) => {// something to doconsole.log(ret)
}).catch((err) => {console.log(err)
})
写JS代码让自己头秃的点相关推荐
- 关于使用eclipse写JS代码没有提示的解决方法
关于使用eclipse写JS代码没有提示的解决方法 eclipse原本是不会自动提示JS代码的,但是可以通过安装插件实现JS代码的提示功能 首先:help->Eclipse Marketplac ...
- 原生 遍历_前端原生写js代码还是用vue等框架写项目?
其实对于初入前端的同学来说,我个人推荐写原生.因为扎实的js基础是通过写原生代码逐步理解js的数据类型,语法,闭包,原型链,继承等知识,只有在项目中主动应用这些js的基本知识,才能逐步提高你的编码能力 ...
- 【每日手写JS代码】
文章目录 一. 手写JS 1-1 数组方法 1月5号 数组扁平化 1月6号 Array.prototype.map() 1月7号 Array.prototype.filter() 1月8号 Array ...
- html 中如何写js代码提示错误,javascript怎么进行错误处理?
在ES3之前js代码执行的过程中,一旦出现错误,整个js代码都会停止执行,这样就显的代码非常的不健壮.从ES3开始,js也提供了类似的错误处理机制,从而让js代码变的更健壮,及时执行的过程中出现了异常 ...
- vue写js代码_vue.js弹出式音乐播放器特效代码
码农那点事儿 关注我们,一起学习进步 vue弹出式音乐播放器是一款基于vue.js实现的点击弹出式音乐播放器代码特效,点击图片即可弹出播放界面大图,可切换列表模式,上一首下一首音乐切换等功能. 下载源 ...
- eclipse jsp 写 js 代码提示_基于jsp+servlet的宠物管理系统
源码编号:B-E00002 点击查看分类规则 项目类型:Java EE项目(java web项目) 项目名称:基于jsp+servlet的宠物管理系统(Pet) 当前版本:V1.0.0版本 难度等级 ...
- php中如何写js代码提示_PHP 如何编写类似js中alert() 提示框
这篇文章主要介绍了PHP 实现类似js中alert() 提示框功能,非常的实用,这里推荐给大家,有需要的小伙伴来参考下,希望大家能喜欢. 主要应用于添加判断提示,跳转,返回,刷新. 代码如下:/** ...
- html 中如何写js代码提示错误,javascript如何进行错误处理?
错误处理对于web应用程序开发至关重要,不能提前预测到可能发生的错误,不能提前采取恢复策略,可能导致较差的用户体验.由于任何javascript错误都可能导致网页无法使用,因此作为开发人员,必须要知道 ...
- easyui form 返回html,form(表单) - TopJUI前端框架,不用写JS代码的EasyUI
Form(表单) 使用$.fn.iForm.defaults重写默认值对象 form提供了各种方法来操作执行表单字段,比如:ajax提交, load, clear等等.当提交表单的时候可以调用vali ...
最新文章
- 面霸篇:高频 Java 基础问题(核心卷一)
- 老黄历接口(免注册)
- springboot+IntelliJ IDEA实现热部署
- python中用来回溯异常的模块_Python_10-异常处理
- Luogu1640 连续攻击游戏
- sqlserver有外键无法创建触发器_数据库不使用外键的 9 个理由
- 教育中的“产出/产能平衡”原则
- at()函数遍历图像
- Nginx优化---防盗链--网页缓存--网页压缩--日志分割
- 11.什么是Heuristic
- 盘点:文本内容安全领域 深度学习的六个主流应用方法
- python展开阅读全文_展开阅读全文 js 爬虫操作
- NetworkX学习笔记07:泊松分布与幂律分布
- Settings Preference 的理解
- LMT and ASSM
- Windows 防火墙的入站和出站规则说明
- 某信息安全攻防大赛周周练考核(一) Writeup By 2ha0yuk7on
- 用Python通过163邮箱发送邮件
- 正则表达式的g m $ ^ i
- Linux(5)账号和权限管理
热门文章
- 路西法及堕落天使相关资料
- 微软、谷歌、百度等公司经典面试100题[第101-160题]
- 2022.11.17补题祭
- 项目进展:淘宝店铺抓取
- 阿里妈妈API接口;item_search - 按关键字或网址搜索商品
- 微信小程序---小程序中引入的echarts在滑动屏幕时抖动以及不跟随scroll滑动问题
- php薄饼,即将消失的汕头美食:糖葱薄饼
- 限制input框只能输入数字,加减号也不可以输入
- qt html 库段错误,连接Qwt库时Qt代码中的分段错误
- linux centos7 安装gc,Linux(Centos7)安装Java JDK及卸载