head first javascript

今天开始学习head first javascript,之前在慕课网和网易云课堂上都学习了javascript,但还是丈二和尚摸不着头脑,于是觉得可能是自己的基础较薄,因此选择这本简单有趣的入门读物,希望能带我入门,加油!

第一章

1.JavaScript把网页转变成了交互式应用程序;

2.<script>标签向浏览器表示以下为JavaScript,<script type="text/javascript"></script>一般放在<head>区域;

3.浏览器具有JavaScript解释器,JavaScript为解释性语言、脚本语言;JavaScript有个事件基制,事件发生时才触发代码;JavaScript不允许读写用户硬盘上的文件;

4.onload事件,在网页完成加载时触发,设置<body>标签的onload属性即可对onload事件有所响应(onload="");alert(‘Text to display‘)是一个JavaScript内置函数,负责在弹出的对话框中呈现文字信息;函数是一段执行常见任务且可重复利用的JavaScript代码,即将JavaScript打包为可重复利用的模块;

英语词汇积累:

annual [‘ænju?l] adj. 年度的;每年的 n. 年刊,年鉴;一年生植物

ZIP Code 邮政编码 ; 美国邮区编号 ; 邮递区号 ; 邮编

finder n. 发现者;探测器;

calculate vi. 计算;以为;作打算 vt. 计算;预测;认为;打算

validate vt. 证实,验证;确认;使生效

onblur n. 失去焦点事件;元素失去焦点时

virtual adj. [计] 虚拟的;实质上的,事实上的

eventhandler 事件处理程序

delimiter n. [计] 定界符

cursor  n. 光标;(计算尺的)[计] 游标,指针

interactivity n. 交互性;互动性

第二章

1.JavaScript使用三种基本数据类型:text、number、boolean;

2.变量数据可以改变,可能在脚本执行过程中改变—常量数据则是固定不变的;

3.变量名要独特且有意义;

4.数据类型在设置变量值与常量值的同时建立,变量值的类型可以改变;

5.关键字var用于创建变量,关键字const用于创建常量;

6.标识符应具有描述性,才能轻易辨别数据,还要考虑合法性;开头:字母、下划线、美元符号$+字母、下划线、$、number;标识符的独特性只需存在但以一份脚本里;

7.小写驼峰型用于构成多个字词组成的变量名称,用于变量和函数;驼峰型(首字母也大写)只会用于对象;

8.创建常量务必初始化,一段数据如果没有值,就是未定义的,undefined;只要可能,最好也做变量初始化;

9.NaN:Not a Number,NaN是个非数字的值,即使我们以为它会是个数字;

10.字符串相连与算数的加法非常不同,虽然都使用加好(+);表单数据总是储存成字符串,无论实际内容为何;

英语词汇积累:

constant  n. [数] 常数;恒量  adj. 不变的;恒定的;经常的

donut n. 炸面圈;环状线圈(等于doughnut)

unique adj. 独特的,稀罕的;[数] 唯一的,独一无二的

storage n. 存储;仓库;贮藏所

initializing 正在初始化

tax rate 税率

countdown n. 倒数计秒

identifier n. 标识符,认同者;检验人,鉴定人

CamelCase 骆驼拼写法

cents 美分

validity n. [计] 有效性;正确;正确性

integrity n. 完整;正直;诚实;廉正

logical entity 逻辑实体

validation n. 确认;批准;生效

第三章

1.定时器:setTimeout(Timer code,Timer delay);单词定时器;setInterval()间隔定时器;延迟时间必以毫秒设定;

重新加载页面:location.reload();

清除间隔定时器:clearInterval(timerID;

2.document对象代表网页本身;document.body.clientHeight与document.body.clientWidth特性里存储了客服端窗口的宽度与高度;

3.网页元素具有设定样式的style对象,width、height都是样式;

客户端窗口是浏览器窗口的一部分,只负责呈现网页;

透过document对象的body.clientWidth与body.clientHeight特性,取得客户端的宽与高;

英语词汇积累:

interval n. 间隔;间距;幕间休息

browser n. [计] 浏览器;吃嫩叶的动物;浏览书本的人

consistency n. [计] 一致性;稠度;相容性

client n. [经] 客户;顾客;委托人

第四章

1.使用if语句,有条件地运行一段JavaScript代码,if语句的条件测试句,结果必须只能为true或false;

使用if/else语句,有条件地运行一或两段JavaScript代码;

使用复合语句,如运行单一语句般运行多端JavaScript代码,以一对大括号({})围住多个单一语句,即可创建复合语句,复合语句让if/else语句的行动部分能执行多项行动。

2.注释适合提醒还有未写完的代码,在代码中加入注释说明,可使代码易懂;

使用一对斜线(//)起始单行注释,多行注释以/*起始、以*/结尾;

全局变量创建于脚本层次,超越任何函数或其他代码块,而且在脚本的终身都会存在;局部变量创建(和摧毁)于代码块内,只能在该代码内被访问,建议使用局部变量,因为它们的访问权受到严格的控制。

3.if/else语句不能再两个选项中切换。

英语词汇积累:

pseudocode 伪代码

comments 注释

compound 复合的

nested 嵌套

第五章

1.for循环能把一段JavaScript代码重复特定次数;

递增(++)与递减(——)运算符,提供更新循环计数器的便利方式;

数组能把多端数据存储在同一个地方;

虽然数组存储了多段信息,但只有一个变量名称;

索引数组透过索引(index)的数值键访问;

索引数组与循环是好搭档,让我们能用循环计数器注意处理数组里的数据。

2.break语句立即结束循环,跳过任何剩余循环代码;

boolean逻辑运算符允许你创建强大的true/false逻辑以利决策;

while循环一直运行一段代码,只要某个测试条件维持为true;

确定测试条件能够被while循环代码影响,以避免无限循环。

3.二维数组让我们以表格结构存储数据的行与列值;

访问二维数组里的一块数据时,你必须制定行与列的索引值;

嵌套循环能用于处理二维数组的数据;

就像一般数组,二维数组能从数组对象字面量创建与初始化。

第六章

1.函数让我们转换大问题至小问题,小问题较容易解决;

函数提供了分离脚本任务的机制,而后再以可再利用的程序代码块予以统合;

函数是种消减重复代码的极佳方式,应为函数里的程序代码能依你的意愿尽情重复使用;

自变量让你传递数据至函数里,作为既定任务的输入;

2.return语句让函数返回数据给调用函数的代码;

函数返回一段数据时,数据将被放到调用函数的代码中;

函数只能返回一块数据;

return语句亦可不与任何数据同用,单纯用于提早结束函数。

3.回调函数被浏览器调用,以响应发生在脚本外的事件;

函数引用能像变量般指派函数;

函数引用让我们联结JavaScript代码设计的事件处理函数,而不需改动HTML代码;

函数字面量为无名函数,在不需要有名称的函数时非常方便。

词汇积累:

reference 引用

reusability 可重用性

functionality 功能;[数] 泛函性,函数性

duplicate 重复

literal 文字的

maintainability 可维护性

第七章

1.每个表单域均可作为JavaScript对象而被访问;

在表单域对象里有个form特性,使用数组表示了整份表单的域;

onblur事件于输入焦点离开某个域时发生,它是触发数据验证函数的绝佳方式;

alert框是种很烦人的验证问题通知方式;

被动式验证辅助直觉,也比较不会骚扰用户;

字符串length特性可显示字符串包含的字符数量。

2.正则表达式以模式匹配字符串里的文本;正则表达式需以斜线围起;

除了一般文本,正则表达式亦由元字符与限定符建立,可对文本模式的匹配方式提供精细的控制;

JavaScript透过内置RegExp对象而支持正则表达式,但正则表达式通常建立为literal,所以很少见到这个对象;

RegExp对象的test()方法用于对字符串应用正则表达式模式的检测。

词汇积累:

characters  特性 描述

validate 证实,验证;确认;使生效

digits  数字

regular expression 正则表达式

metacharacter 元字符

quantifier 量词;数量词;精于计算的人

第八章

1.innerHTML虽非万维网的标准,但这个特性能访问元素内存储的所有内容;

DOM提供访问和修改网页数据的标准化机制;

DOM视网页为关联节点的层次树;

使用DOM改变网页内容的方案,需移除元素下所有子节点,然后创建并附加上包含新内容的新子节点;

2.借由改变节点的整份样式类,className节点特性达成戏剧性的样式变化;

借由访问节点的单一样式特性,style节点特性达成少量样式变化;

css样式类与JavaScript类完全无关,它们是完全不同的东西;

网页元素可利用元素对象的visibility样式特性做动态的显示或隐藏。

3.利用document对象的createElement()方法,能够创建任何HTML元素;

若需新增元素的文本内容,必须创建一个文本内容子元素,并附加至元素下;

借由小心地新增与移除DOM树上的节点,网页可以随意拆解与重组。

词汇积累:

irritating 刺激的

frazzled 疲惫的

panicked 恐慌

maddening 发狂的

第九章

1.对象是种特殊的数据结构,结合了数据与依据数据行动的程序代码;

实际上,对象只是结合成单一结构体的变量和函数;

当变量被放在对象里时,它被称为方法;

引用特性和方法时需提供对象的名称,后随点号运算符,再接上特性或方法的名称。

2.标准的JavaScript Date 对象,以毫秒表达瞬间;

标准的JavaScript对象具有一些访问各部分时间值的方法;

Date对象聪明到能够对日期做四则运算,还有比较日期;

与大部分对象相同(String对象除外),Date对象需以new运算符创建。

3.toString方法用于转换任何对象为文本表达形式;

数组和字符串事实上都是对象,依靠JavaScript的标准对象Array和String提供方法与数据存储;

Array对象的sort()方法能依任何顺序排列数组;

String对象的indexOf()方法在字符串内搜索另一个字符串,返回搜索目标的索引位置。

词汇积累:

object-oriented 面向对象

organizational object 组织对象

pseudorandom 伪随机

conundrum 谜题

第十章

1.类是对象的描述,实例则是实际的对象,根据对象描述所创建;

类勾画了对象的特性和方法,实例刚把真正的数据放在特性里以供方法使用;

关键字this用于从实例本身的程序代码内访问实例;

prototype对象让方法可储存在类内,以免实例不必要地一直复制程序代码。

词汇积累:

encapsulate 封装

instance 实例

prototype 原型

第十一章

1.虽然大多数浏览器都提供了错误控制台(记录JavaScript的错误),但并非完全准确,你不能全盘相信它们;

虽然浏览器通常产生不完全的错误信息,但通常都会提供寻找问题的线索;

围起代码块的大括号,是个常见的缺陷起源---请小心,务必确认起始与结尾括号成对出现;

大家都常犯简单的打字错误,但不见得很容易找出来---请务必检查标识符的名称。

2.语法错误关系到程序代码违反了JavaScript的语言规则,通常能被JavaScript解释器捕捉;

字符串必须小心地以成对引号或撇号围起;

在HTML事件处理器的属性里包含JavaScript代码时,应小心混用引号与撇号;

对于“在脚本中观察变量”,alert框提供了初级但好用的选项;

常见的错误:不小心把测试条件里的==写成=。

3.确定括号都成对出现;

确定围起代码块的大括号都成对出现---小心地缩排代码有助于维持成对的大括号;

努力避免打错标识符名称---变量与函数的名称如果不一致,很容易造成大问题;

在使用引号与撇号时,维持使用方式的一致;如果需要,在HTML属性中小心地混用这两个符号;

使用转义符,为字符串中具有特殊意义的字符编码,例如引号(\")或撇号(\‘);

千万绝对切莫别在想用==时误用了=。JavaScript或许不会把这点视为错误,但你的程序代码运作得将跟你想的不一样;

确定对象在被访问前已经创建---主要发生在网页元素上,网页元素要到onload事件触发的前一刻才完成创建;

别为局部变量和全局变量取相同的名称,因为局部变量将掩蔽全局变量,造成某些无法预测的行为。

词汇积累:

Syntax error 语法错误

Runtime error 运行时错误

Logic error 逻辑错误

shaded 色彩阴暗的

investigators 研究者

average 平均

calculate 计算

classification 分类

intelligence 智力

superior 优秀

genius 天才

comments 注释

typo 印刷错误

quotes 引号

curly braces 花括号

第12章

1.XMLHttpRequest 对象是处理Ajax请求的标准对象,但实在有点不好使用;

自定义AjaxRequest对象提供了使用Ajax,但不需要直接面对XMLHttpRequest对象的便利方式;

Ajax请求必为两种类型之一,GET或POST,类型由传送给服务器的数据,也是根据数据如何影响服务器决定;

sent()送出Ajax请求,造成响应。

词汇积累:

dynamic 动态的

conversation 对话

release 发布

director 导演

summary 摘要

asynchronous 异步的

response 响应

complexity 复杂

store 存储

ready state 准备状态

status  地位,状态

entry 进入

时间: 2024-10-17 16:39:45

head first javascript的相关文章

Javascript中call的使用

call 方法应用于:Function 对象调用一个对象的一个方法,以另一个对象替换当前对象.call([thisObj[,arg1[, arg2[,   [,.argN]]]]])参数:thisObj 可选项.将被用作当前对象的对象. arg1, arg2, , argN 可选项.将被传递方法参数序列. 说明:call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象.如果没有提供 thisObj 参数,那么 G

你不知道的javascript 之 &gt;&gt;

?远大于符号 在数学公式中,">>"代表远大于符号,表示一个数远大于另一个数,如76>>3,-2>>-99等.庞加莱与波莱尔1901年首先使用了它,很快被数学界所接受,沿用至今. 折叠编辑本段右移运算符 在许多计算机编程语言(例如:C语言.C++语言.Java语言.JavaScript语言.Pascal语言等)中,">>"代表右移运算符,就相当于"shr".该运算符为双目运算符,结合方向为从左到右,

初识JavaScript

JavaScript简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能.因为JavaScript兼容于ECMA标准,因此也称为ECMAScript. ECMAScript,描述了该语javascript组成言的语法和基本对象. 文档对象模型(DOM),描述处理网页内容的方法

最全解析如何正确学习JavaScript指南,必看!

划重点 鉴于时不时,有同学私信问我:怎么学前端的问题.这里统一回复一下,如下次再遇到问我此问题同学,就直接把本文链接地址发给你了. "前端怎么学"应该因人而异,别人的方法未必适合自己.就说说我的学习方法吧:我把大部分时间放在学习js上了.因为这个js的学习曲线,先平后陡.项目实践和练习啥的,我不说了,主要说下工作之外的时间利用问题.我是怎么学的呢,看书,分析源码.个人这几天统计了一下,前端书籍目前看了50多本吧,大部分都是js的.市面上的书基本,差不多都看过. 第一个问题:看书有啥好处

JavaScript数据类型检测

一.JavaScript 数据类型 1.基本数据类型(6种) Undefined Null Boolean Number String Symbol (ES6新增) 2.引用数据类型: Object 二.数据类型检测 1. typeof 可以检测除null 外的基本类型.null 和所有对象的typeof都是"object", 不能用于检测用户自定义类型. 比如Date, RegExp, Array, DOM Element的类型都是"object". var s

JavaScript的进阶之路(二)函数简介,变量、作用域和内存问题

<h3>ECMAScript中函数不存在函数签名的概念,没有重载</h3><h3>无需指定返回值,可以在任何时候返回任何值.未指定返回值的函数,返回的是一个特殊的undefined值</h3> <script type="text/javascript"> function sayHi(){ console.log("Hi"); }; sayHi(); function sayName(name,age){

JavaScript 二进制的 AST

本文和大家分享的主要是javascript中二进制的 AST相关内容,一起来看看吧,希望对大家学习javascript有所帮助. 背景介绍 多年来,JavaScript 已经从最慢的脚本语言之一,从老爷车发展为兰博基尼,不管是通过 Web 浏览器还是其他环境.它都能够快到可以运行桌面.服务器.移动甚至嵌入式应用程序. 随着 JavaScript 的增长,应用程序的复杂程度和规模都越来越复杂.然而,二十年前,少数使用过 JavaScript 的网站也就加载几千字节的 JavaScript,许多网站

JavaScript 对象

JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... 此外,JavaScript 允许自定义对象. JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 建 JavaScript 对象 通过 JavaScript,您能够定义并创建自己的对象. 创建新对象有两种不同的方法: 定义并创建对象的实例 使用函数来定义对象,然后创建新的对象实例

实现一个函数clone,使JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制

实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制. 1 /** 对象克隆 2 * 支持基本数据类型及对象 3 * 递归方法 */ 4 function clone(obj) { 5 var o; 6 switch (typeof obj) { 7 case "undefined": 8 break; 9 case "string": o = obj + &q

javascript的优美与鸡肋

--总结来自:<javascript语言精粹> 任何语言都有其优美的地方和其鸡肋的地方.避归一些语言的糟粕,能相应的降低bug出现的几率. 优美处: 函数是头等对象 基于原型继承的动态对象 对象字面量和数组字面量 糟粕: 1. 全局变量 全局变量有三种表达方式: var声明:var foo = value; 添加属性到全局对象上,即添加到window上:window.foo = value; 未经声明的变量:foo = value; 虽然变量可以未经声明就使用,但是这会导致后期的很多的bug出