全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JavaScript中日常收集常见的10种错误(推荐)

 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小时内与您取得联系。