Javascript的十种末日来临的方式是不是来了

Javascript写一个once函数,让传入函数只执行一次
function fn(){
console.log("xxx");
function once(fn){
once(fn);// xxx
once(fn);// 没了
2015年 3月4日
(937 威望)
请输入验证码:
[captcha placeholder]
或 后不会被要求输入验证码。
请输入验证码:
&&&& 或 后不会被要求输入验证码。
刚开始以为楼主需要的是这个
一个只执行一次的函数
function once(func) {
if (!isFunction(func)) {
throw new TypeError(funcErrorText);
return function() {
if (ran) {
result = func.apply(this, arguments);
// clear the `func` variable so the function may be garbage collected
function test(){
alert('coinxu')
var newTest = once(test)
不过还是给出你的答案
function test(){
alert('coinxu')
var once = (function(){
var memo = {}, i = 0;
return function(fn){
for(var key in memo){
//匿名函数支持
if(memo[key].func === fn||memo[key].func.toString() ===fn.toString()){
return memo[key].result
var result = fn()
memo[i] = {func:fn, result:result}
return result
once(test)
once(test)
2015年 3月4日
(944 威望)
请输入验证码:
[captcha placeholder]
或 后不会被要求输入验证码。
提一个问题:
(1,030 威望)
(954 威望)
(1,092 威望)
2015年 3月23日
(941 威望)
(1,132 威望)
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。查看: 42|回复: 9
初学JavaScript6个思维模式
菜鸟, 积分 17, 距离下一级还需 33 积分
菜鸟, 积分 17, 距离下一级还需 33 积分
注册时间17-7-3
在线时间0 小时
用户组千锋学员
用户组千锋学员
主题帖子积分
菜鸟, 积分 17, 距离下一级还需 33 积分
菜鸟, 积分 17, 距离下一级还需 33 积分
发表于 昨天&14:07
我们在学习JavaScript,或其他任何编码技能的时候,往往是因为这些拦路虎而裹足不前:
有些概念可能会造成混淆,尤其当你是从其他语言转过来的时候。找不到时间(有时是动力)学习。很容易忘记已经理解了的东西。工具多又在不断变化,所以不知道从哪里开始。
幸运的是,这些拦路虎是可以被识别,并消灭的。在这篇文章中,我将介绍六个思维技巧来帮助你更快地学习JavaScript,并成为一个更快乐、更富有成效的程序员。
1.不要让未来的决策阻止你现在前进的方向
很多人学习JavaScript,问的第一个问题往往是“我应该使用哪个框架?”。但是,如果你还没有掌握最最基础的JavaScript,那这显然是一个错误的问题。你将你所有的时间用来研究不同的框架,于是,你开始停滞不前。
帮助摆脱这种陷阱的方法之一是画一个你需要学习的路线图。例如,要想成为一个前端开发者,你的路线图可能是这样的:
进一步分解的话,你可以做一个只有HTML和CSS的功能性web页面。然后像这样一步步列出每个步骤,那么对于现在应该专注于做什么,就一目了然了。你也不会浪费时间去担心应该以后操心的事情。
如果你觉得这种路线图很有用,那么可以看看我以前写的《learning road map for becoming a front-end developer》,里面介绍得很详细。(注:对于学习JavaScript的路线,你也可以参考学习《学习JavaScript编程语言的8张思维导图分享》这篇文章)
2.不要让自信诱骗你忘事
快速了解一个概念,也许是学习JavaScript的道路上最影响你进步的事情之一。下面请允许我解释一下。
当你读到某些东西,你觉得的确如此的,那么很可能就会直接跳到下一个内容。然后你觉得接下来这个内容也非常浅显易懂,于是继续往下看。但很快,你会 发现你已经忘记了前面自认为已经掌握的内容,所以只能回过头去温习。你快速地浏览了一遍,感觉又明白了,然后继续前进。但是你又发现自己忘记了别的东西。 你一直处在这个循环中,直到最终迷失了自己。你不由地气馁,想着那先休息一下吧,然而当你休息完了再回来的时候,你发现你已经忘记了所有的内容。
解决这个问题,也很简单,只需要两步:
限制一次学习的量。实践——实际编写代码。
当你去学习一个新概念的时候,一定要试用它,摆弄它,熟悉它,甚至将它和其他概念结合起来。而且实际输出到示例代码中非常重要,因为这能帮助你消化吸收它。此外,限制一次学习的量,有助于记住资料,道理也很简单,东西越少越好记。
虽然这种学习进程会让你感觉所需的时间更多,但实际上恰恰相反,因为你不再需要走那么多的回头路。我也是经过了很多次惨不忍睹的教训才明白了这个技巧。
3.用正确的心态去做练习
很多人认为反复的练习特别无聊,所以他们通常会选择跳过或尝试走捷径。如果你快进JavaScript练习,那么最终反而需要更多的学习时间。试着让练习变得令人感兴趣,这样是不是就不会那么抗拒呢?
试着转变心态:
如果让你学习一个新的JavaScript概念,却不能试试,会怎么样?你是什么感觉?从我个人而言,我会特别懊恼。这就像一个孩子得到一个新的玩具,却不能玩一样。
当你学习JavaScript中一些新内容的时候,试着将它当作新玩具,新车,新鞋,或者其他任何你有兴趣尝试的东西。然后不要将练习当作工作,要将练习当作是玩耍。用新技能去尝试一些很酷的东西。让你自己都不由的惊叹。然后显摆给你的朋友看。
用一种游戏的心态,你会学得更快,记得更久,拥有更多的乐趣。
4.写代码的时间魔法
在学习JavaScript中最常见的问题是,找不到时间写代码。但是,与此同时,却有大把大把的时间浏览各种网站,如Facebook,YouTube,维基百科和Reddit等。
我有好几次,一开始只是想打开Facebook,看一小会,然后不知不觉就发现已经看了几个小时。这是怎么发生的呢?或许正是因为我并不打算看很长 时间。万事开头难,一旦开了头,后面陷进去就变得容易多了。但是如果有人问我,是否愿意花时间在Facebook上,我会坚决地说不,因为我本身时间就不 够用。然而,只允许看一会会时间往往更容易接受,然后深陷其中。
好消息是,你也可以利用同样的心理来学习写代码。一开始不要想着要编码几小时,因为你永远找不到这么多的时间。就告诉自己你要去写3分钟的代码。这样你永远也不用愁挤不出时间了。
5.思考得更慢,学得更快
这听起来貌似有悖常理,下面我会用一个小故事解释。
我的一个朋友曾经对JavaScript的某个功能感到困惑。于是,我让他详细地说一遍哪些是他知道的,然后给他解释他感到困惑的那部分。不过,当他检查代码片段的时候,我注意到有一段代码,他说得非常仓促。
“等一下!”我说, “慢点讲,每一步都详细地说一下。”
我的朋友继续给我做代码发生了什么的全面总结。
我只好再次叫住他。 “你还是太仓促了。再试一次,但这次,我希望你能从字面上去检查每一行代码,告诉每一行的代码都发生了什么。”
这次,我的朋友终于能够很好地解释代码中正在发生什么。问题的关键是,他终于可以一步一步地检查了代码片段,而不是囫囵吞枣想要一次性理解所有代码。
在类似于这样的情况下,思考得更慢实际上能让你学得更快。
6.首先用简明的语言来写复杂的代码
如果碰到一段复杂的或你不熟悉的代码,那么先用通俗易懂的语言写出来。这样一来,你就可以在写代码之前明确地知道你想要代码做什么。这么做有两个好处:
代码更易写,因为你不需要总是停下来想,你想要它表现什么。在bug发生之前就能捕捉到,因为你对代码应该做什么有一个明确的概念。
我们已经讨论了一堆如何更快地学习JavaScript的方法,而且你也可以将这些技巧应用到其他的技能上。下面来回顾一下:
不要担心以后会做什么决策,先好好深入学习。将新技能当作玩具一般快乐地练习。以小承诺的方式找时间来写代码,就像你一开始安慰自己只逛一小会时间网站。慢下来,步子迈的越小,学得越快
大牛, 积分 579, 距离下一级还需 421 积分
大牛, 积分 579, 距离下一级还需 421 积分
注册时间13-8-27
在线时间10 小时
主题帖子积分
大牛, 积分 579, 距离下一级还需 421 积分
大牛, 积分 579, 距离下一级还需 421 积分
发表于 昨天&14:07
牛人, 积分 363, 距离下一级还需 137 积分
牛人, 积分 363, 距离下一级还需 137 积分
注册时间13-8-27
在线时间8 小时
主题帖子积分
牛人, 积分 363, 距离下一级还需 137 积分
牛人, 积分 363, 距离下一级还需 137 积分
发表于 昨天&14:07
继续顶.......................
牛人, 积分 227, 距离下一级还需 273 积分
牛人, 积分 227, 距离下一级还需 273 积分
注册时间13-9-13
在线时间0 小时
主题帖子积分
牛人, 积分 227, 距离下一级还需 273 积分
牛人, 积分 227, 距离下一级还需 273 积分
发表于 昨天&14:18
看过顶贴!
大牛, 积分 578, 距离下一级还需 422 积分
大牛, 积分 578, 距离下一级还需 422 积分
注册时间13-8-27
在线时间12 小时
主题帖子积分
大牛, 积分 578, 距离下一级还需 422 积分
大牛, 积分 578, 距离下一级还需 422 积分
发表于 昨天&14:29
这样确实方便多了的说
牛人, 积分 306, 距离下一级还需 194 积分
牛人, 积分 306, 距离下一级还需 194 积分
注册时间13-8-27
在线时间6 小时
主题帖子积分
牛人, 积分 306, 距离下一级还需 194 积分
牛人, 积分 306, 距离下一级还需 194 积分
发表于 昨天&14:40
2048个赞,确实很有实力呀!
大虾, 积分 199, 距离下一级还需 1 积分
大虾, 积分 199, 距离下一级还需 1 积分
注册时间14-10-16
在线时间1 小时
主题帖子积分
大虾, 积分 199, 距离下一级还需 1 积分
大虾, 积分 199, 距离下一级还需 1 积分
发表于 昨天&14:51
留名求浮云,万一火了呢?
牛人, 积分 363, 距离下一级还需 137 积分
牛人, 积分 363, 距离下一级还需 137 积分
注册时间13-8-27
在线时间8 小时
主题帖子积分
牛人, 积分 363, 距离下一级还需 137 积分
牛人, 积分 363, 距离下一级还需 137 积分
发表于 昨天&15:02
作为班上的也来支持个哈
牛人, 积分 465, 距离下一级还需 35 积分
牛人, 积分 465, 距离下一级还需 35 积分
注册时间13-8-27
在线时间15 小时
主题帖子积分
牛人, 积分 465, 距离下一级还需 35 积分
牛人, 积分 465, 距离下一级还需 35 积分
发表于 昨天&15:13
真棒,速来围观。
牛人, 积分 334, 距离下一级还需 166 积分
牛人, 积分 334, 距离下一级还需 166 积分
注册时间13-9-13
在线时间9 小时
主题帖子积分
牛人, 积分 334, 距离下一级还需 166 积分
牛人, 积分 334, 距离下一级还需 166 积分
发表于 昨天&15:24
作为班上的也来支持个哈
除了敲代码~
必须有时间看这样的视频!!!
基础强化,不能忘的基础篇
成为JavaEE开发工程师的第一步:JAVA编程基础集合贴
~~~纯干货,纯干货,纯干货。跟着我走,不会掉队!!!
UI干干干干干货福利——千锋UI老师揭秘产品中情感化设计要素,喊你来学~
GMT+8, 17-7-4 07:03
Powered by问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
谷歌、苹果、微软和Mozilla的工程师正合力创建WebAssembly(又名wasm),这是能够运用在未来浏览器中承诺可带来20倍更快性能的字节码(bytecode)。WebAssembly项目创造全新的字节码(一种机器可读的指令集,能够更快为浏览器加载高级语言),让桌面和移动端浏览器相比较网页或者应用的整体源代码变得更加高效。
基本的意思就是,该技术可以将类似C++这样的编译语言,编译成浏览器运行的字节码,这样,其他语言都可以来替代js的工作了,也就是说前端将面临一场失业大潮。。。
大家怎么看?js已经走向灭亡了?
一个事实,前端入门的门槛普遍比其他强类型语言要低,低不少,所以也就衍生了很大一批,自以为写几个页面几个特效就认为自己会js的 前端工程师,然而,借助于WebAssembly技术,类似于c++, java, c#....从业者,完全可以进入前端行业,而且,编程思想和逻辑完全可以碾压这群 前端工程师,更何况js本来就是一门到处是坑的语言,所以。。。。还有什么好说的
这个问题已被隐藏,原因:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
来看一个官方的解释
Is WebAssembly trying to replace JavaScript?
No! WebAssembly is designed to be a complement to, not replacement of, JavaScript. While WebAssembly will, over time, allow many languages to be compiled to the Web, JavaScript has an incredible amount of momentum and will remain the single, privileged (as described above) dynamic language of the Web. Furthermore, it is expected that JavaScript and WebAssembly will be used together in a number of configurations:
Whole, compiled C++ apps that leverage JavaScript to glue things together.
HTML/CSS/JavaScript UI around a main WebAssembly-controlled center canvas, allowing developers to leverage the power of web frameworks to build accessible, web-native-feeling experiences.
Mostly HTML/CSS/JavaScript app with a few high-performance WebAssembly modules (e.g., graphing, simulation, image/sound/video processing, visualization, animation, compression, etc., examples which we can already see in asm.js today) allowing developers to reuse popular WebAssembly libraries just like JavaScript libraries today.
When WebAssembly gains the ability to access garbage-collected objects, those objects will be shared with JavaScript, and not live in a walled-off world of their own.
顺便说一句,建议楼主对技术保持一颗敬畏之心,js是很多坑,同样他也有很多自己的优势。除非是你自己写出了PHP,你才可以说出“PHP是世界上最好的语言”。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
虽然难听, 但是部分是真的. 其他语言的开发者会杀进来, 这从前面已经出现的大量编译到 JavaScript 的语言已经能看出来, wasm 出现也有部分因素是迫于这种压力. 但这并不是事情的全部, 前端要处理的问题, 除了 JavaScript, 还有 DOM 的大量行为, 这是其他语言开发者很少熟练的. 不算末日, 但也不会好过. 另外能不能不要在正文里乱用标题格式.
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App跟着我一起用JavaScript写计时器
(window.slotbydup=window.slotbydup || []).push({
id: '2611110',
container: s,
size: '240,200',
display: 'inlay-fix'
您当前位置: &
[ 所属分类
| 时间 2015 |
作者 红领巾 ]
计时器小谈
对于刚刚接触的小白来说,计时器好像是个特别高大上的东西,其实不然,JavaScript为我们提供了很多的API函数,我们只用这些API函数就足以写一个很好的计时器,当然写一个时钟肯定也不在话下了。
那么我们就一步步开始写计时器喽:
1. 我们热热身
JavaScript脚本:
function timedMsg()
var t=setTimeout("alert('1 秒!')",1000)
&input type="button" value="显示定时的警告框" onClick = "timedMsg()"&
&p&请点击上面的按钮。警告框会在 1 秒后显示。&/p&
运行代码:
说明:这是一个简单的计时脚本,利用setTimeout函数使得警告框1秒后弹出。
2. 活动筋骨,有限计时
Javascript脚本:
function timedText()
var t1=setTimeout("document.getElementById('txt').value='1 秒'",1000)
var t2=setTimeout("document.getElementById('txt').value='2 秒'",2000)
var t3=setTimeout("document.getElementById('txt').value='3 秒'",3000)
&input type="button" value="显示计时的文本" onClick="timedText()"&
&input type="text" id="txt"&
&p&点击上面的按钮。输入框会显示出已经逝去的时间(1、2、3 秒)&/p&
运行代码:
说明:一个三秒的计时效果,当然和我们想象中的计时还有点差距。
3. 无限计时
Javascript脚本:
var c=0;事件
function timedCount()
document.getElementById('txt').value=c
setTimeout("timedCount()",1000)
&input type="button" value="开始计时!" onClick="timedCount()"&
&input type="text" id="txt"&
&p&请点击上面的按钮。输入框会从 0 开始一直进行计时。&/p&
运行代码:
说明:只要不关闭浏览器或是刷新网页,这个脚本就会一直运行下去,时间趋于无穷大。
4. 货真价实的计时
&!DOCTYPE html&
&html lang="en"&
&meta charset="UTF-8"&
&!--&style&
#securityCode{
background-color: #008000;
font-family: '楷体',
font-size: 20
&/style&--&
&script language="JavaScript" type="text/javascript"&
function timedCount()
document.getElementById('txt').value=c;
t=setTimeout("timedCount()",1000);
function stopCount()
setTimeout("document.getElementById('txt').value=c-1",0);
clearTimeout(t);
function resetCount(){
setTimeout("document.getElementById('txt').value=0",0);
clearTimeout(t);
&title&计时&/title&
&input type="button" value="开始计时!" onClick="timedCount()"&
&input type="text" id="txt"&
&input type="button" value="停止计时!" onClick="stopCount()"&
&input type="button" value="重置!" onClick="resetCount()"&
&p&点击上面的“开始计时”按钮来启动计时器。输入框会一直进行计时,从 0 开始。点击“停止计时”按钮可以终止计时,点击重置可终止计时,并将时间重置为0.&/p&
运行代码:
说明:简单的计时器,有重置,可以停止。
5. 附上时钟的代码
&!DOCTYPE html&
&html lang="en"&
&meta charset="UTF-8"&
&!--&style&
#securityCode{
background-color: #008000;
font-family: '楷体',
font-size: 20
&/style&--&
&script language="JavaScript" type="text/javascript"&
function startTime()
var today=new Date()
var h=today.getHours()
var m=today.getMinutes()
var s=today.getSeconds()
// add a zero in front of numbers&10
m=checkTime(m)
s=checkTime(s)
document.getElementById('txt').innerHTML=h+":"+m+":"+s
t=setTimeout('startTime()',500)
function checkTime(i)
{i="0" + i}
onload=startT
&title&计时&/title&
&div id="txt"&&/div&
运行代码:
说明:时钟滴答滴答在走哦。
Happy hacking!
本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
CodeSecTeam微信公众号
没有代价的安逸未必是幸福。
手机客户端

我要回帖

更多关于 鬼子的末日就要来到 的文章

 

随机推荐