最近好闲,有没有学习javascript的例子推荐一下咧

JavaScript学习(零)——JavaScript 入门(转载:非常好,分享给大家) - 博客频道 - CSDN.NET
止水的专栏
分类:javascript
将JavaScript&插入网页的方法
使用标签在网页中插入代码。
插入JavaScript
与在网页中插入的方式相似。使用下面的代码可以在网页中插入:
其中的就是代码的内容。的插入位置不同,效果也会有所不同,还可以像一样,将保存成一个外部文件,这些内容会在下一节讨论。
用JavaScript在网页中输出内容
使用来输出内容。例如
&document.write(&我是菜鸟我怕谁
将会输出在网页上输出:
我是菜鸟我怕谁
学过编程的人应该知道,我是菜鸟我怕谁两侧双引号代表字符串的意思。不过不理解这个概念也无所谓,学到后面就知道什么时候应该加双引号,什么时候不需要加了。
对不支持JavaScript的浏览器隐藏代码
有些浏览器可能不支持,我们可以使用如下的方法对它们隐藏代码。
&script type=&text/JavaScript&&
document.write(&我是菜鸟我怕谁
里的内容对于不支持的浏览器来说就等同于一段注释,而对于支持的浏览器,这段代码仍然会执行。至于符号则是里的注释符号,在这里添加它是为了防止试图执行。不过通常情况下,现在的浏览器几乎都支持,即使是不支持的,也会了解如何合理地处理含有的网页。
插入JavaScript的位置
脚本可以放在网页的里或者部分,而且效果也不相同。
Body里的JavaScript
放在部分的脚本在网页读取到该语句的时候就会执行,例如:
我是菜鸟我怕谁
Head里的JavaScript
在部分的脚本在被调用的时候才会执行,例如:
添加外部JavaScript脚本
也可以像添加外部一样添加外部脚本文件,其后缀通常为。例如:
如果很多网页都需要包含一段相同的代码,那么将这些代码写入一个外部文件是最好的方法。此后,任何一个需要该功能的网页,只需要引入这个文件就可以了。
注意:脚本文件里头不能再含有标签。
注:放在里的函数是一个例外,它并不会被执行,而是等被调用时才会执行。关于函数与调用的概念将在后面讲到。
本节介绍中的语句,语句是编程的一个基本概念
来看看我们之前例子。
我是菜鸟我怕谁
例子中的我是菜鸟我怕谁
就是一个语句,它可以告诉浏览器做出一个特定任务。特别的,这个语句是叫浏览器书写出一段内容。我们已经知道,的功能是输出文本,所以上面那个语句就是让浏览器输出我是菜鸟我怕谁。
在中,一行的结束就被认定为语句的结束。但是最好还是要在结尾加上一个分号来表示语句的结束。这是一个编程的好习惯,事实上在很多语言中句末的分号都是必须的。
看看下面这个代码块
不就是几个两需的语句放在一起吗好像没什么特别啊?
没错,其实所谓的代码块,就是用大括号括起来的几个语句。现在看来好像还没什么用不过学到后面就有用啦。
JavaScript&注释
、里都有注释,里自然也有注释,而且分为单行注释与普通注释两种。
插入单行注释的符号是
我是注释,我是注释
我是菜鸟我怕谁?
多行注释以&开始,以&结束。
谁说菜鸟不会编程?
菜鸟不但会编程
还有书写注释的良好习惯
我是菜鸟我怕谁?
相信你已经了解注释的作用了。的注释不会被浏览器作为解释,注释也不会被浏览器解释。同理,的注释也不会被执行。
注释的作用就是记录自己在编程时候的思路,以便以后自己阅读代码时可以马上找到思路。同样,注释也有助于别人阅读自己书写的代码。总之书写注释是一个良好的编程习惯。
JavaScript&变量
变量?变量就是可以变的量呗
在代数中,我们会遇到下面的基础问题,如果的值为,的值为,那么与的和是多少?在这个问题中,我们就可以吧和看做变量,再设置一个变量来保存与的和。
那么,上面的这个问题就可以用如下的代码表示:
给变量赋值
给变量赋值
输出的值
执行结果:
术语:变量名
在上面的例子中,我们用到了三个变量:,,。这些都是变量的名字,在中,我们需要用变量名来访问这个变量。在中,变量名有如下规定:
·&&&&&&&&变量名区分大小写,与是两个不同变量。
·&&&&&&&&变量名必须以字母或者下划线开头。
术语:赋值
来看一个上面出现过的语句:
这个语句怎么读出来呢?等于?
对不起,不对。应该是让等于,说得专业一点,这叫给赋值。
我们之前已经提到过,是变量,是可以变的,所以从某种角度来说,它不等于任何值,只是暂时的等于某个值。来看下面这个例子,进一步熟悉一下赋值与等于的关系:
让等于,的值暂时等于
让等于,的值暂时等于
再次强调,如果是你学习的第一门编程语言,一定要注意区分等于和赋值这两个不同的概念。
声明一个变量
给变量赋值
其实在第一个例子中我们已经看到了,中可以不声明变量直接赋值。不过先声明变量是一个良好的编程习惯。
变量的数据类型
,,,天啊!我可不是来学数学的。别着急,往下看。
其实,在中,变量是无所不能的容器,你可以吧任何东西存储在变量里,例如:
一二三字符串
其中,这个变量存储了一个字符串,字符串需要用一对引号括起来。变量还可以存储更多的东西,例如数组,对象,布尔值等等,我们会在后面介绍这些内容。
JavaScript操作符(一)运算操作符
操作符是用于在中指定一定动作的符号,其中算术操作符主要用来完成类似加减乘除的工作。
操作符举例
看下面这段代码。
其中的和都是操作符。
中还有很多这样的操作符,例如,加减乘除是中比较基本的几个操作符,它们的意义与在数学中没有什么差别。
中最常见的操作符是赋值操作符,上一节我们已经强调过,它不是等于。
操作符的优先级
我们都知道,在数学中,这个式子中,惩罚将先于加法运算。同样,在中,这个式子会按相同的顺序执行。我们称之为优先级,即的优先级高于。
与数学中一样,改变运算顺序的方法是添加括号,中改变优先级的方法也是添加括号。例如:
字符串的连接
在中,不知代表加法,同样也可以使用它来连接两个字符串,例如:
在上面的例子中,将包含乌龟这个字符串。这是由于完成了乌和龟的连接,当然了,你也可以把这种行为理解成字符串的加法。
自加一,自减一操作符
这里我们来看两个非常常用的运算符,自加一;自减一。首先来看一个例子:
的值变为的值有变回
上面的例子中,使得的值在原来的基础上增加,则让在现在的基础上在减去。所以,其实也可以写成
复合操作符
延续上面的例子,其实还可以写成:
1;//将的值加之后再赋给
这样把运算和赋值结合到一起的操作符叫做符合操作符。上面我们看到的是加法与赋值的结合,中还有其它的符合运算符:
JavaScript操作符(二)比较操作符和逻辑操作符
操作符是用于在中指定一定动作的符号,其中逻辑操作符
比较操作符
上一节的语句中,我们用到了符号。它就是一个比较操作符,它表示的意思就是相等吗?。
例如:表示:与的值相等吗?
在中,这样的比较操作符有很多,下面就列出这些操作符以及它们的含义。
·&&&&&&&&大于吗?
·&&&&&&&&小于吗?
·&&&&&&&&大于等于吗?
·&&&&&&&&小于等于吗?
·&&&&&&&&等于吗?
·&&&&&&&&不等于吗?
逻辑操作符
数学里面的在中还表示为;数学中的大于,小于是,那么在中是不是也一样呢?对不起,没有那么聪明,你需要这么写:
你可能已经猜到了,是而且的意思。
条件条件代码
只有条件、同时满足,代码才会得到执行。
类似的操作符还有或者和非
表示或者的意思,只要条件或中有一个满足,代码就会得到执行。
!表示非,也就是不是的意思,只有条件不满足的时候,代码才会得到执行。
JavaScript if else语句(如果,否则)
是所有编程语言里都有的功能,它使得程序具有简单的判断能力。
在介绍之前,让我们先来了解一下布尔值这个概念。
布尔(Bool)值
在变量一节中,我们曾经说过,变量可以用来存储布尔值。哪么布尔值的作用究竟是什么呢?简单的说,布尔值的作用就是用来表示真的假的。所以布尔值其实只有两种取值:真和假。
一个简单的if实例
其实的意思和字面意思是一样的,就是如果、否则。还是让我们来看一个使用的例子吧。
假设你在为一个机器人编写程序,这个机器人的功能是对使用者的爱好做出评价。
机器人:你的爱好是什么?
机器人:哇,有发展。
那么对应的就应该是
我们来解释一下这段代码。首先是一个,它后面紧跟着一个括号,括号里则是一个条件,确切地说是一个布尔值。当条件成立的时候,这个值是,里的语句将会得到执行;否则这个值是,里的语句将被忽略。
具体到我们的例子,如果变量的值是,则回答有发展,够则保持沉默。注意这个符号,这个符号用来判断左右两边是否相等。下一节会详细地介绍。
如果你的爱好不是,那么机器人什么也不会做。如果你希望它能对这种情况做出反应,我们可以请来帮忙,看下面的代码:
有发展如果爱好不是没有评价
上面的代码用到了,它会给添加一种否则的状态。当不是的时候,它会表明没有评价。
你向让机器人更聪明一点
用的嵌套吧看下面的代码
有发展如果爱好是足球。
注意:这个是嵌套在上一个中的中的
我既不是又不是足球
第二个只有在第一个的条件不成立的时候才有机会执行。最后再来看一个的实例吧。
JavaScript if else语句例子
是所有编程语言里都有的功能,它使得程序具有简单的判断能力。这个例子使用的语句实现简单的判断。
请选择你的业余爱好
JavaScript代码
function hobby(hob){
if( hob == &js&)
alert(&有发展
else if ( hob == &football&)//如果爱好是足球
else if ( hob == &basketball&)
alert(&我也爱看!
else//既不是又不是足球
alert(&没有评价
足球篮球其它
JavaScript Switch语句
当有很多种选项的时候,比更好的选择。
上一节我们已经看到,利用可以让程序具有基本的判断能力,而使用嵌套的则可以让程序对多种情况进行判断。但是当情况的种类比较多的时候,使用语句将更加合适。
一个使用switch的实例
结舌我们需要实现如下的程序:输入一个学生的考试成绩,我们按照每十分一个登记将成绩分等,程序将根据成绩的等级做出不同的评价。
很明显,用可以实现这样的程序,但是代码会很复杂。而如果使用语句,代码则会简单一些,首先来看一下思路,再把它翻译成。
1&&&&&&&&将分数转化为特定等级以便于处理
2&&&&&&&&判断分数属于哪种等级
3&&&&&&&&根据分数等级做出评价:例如低于给出挂科评价。
翻译成就是如下代码注意注释:
首先,我们用变量来存储分数,假设为var score = 65;
用分数除以,的作用是把它转换为整数,
暂时不用深究,内最后的结果为switch (parseInt(score / 10)) {
开始实现判断过程,得到满足
根据不同的等级做出不同的行为。
冒号后面的语句就是行为
到的行为都是下面这个语句
degree = &恭喜你,又挂了!
degree = &勉强及格
degree = &凑合,凑合
degree = &8错,错
degree = &高手高手,佩服佩服
}//end of switch
记得在每个所执行的语句里添加上一个语句。为了理解的作用,我们来看看如果没有会怎么样:
switch (parseInt(score / 10)) {
degree = &恭喜你,又挂了!
degree = &勉强及格case 7:
degree = &凑合,凑合
degree = &8错,错
degree = &高手高手,佩服佩服
}//end of switch
在上面的代码中,如果成绩是分,那么就是,则后面的语句将会得到执行,同样,、等等后面的语句都会得到执行。也就是说,我们会得到:恭喜你,又挂了!勉强及格凑合,凑合错,错高手高手,佩服佩服这样没有意义的评价。
这就是语句的执行逻辑,当发现某个满足后,该中在该后的所有语句都会得到执行。第一个例子中的就是为了让停下来。
看一个的实例
JavaScript Switch语句例子
使用的语句判断成绩的等级。
使用switch的示例
JavaScript代码
function judge() {
//分数等级
score = document.getElementById(&score&).
if (score & 100){
degree = '耍我?分满!
switch (parseInt(score / 10)) {
degree = &恭喜你,又挂了!
degree = &勉强及格
degree = &凑合,凑合
degree = &8错,错
degree = &高手高手,佩服佩服
}//end of switch
}//end of else
alert(degree);
&label for=&score&&成绩
&input name=&score&id=&score& type=&text& /&
&button value=&点击提交点击提交
JavaScript&弹出框
中有三种弹出框警告、确认以及提问。
警告(alert)
在访问网站的时候,你遇到过这样的情况吗?咚的一声,一个小窗口出现在你面前,上面写着一段警示性的文字,或是其它的提示信息。如果你不点击确定,你就不能对网页做任何的操作。没错,这个咚的小窗口就是干的。
下面的代码是一段使用的实例。
alert(&我是菜鸟我怕谁
我的个人观点是尽量少使用,它很不友好。甚至可能让一些方可认为你的网站很危险。
看一个的实例
确认(confirm)
确认框用于让用户选择某一个问题是否符合实际情况。
说!是还是不是?快回答!
如果你想表达这样的意思,那么再合适不过了。来看下面的代码:我们用你是菜鸟吗?向访客提问,变量则保存了访客的回应,它只可能有两种取值:或。没错,它是一个布尔值。后面的语句则是我们对访客回答做出的不同回应。
var r=confirm(&你是菜鸟吗
if (r==true)
&&&document.write(&彼此彼此
document.write(&佩服佩服
看一个的实例
提问(prompt)
和类似,不过它允许访客随意输入回答。我们来修改一下之前的例子,我们根据分数来做出不同的评价,不过那段程序并不完整,它根本就没问我们分数,而是假设我得了分。这太不公平了。现在我么就可以用来向访客提问,用存储用户输入的回答,其余的事情就都由后面的来完成了。
function judge() {
//分数等级
score = prompt(&你的分数是多少?
if(score & 100){
degree = '耍我?分满!
switch (parseInt(score / 10)) {
degree = &恭喜你,又挂了!
degree = &勉强及格
degree = &凑合,凑合
degree = &8错,错
degree = &高手高手,佩服佩服
}//end of switch
}//end of else
alert(degree);
看一个的实例
JavaScript&弹出框&alert例子
用于在网页中弹出警告。通常情况下尽量不要使用。
JavaScript代码
&scripttype=&text/JavaScript&&
function message(){
alert(&我是菜鸟我怕谁
&form action=&#&method=&post&&
&button value=&alert&onclick=&message()&&调用
JavaScript&弹出框confirm例子
确认框用于让用户选择某一个问题是否符合实际情况。
JavaScript代码
function isCainiao() {
var r=confirm(&你是菜鸟吗
if(r==true)
alert(&彼此彼此
alert(&佩服佩服
&form action=&#&method=&post&&
&button value=&confirm&onclick=&isCainiao()&&调用
JavaScript&弹出框prompt例子
用来让用户输入一个答案。
JavaScript代码
function judge() {
//分数等级
score = prompt(&你的分数是多少?
if(score & 100){
degree = '耍我?分满!
switch (parseInt(score / 10)) {
degree = &恭喜你,又挂了!
degree = &勉强及格
degree = &凑合,凑合
degree = &8错,错
degree = &高手高手,佩服佩服
}//end of switch
}//end of else
alert(degree);
&button value=&点击提交点击提交
&h2&&&/h2&
&p&&& &/p&
JavaScript&函数
通常情况下,函数是完成特定功能的一段代码。把一段完成特定功能的代码块放到一个函数里,以后就可以调用这个函数啦,这样就省去了重复输入大量代码的麻烦。
还记得我们上一节所使用的吗?其实它就是一个函数,我们就以它为例来看看函数的作用吧。如果没有这个函数,制作一个警告框可能需要如下工作:
1&&&&&&&&在屏幕上显示一个小窗口
2&&&&&&&&发出咚的提示音
4&&&&&&&&将警告文字显示在窗口中
5&&&&&&&&给出一个确定按钮
然后有了这个函数之后,你只需要写下面一行代码:
正如上面所说的,一个函数的作用就是完成一项特定的任务。如果没有函数时,完成一项任务可能需要五行、十行、甚至更多的代码。每次需要完成这个任务的时候都重写一遍代码显然不是一个好主意。这是我们就可以编写一个函数来完成这个任务,以后只要调用这个函数就可以了。
简单的函数定义
定义一个函数
说了这么多,那么究竟如何定义一个函数呢?看看下面的格式:
把函数名替换为你想要的名字,把代码替换为完成特定功能的代码,函数就定义好了。了解了如何定义函数,我们就来自己编写一个实现两数相加的简单函数吧。
首先给函数起一个有意义的名字:?,好像太长了,还是叫吧。它的代码如下:
sum = 1 + 1;
alert(sum);
函数的调用
函数定义好了,如何调用呢?
其实可以通过很多种方法调用上面的函数,我们这里使用最简单的函数调用方式按钮的点击事件,事件会在后面介绍。试着点击下面的按钮调用定义好的函数:
等等,你这是骗人啊,根本不是两书相加的函数啊,这个函数只能做啊!
带参数的函数
好吧,我承认我撒谎了,那个函数不能实现两数相加。其实,函数的定义应该是下面的格式:
参数参数参数
部分函数代码
按照这个格式,我们的函数应该写成:
sum = x +
alert(sum);
和则是我们函数的两个参数,调用函数的时候,我们就可以通过这两个参数把两个加数传递给函数了。例如,,会求的和,则会求出和的和。
再等等!这函数没有用啊,你吧结果出来,我想对结果做些处理怎么办啊?
带返回值的函数
好吧,我们把一行改成下面的代码:
后面的值叫做返回值。使用下面的语句调用函数就可以将这个返回值存储在变量中了。
该语句执行后,变量中的值为。值得说明的是,我们的函数中,参数和返回值都是数字,其实它们也可以是字符串等其它类型。
JavaScript For&循环
所谓循环,就是重复执行一段代码。
前面我们已经看到了,和是具有了判断的能力,但是老实说,电脑的判断能力和人比起来差远了。电脑更擅长一件事情不停地重复。我们在中把这叫做循环。
for循环的简单例子菜鸟报数
在了解循环的语法之前,还是让我们来看一个简单的例子吧:有十个菜鸟报数,菜鸟号、菜鸟号。有了循环,很少的代码就可以实现十个菜鸟的报数。
结果如下:
for循环的工作方式
在上面那个例子中,循环恰好执行了次,那么和一句中的是不是次的意思呢?下面我们就来看看循环的工作机制。
首先叫做初始条件,也就是说从哪里开始,特别的,我们的例子从开始。
出现在第一个分号后面的表示判断条件,每次循环都会先判断这个条件是否满足,如果满足则继续循环,否则停止循环,继续执行循环后面的代码。你可能想问了,我们设定了,岂不是永远都小于等于吗?来看第三个部分。
最后的表示让在自身的基础上加,这时每次循环后的动作也就是说,每次循环结束,都会比原来大,执行若干次循环之后,的条件就不满足了,这时循环结束。循环后面的代码将得到执行。
for循环总结
至此,我们可以吧循环总结如下:
初始条件判断条件循环后动作
JavaScript While循环
循环重复执行一段代码,直到某个条件不再满足。
循环的另一种方法
其实循环和循环的作用都是重复执行代码,例如下面这段代码,和上一节循环的输出结果完全没有区别。先来读读例子的代码,下面会解释为什么这个循环会和上一节的循环等价。
while循环的工作机制
让我们来看看循环的执行过程:
看起来好像比循环少了点东西啊,只有一个判断条件啊。其实这个循环也是有初始条件的,只不过在之前就已经定义好了,例如上面例子中的,至于变量的增大,则是放到了循环体里面,其实这个过程和没有什么区别,也是变量不断变大,直到判断条件不满足,则循环结束。
do while结构
结构的基本原理和结构是基本相同的,但是它保证循环体至少被执行一次。因为它是先执行代码,后判断条件。例子如下:
document.write(&The number is & +& i);
document.write(&&br /&&);
i++;
while (i &= 5)
JavaScript Break&与&Continue
可以跳出循环,跳过本次循环。
语句可以让循环中途停止,直接执行后面的代码。格式如下:
那么,当特殊情况发生的时候,循环就会立即结束。看看下面的例子,我们的菜鸟号到号在寝室打麻将
如果是的话就退出循环。
当的时候循环就会结束。
的作用是仅仅跳过本次循环,而整个循环体继续执行。它的格式如下:
上面的循环中,当特殊情况发生的时候,本次循环将被跳过,而后续的循环则不会受到影响,来看看下面的例子:菜鸟号外出学习去了。
上面的代码中,的那次循环将被跳过
JavaScript For...In循环
中的循环通常用来遍历数组
for in遍历数组
首先要了解什么是数组,所谓数组,其实就是一个保存了一组类似变量的一个集合。我们来看一个保存了爱好的数组实例:
创建一个新的数组
篮球数组中的每一个变量
输出结果如下:
我们来分析一下上面的例子:
一句创建了一个新的数组。
以及之后的两句则是给数组赋值。这与我们之前见过的变量赋值不太一样,后面多出一个,这个是变量的索引。我们之前已经说了,数组是变量的集合,因此我们在赋值之前需要指明给数组中的哪一个变量赋值。在这里,表示的是数组所包含的第一个变量,没错,数组的索引是从开始的,开始可能有点别扭,慢慢就习惯了。
最后的循环就很好理解了,
数组中的每一个变量
document.write(hobbies[x] + &&br /&&);
表示遍历数则的所有变量,并且将他们逐一输出。
JavaScript事件
我们之前提到过函数的调用。函数定义之后,默认是不会执行的,这时候就需要一些事件来触发这个函数的执行。
很多有很多事件,例如鼠标的点击、移动,网页的载入和关闭。我们先来定义一个函数,再看几个事件的实例。
统一的示例函数:
我是菜鸟我怕谁
函数的事件很简单,只是显示一条消息。
使用点击事件调用,需要给元素设置属性。示例代码如下:
&button value=&点击提交调用函数
实际效果如下,由于设置了,因此点击按钮则会调用函数。
下面再来看看鼠标移出和经过的事件。
鼠标经过、移出事件
鼠标经过事件,试着把鼠标移动到这个里面,将会调用函数。
鼠标滑过调用函数
使用鼠标经过事件调用函数的代码如下:
点击提交鼠标滑过调用函数
鼠标移出事件,试着把鼠标移动到这个里面,再移动出去,将会调用函数。
鼠标移出调用函数
使用鼠标移出事件调用函数的代码如下:
&button value=&点击提交鼠标移出调用函数
中还有很多事件,完整的列表可以看看本节笔记的参考。
JavaScript调试
try、catch
、用来调试一段可能出错的代码:
//要调试的代码
//如果出现错误将会执行这个代码块
//无论是否出错都会执行的代码
中有一些特殊的字符,如果想要在字符串中使用,需要加上一个反斜线。
遇到问题的字符串
我们在之前已经看过好多应用字符串的例子,例如
我是菜鸟我怕谁
输出将是:我是菜鸟我怕谁
现在如果我们想要输出:小明说:我是菜鸟我怕谁?。
该怎么办呢?双引号被当作标记字符串开始和结束的符号,我们怎么能在字符串里引入双引号呢看看下面这个例子。
小明说:我是菜鸟我怕谁?。
我们在双引号前面加上一个反斜线就可以了。在中有很多这样具有功能的特殊字符,如果需要把它们插入字符串都需要在前面加上一个反斜线。
特殊字符列表
特殊字符代码代码
小菜鸟:没弄明白
JavaScript&指导准则
在书写的过程中,应该记住它是区分大小写的,可以有多余空白的,使用表示本行未完。
JavaScript区分大小写(大小写敏感)
变量名和函数名都区分大小写。
空格
多余的空格是被忽略的。例如下面两个语句
他们是等价的。
表示本行未完\
前面已经说过,浏览器读到一行末尾会自动判定本行已经结束,不过我们可以通过在行末添加一个来告诉浏览器本行没有结束。
我是菜鸟我怕谁
是完全一样的。
排名:第10599名
(2)(0)(2)(5)(5)(2)(10)(8)(72)(27)(5)(4)(10)(7)(13)(1)(17)(11)(9)(13)(1)(8)(2)(2)(20)(7)(54)(5)(1)(5)学习JavaScript的必备读物 - 文章 - 伯乐在线
& 学习JavaScript的必备读物
常常有人要我推荐学习JS的书籍或者在线教程。看起来每个人都有很好的理由在JS领域有所行动。如果你对让人兴奋的工作机会很感兴趣的又想要玩一玩有意思的东西,那么JS一定是个很棒的语言。隨著JS的流行度增加,相关的书籍、博客和教程也随之大量增多,但是我不可能所有的资源都了解过,但是我看到了一些很不错的东西也想在这里分享给你。
请注意,在这里我只会推荐我已经看过的书籍,你肯定可以发现有无数的书和我推荐的一样好。
这本书一直都是我推荐书单上的第一名,也是我总和任何JS开发者建议的总放在书架上的一本书。Nicholas Zakas所写的这本书非常非常奇妙:它概括了JS这门语言主要的知识点。想要读点基本知识点?你可以在这本书里找到。想要了解JS的OOP思想?也可以在这本书里找到。想要了解文档对象模型(DOM)?这本书也可以给大家勾画一个大概。本书内容通俗易懂,从JS的基本知识到高级应用都有涉猎概括,因此我将它推荐给所有的JS开发者。
要了解现在最常见的JS设计模式,以及这些设计模式是如何恰当地管理和组织你的代码。你所选择的设计模式会成为你的应用的基石,当你在思考如何构建你的站点时,这些设计模式会扮演很重要的角色。Stoyan是这世界上最棒的JS开发者之一,他在Yahoo!和Facebook都工作过也曾参与了YUI的构建。Stoyan很了解他在做的事情,而且他致力于普及将常见的设计模式。
JavaScript面向对象,请尽情地用你的prototype来嘲笑我好了。因为JS不是传统的基于“类”的面向对象语言。如果你总是在思考原型集成(prototypal inheritance)和混入(mixin),那么你只会变得很wonky。Stoyan又走在了技术大潮的浪头上,他将这个问题划分成了小问题来解释。开始的时候他先是稳步解释了一些语言基础知识让你在实践中去学习,但是他又很快地投入到解释OOP是如何工作的,使用者要如实利用JS的语言优势来构建可重用的对象。
我们都希望我们的程序可以飞速地运行,所以我们时不时会重构优化代码。从学校学习中汲取知识很酷但是我更倾向于从前人的经验中获取资源。这本书将会告诉你如何优化你的代码以提高性能。
在我第一次看到这本书的时候,我并没有100%肯定它就是我想要,我觉得它更像是把其他JS书籍中的内容进行整合然后编写出来的。但是我看到Dojo的作者Alex Russell和Chrome Frame fame都推荐了它,我还是买下了它,现在我很庆幸当时的举动。本书的作者是Mozilla TC39的代表,同时也是(无论是学术层面上还是工业界层面上的)编程语言领域的专家。这本书的优点之一就在于,它并没有在针对JS这门语言来阐述,它所提供的种种方法是希望编程人员能发挥语言的最大作用。本书中澄清了编程语言的每一部分是怎么工作的(比如约束、柯里化或者自动添加分号)。这本书一定适合希望他们对JS的理解能够更上一层楼的编程人员。
不论你对jQuery抱有什么态度,不可否认的是John Resig(jQuery之父)确实创造除了最受欢迎JS库,同时凸显了JS的作用增加了JS的灵活性。这本书花了4年时间完成,但我觉得等待4年一点都不过分。
淘宝前端工程师 Limu 力荐
我知道大家手头比较紧,所以如果有免费的资源是最好的。我很幸运地找到了一个提供一些免费资源的站点。由创办的提供了一些质量不错的在线资源:
Addy Osmani的
许许多多的人都在博客上分享他们的故事、想法……我们很难辨认出到底要持续关注谁的博客。随着阅历的增加,我尝试着把关注的博客的数量降低,下面这些是我诚挚推荐,认为它们非常有用的:
名字已经说明了一切。这个站点提供了前后端的JS相关的新闻和教程。它还会定期整理jQuery的插件。
我并不是Nicolas的粉丝,但是他写的博客确实和他的书一样棒,他的博客中提到的JavaScript的高级应用我认为每一个开发者都要铭记在心。
David努力成为一个很优秀的开发者,他参与了MooTools和Dojo框架的开发,现在在Mozilla工作,他的博文有极高的可用性。
这也是一个集合报导和教程的站点。常常让我想到过去的Ajaxian,我常在这里寻找各种有意思的库和新的技术。
这是我唯一会留在收件箱中的邮件订阅,每一周的推送都非常的有一席。说正经的,我不知道Peter Cooper怎么能找到这么多有意思的文章。不过要小心,它可是会伤害你的生产力的。
我认为Addy是最天才的开发者之一,在他的博客中可以看到从jQuery promises到AMD的许多知识,而他发表在中的内容非常棒。
他是很年轻的开发者,但是Peter的JS知识非常丰富,我相信他会成为Web开发的中流砥柱。快去认识他吧。
你可以开始订阅Juriy的博客,他是一个生活都离不开ECMAScript的人。
我从没有和Axel Rauschmayer博士接触过,但是发现这个站点的时候我有一种“我勒个去,这哥们碉堡了”的感觉。当你阅读他的文章的时候,你就会知道为什么我会发出这样的感慨了。那些文章都写的很有深度,就像接触到了ECMAScript的底层,非常非常的有意思。
是的是的我确实带着偏爱来推荐这个站点的,但是它真的非常非常棒。只要看一看这里的文章你一定会同意我说的。:)
如果你不满足于看书和博客而是想多些一点代码,那有成千上万的课程(线上或线下)供你选择来提升自己的能力:
在这里你不仅可以找到JS的基础课程,还能找到像Backbone这样的JS框架和OOP这类话题的在线资源。
我上了由Thomas Fuchs和Amy Hoy授课的在线课程,个人认为它非常棒,特别是能直接和讲师沟通。
8个免费的视频课程帮助你学习JavaScript。
(线上和线下)
Bocoup有很棒的练习项目,他们提供了一下在线视频,但是他们的个人练习课堂才是精华所在。
Codecademy是一个最容易上手学习如何用JS编程的方式之一。它是一种交互式在线学习平台,非常有趣,你也可以和小伙伴一起来学习。
课程让您快速认识JavaScript,熟悉基本语法、窗口交互方法和通过DOM进行网页元素的操作,学会如何编写JS代码,如何运用JavaScript去操作HTML元素和CSS样式,为JavaScript深入学习打下基础。
课程从如何插入JS代码开始,学习JS基础语法、语法、函数、方法等,让你掌握JS编程思路、知识的使用等,实现运用JS语言为网页增加动态效果,达到与用户交互的目的。
本教程是 W3School JavaScript 教程的入门级版本。内容包括JS基础语法,JS HTML DOM,JS对象,JS Window,JS 库,实例和测验和参考手册。
学习一门新语言最难的地方就是找到组织。当有问题的时候你总会希望有人可以为你解答:
我和一起创建了JSMentors,希望可以提供一个安全又可以求助的地方给开发者讨论和JS相关的问题。我们想要做一个对初学者友好的站点,所以我们找了一些有名的JS专家来一同回答问题,另外组队也是很棒的想法。
我个人认为这个站点本身就是一个非常好的资源,开发者可以在上面发布他们的问题,另外它还有专门的JS的板块也有和JS相关的库比如jQuery的板块。
:汇聚 JS 优秀内容
:汇聚 CSS 优秀内容
希望今天的信息量没有多到你无法承受,有这么多学习JS的资源真是太棒了,我今天所说的只是冰山一角而已。记住,你需要选择对你最好的方式来学习以节约你的时间。JavaScript是一门很优秀的语言,只是你需要花一些时间搞清楚它的各种细微差别。谢天谢地,你有很多办法能学到这门语言,也有地方供你提问。
关于作者:
可能感兴趣的话题
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2016 伯乐在线}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信