nodejs的学习方法以及大致流程.docx
《nodejs的学习方法以及大致流程.docx》由会员分享,可在线阅读,更多相关《nodejs的学习方法以及大致流程.docx(10页珍藏版)》请在冰点文库上搜索。
nodejs的学习方法以及大致流程
nodejs的学习方法以及大致流程
黑哥带你一起学习JS
自序:
大家好,我是卷皮网@黑哥,我从事PHP开发三年了,对JS的喜欢胜过PHP。
我刚开始上班的时候,对于JS也是懵懂一点点,因为大学的时候学过一点JS基础东西。
在13年上半年的时候,我觉得有些JS没有必要去自己去写,快速的学习了JQ。
可在实际项目中深刻体会到不会JS真是硬伤,对应web页面中很多交互,数据提交校验,数据交互都做不来。
那时候我觉得自己好没有用,连一些JS交互的东西都写不出来,很是失败。
打开XX,搜索如何学习JS,感觉好多人写的一些教程都是千篇一律,有些人说JS只能在浏览器中运行,有的说JS这个东西,了解了解就可以,没有必要深入,反正网上各种说法都有。
作为一个phper,对于js或多或少要学习一些基础,毕竟在国内的公司,基本上都要求会js。
在web的世界以及移动互联网的世界里,js越来越重要,各种交互都依赖于js,无论是做java,安卓开发,php,ios,c#都会接触到js,甚至有的项目中必须用原生的JS来开发。
既然我们在开发中要用js,那为什么不花点时间去学习和研究它呢,有些人说JS难,有些人说浏览器中JS东西太多了,有人说JS的兼容性太难搞定了,有些人甚至抱怨JS太丑陋了,语法各种奇葩。
其实在黑哥看来,这些都不是问题,因为JS真的没有难,难的是你没有耐心和时间好好去学习,深入研究它的精髓所在。
好了,废话少说,让黑哥带你一起走进js学习之旅吧~在本教程中,如有不对
的地方,欢迎大家给我提出来,可以发邮件到:
1114789385@,谢谢~
2015-11-01
深圳大剧院
主讲内容:
1、javascript基础知识(语法和数据类型)
2、利用终端JS快速学习
3、浏览器对象模型BOM
4、Dom(文档对象)基础和操作样式
5、原生态的js进行ajax通信
6、jquery基本用法
7、利用jq做ajax异步通信
8、jquery实战demo
一、Js简介
1什么是JS,
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
但在2009年随着nodejs的崛起,js不再是浏览器的宠儿,
它既可以在浏览器中运行,也可以在服务端运行,这主要归功于谷歌的v8引擎。
黑哥对JS的理解:
js是一种基于对象和事件驱动的松散型解释型语言。
对象:
具有共同特性一类,比如说人(黄种人,白种人),动物(哺乳动物,爬行动物)。
在js中,所有事物都是对象:
字符串、数值、数组、函数。
原因是他们每一种类型有共同的特征属性。
事件驱动:
可以理解为执行一个动作。
比如说:
1用户对网页做了某些操作,比如,点击了一个按钮,产生点击事件。
2用户没有对网页做操作,也可能产生事件,比如浏览器已经将整个页面加载完毕,会产生加载完成事件,如动画,弹窗效果等。
松散的解释型:
在js中可以说根本没有变量的说法,因为变量的类型不固定,相对java(严格类型)来说,比较灵活。
Js不需要提前编译,直接可以在浏览器上执行,现在谷歌的v8引擎出现(nodejs)可以执行在服务器端,构建轻量级,高并发的web应用程序。
Js源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。
JS组成:
1)ECMAScript,描述了JS的语法和基本对象
2)DOM文档对象,描述处理网页内容的方法和接口
3)BOM浏览器对象,描述与浏览器进行交互的方法和接口
2JS应用在那些地方呢,
1)js可以嵌入到动态语言,html页面中(其他的编程语言php,ruby,c++)
2)Web应用的崛起,发展迅速,构建高效的便于用户体验的应用至关重要。
比如说游戏开发中各种特效,手机应用app,pc端各种软件和浏览器web应用,XX地图,谷歌地图等。
3)服务器端(nodejs),构建轻量级,高并发的应用,时时更新系统(聊天系统socket.io),文件处理系统,HTTP服务器,代理服务器等4)由于js运行在客户端,节省了web服务器的请求时间和带宽可以减轻服务器响应的压力。
说完了js是什么以及它应用的一些场景,那接下来,我会带大家一起学习JS的基础知识。
二、JS的学习环境和工具
在学习JS之前,请允许黑哥多啰嗦一下,以后会说明原因的。
对于一个武士来说,一把好剑占据了一半,它的威力不可挥视。
同样,在学习JS的时候,我们也需要一把好剑,这样我们在学习的过程中才能事半功倍。
黑哥推荐大家使用火狐的JS终端,下载地址:
另外一个是谷歌推出的nodejs,下载地址:
,或者用浏览器环境(需要我们编写好html,把js嵌套进入才可以运行)。
对于js终端工具需要在linux环境才可以运行,nodejs环境在不同的操作系统平台都可以运行。
浏览器环境,在我们的电脑上已经自带了js运行
的环境。
在这三种环境中,我个人比较喜欢终端JS和Nodejs运行的环境,因为学习JS的基础知识不需要频繁的编辑好JS文件,然后保存为html文件,最后在浏览器中运行,太过于依赖浏览器宿主环境。
为什么我这么说呢,因为浏览器宿主环境是根据不同的浏览器厂商加入了他们自己独特的东西,这导致了JS在不同的浏览器上有差异和不兼容的问题出现,归根结底,其实就是bom(浏览器对象)和dom(文档对象)的操作不同而已。
所以,黑哥在接下来的教程中暂时抛弃下浏览器。
诚然,我不是故意的,在后续的教程中,我会明确指出JS运行的环境。
1、终端JS搭建
请确保已经安装好linux操作系统,我安装的是centos6.5,所以我就以centos为例说下终端JS的安装:
下面是安装的shell命令
cdyourpath(安装路径)
wget
:
//ftp.mozilla.org/pub/moz
illa.org/js/js-1.8.0-rc1.tar.gztarzxvfjs-1.8.0-rc1.tar.gzcdjs/src
make-fMakefile.ref
mkdir-p/usr/include/smjs/-v
cp*.{h,tbl}/usr/include/smjs/-vcdLinux_All_DBG.OBJ
cp*.h/usr/include/smjs/-vmkdir-p/usr/local/{bin,lib}/-vcpjs/usr/local/bin/-vcplibjs.so/usr/local/lib/-v以上安装完成后,运行/usr/local/bin/js就应该可以启动js解释运行引擎了,至于具体的linux命令,请参考书籍:
鸟哥的私房菜基础篇。
进入终端方法:
在终端窗口中输入js即可。
2、nodejs环境的安装
对于win环境,在nodejs官网下载nodejs后,运行安装,安装目录请选择C盘之外的目录即可。
安装好nodejs,把安装好的nodejs路径,添加到环境变量path中。
我安装的nodejs路径:
D:
\win7\nodejs\;添加到环境变量中:
点击电脑右下角的“开始”,输入cmd回车之后,然后接着输入node-v查看nodejs版本
对于linux操作系统的nodejs安装如下:
1安装gcc-c++,openssl,nodejs
yuminstallgcc-c++openssl-devel其中gcc-c++,openssl-devel必须安装,否则nodejs会安装失败cd/usr/local/src
wget你可以下载新的版本
或者下载最新版
wget
./configure
make
makeinstall
注意,./configure需要python2.6+对于终端的使用:
在win下,安装好nodejs之后,进入dos窗口,输入node即可
在linux下,直接输入node可以进入命令终端。
对于终端JS环境,直接输入js即可。
三、JS基础知识
1基本语法和数据类型
A基本语法
1)区分大小写,varx=23,X=32;2)变量标识符,下划线或者字母开头,变量一般建议采用驼峰式命
名方式,变量名不能以数字开头。
3)注释,行内注释//,多行注释/**------**/4)严格模式,usescript;为了不破坏ECMAScript3规则5)关键字,break,do,else,if....等
B数据类型
五种基本类型:
未定义undefined
空对象null
布尔值boolean
数值number
字符串string
还有一种复杂的类型object(function)
检测基本类型:
typeofstr
Undefined:
表示理解为变量未经初始化,如果我们在使用一个变量没有定义的时候就会显示
Null
表示一个空对象指针(内存中未分配的空对象),未来可能分配使用,一般来说如果对象没有使用之前,用null声明下就可以,这样可以区分undefined
布尔类型:
true,false和数字无关,ture不一定是1,false不一定是0
数值类型Number
两种数值类型:
整数类型和浮点数
十进制比如12
8进制:
0202*8=16前面加上0作为前缀,0-7
16进制:
0xA0x开头,后面接着0-9,A-Z表示大小写不区分
浮点型:
12.12,13.23数值中必须包含一个小数点,至少有一位小数
字符串:
varx=’zhuwei’;用单引号或者双引号包起来。
Object类型:
对象其实是一组数据和功能的集合
定义:
varobj=newObject(),varobj={}
其他“数据类型”
数组:
array
创建数组:
1)vararr=newArray(3);执行长度
2)vararr=[12,34,45];字面量创建
3)vararr=[];arr[0]=12;arr[1]=15;
函数function用来处理某些功能的操作。