javascript基础知识的重要性
2016-10-18 19:02
232 查看
javascript基础知识的重要性
今天无意间看到了网上用node.js写的爬虫代码,惊叹node.js的牛逼,几行代码就可以了(当然包比较丰富),而且是高并发,研究了下代码发现里面都是回调函数,作用链,贴上源代码:var eventproxy = require('eventproxy'); var superagent = require('superagent'); var cheerio = require('cheerio'); var url = require('url'); var cnodeUrl = 'https://cnodejs.org/'; superagent.get(cnodeUrl) .end(function (err, res) { if (err) { return console.error(err); } var topicUrls = []; var $ = cheerio.load(res.text); $('#topic_list .topic_title').each(function (idx, element) { var $element = $(element); var href = url.resolve(cnodeUrl, $element.attr('href')); topicUrls.push(href); }); var ep = new eventproxy(); ep.after('topic_html', topicUrls.length, function (topics) { topics = topics.map(function (topicPair) { var topicUrl = topicPair[0]; var topicHtml = topicPair[1]; var $ = cheerio.load(topicHtml); return ({ title: $('.topic_full_title').text().trim(), href: topicUrl, comment1: $('.reply_content').eq(0).text().trim(), }); }); console.log('final:'); console.log(topics); }); topicUrls.forEach(function (topicUrl) { superagent.get(topicUrl) .end(function (err, res) { console.log('fetch ' + topicUrl + ' successful'); ep.emit('topic_html', [topicUrl, res.text]); }); }); });
代码里面 superagent.get(url).end(function(err, res){});
ep.after(‘topic_html’, topicUrls.length, function (topics) {})
这些都是使用回调函数的很好的使用,要是之前对回调函数的原理不清楚,这个看起来很乱的样子,但是理解的原理看起来就很容易理解,还有类似react.js中prop()方法是不可修改的,要是知道javascript对象属性的Configurable,Enumerable,Writable,Value中Configurable,和Writable设置成false,对象的属性就是不可更改的,就很快的理解了这些用法,怪不得张无忌练了九阳神功,练其他武功都那么快,以后自己多关注本质,骨架型的东西,这样才能理解的通透,虽然js各种框架层出不穷,但本质都是javascript,研究透了本质,框架上手就很快;继续研究javascript的基础知识。
相关文章推荐
- JavaScript基础知识
- JavaScript基础知识
- JavaScript基础知识(六)
- JavaScript基础知识
- JavaScript基础知识(二)
- javascript基础知识
- JavaScript基础知识(四)
- JavaScript基础知识(三)
- javascript 常用基础知识
- JavaScript(一、基础知识)
- javascript学习中的一些心得(基础知识,高手免进)
- JavaScript基础知识总结
- JavaScript基础知识(五)
- JavaScript基础知识
- javascript基础知识
- javascript基础知识
- 从零开始javascript(1):js基础知识
- 关于javascript的基础知识
- JavaScript基础知识
- Javascript&DHTML基础知识第1/2页