1 对于this关键词的不正确使用
Game.prototype.restart = function () {
this.clearLocalStorage();
this.timer = setTimeout (function() {
this.clearBoard();
}, 0);
};
运行上面的代码将会出现如下错误:
uncaught typeError:undefined is not a function
为什么会有这个错? this是指代当前对象本身,this的调用和它所在的环境密切相关。上面的错误是因为在调用setTimeout函数的时候,实际调用的是window.setTimeout,而在window中并没有clearBoard();这个方法;
下面提供两种解决的方法。
1,将当前对象存储在一个变量中,这样可以在不同的环境被继承。
Game.prototype.restart = function() {
this.clearLocalStorage();
var self = this;
this.timer = setTimeout(function(){
self.clearBoard(); }, 0);
}; //改变了作用的对象
2,使用bind()方法, 不过这个相比上一种会复杂,bind方法官方解释: msdn.microsoft.com/zh-cn/library/ff841995
Game.prototype.restart = function () {
this.clearLocalStorage();
this.timer = setTimeout(this.reset.bind(this)),
};
Game.prototype.reset = function() {
this.clearBoard();
};
2 传统编程语言的生命周期误区
在js中变量的生存周期与其他语言不同,举个例子
for (var i=0; i<10;i++){
/* */
}
console.log(i); //并不会提示 未定义,结果是10
在js中这种现象叫:variable hoisting(声明提前)
可以使用let关键字。
3 内存泄漏
在js中无法避免会有内存泄漏,内存泄漏:占用的内存,但是没有用也不能及时回收的内存。
例如以下函数:
var theThing = null;
var replaceThing = function() {
var priorThing = theThing;
var unused = function() {
if (priorThing) {
console.log(‘hi');
};
};
theThing = {
longStr: new Array(1000000).join(‘*'),
someMethod: function () {
console.log(someMessage);
}
}
setInterval(replaceThing, 1000);
如果执行这段代码,会造成大量的内存泄漏,光靠garbage collector是无法完成回收的,代码中有个创建数组对象的方法在一个闭包里,这个闭包对象又在另一个闭包中引用,,在js语法中规定,在闭包中引用闭包外部变量,闭包结束时对此对象无法回收。
4 比较运算符
console.log(false == ‘0'); // true console.log(null == undefinded); //true console.log(” \t\r\n” == 0);
以上所述是小编给大家介绍的JavaScript中日常收集常见的10种错误(推荐),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
# js
# 错误
# Ajax向后台传json格式的数据出现415错误的原因分析及解决方法
# 微信小程序 加载 app-service.js 错误解决方法
# JSON 对象未定义错误的解决方法
# 总结AngularJS开发者最常犯的十个错误
# JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决
# 防止Node.js中错误导致进程阻塞的办法
# 关键词
# 小编
# 的是
# 包中
# 会有
# 是因为
# 有个
# 将会
# 两种
# 而在
# 这段
# 给大家
# 可以使用
# 不正确
# 所述
# 结束时
# 给我留言
# 包里
# 为什么会有
# 举个例子
相关文章:
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
无锡营销型网站制作公司,无锡网选车牌流程?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
韩国服务器如何优化跨境访问实现高效连接?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何在阿里云部署织梦网站?
如何通过虚拟主机空间快速建站?
,巨量百应是干嘛的?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
建站之星安装步骤有哪些常见问题?
如何在Windows 2008云服务器安全搭建网站?
如何用好域名打造高点击率的自主建站?
黑客如何通过漏洞一步步攻陷网站服务器?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
常州企业建站如何选择最佳模板?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
山东网站制作公司有哪些,山东大源集团官网?
股票网站制作软件,网上股票怎么开户?
网站制作话术技巧,网站推广做的好怎么话术?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
如何快速完成中国万网建站详细流程?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
相册网站制作软件,图片上的网址怎么复制?
如何使用Golang安装API文档生成工具_快速生成接口文档
头像制作网站在线制作软件,dw网页背景图像怎么设置?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
网站制作价目表怎么做,珍爱网婚介费用多少?
存储型VPS适合搭建中小型网站吗?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
设计网站制作公司有哪些,制作网页教程?
如何在阿里云香港服务器快速搭建网站?
北京的网站制作公司有哪些,哪个视频网站最好?
建站之家VIP精选网站模板与SEO优化教程整合指南
佛山企业网站制作公司有哪些,沟通100网上服务官网?
如何确认建站备案号应放置的具体位置?
大型企业网站制作流程,做网站需要注册公司吗?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
网站制作公司排行榜,四大门户网站排名?
建站之星Pro快速搭建教程:模板选择与功能配置指南
网站企业制作流程,用什么语言做企业网站比较好?
如何通过商城自助建站源码实现零基础高效建站?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
如何配置IIS站点权限与局域网访问?
如何选择高效响应式自助建站源码系统?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
*请认真填写需求信息,我们会在24小时内与您取得联系。