第1章 JavaScript简介

JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成:

l        ECMAScript:提供核心语言功能;

l        文档对象模型(DOM):提供访问和操作网页内容的方法和接口;

l        浏览器对象模型(BOM):提供与浏览器交互的方法与接口。

第2章 在HTML中使用JavaScript

把JavaScript插入到HTML页面中使用到<script>元素。

HTML 4.01为<script>定义了下列6个属性:

l        async:可选,表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有用。

l        charset(很少用)

l        defer:可选,表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有用。

l        language(已废弃)

l        src:可选,表示包含要执行代码的外部文件。

l        type:可选,如果没指定这个属性,这其默认值仍为text/javascript。

使用<script>元素的方式有两种:直接在HTML界面中嵌入JavaScript代码和包含外部的JavaScript文件。

注意:带有scr属性的<script>元素不应该在其<script>和</script>标签之间再包含额外的JavaScript代码。

标签位置:一般把<script>元素放在界面内容之后和结束的</body>标签之前。

使用<noscript>元素可以指定在不支持脚本的浏览器中显示的替代内容。但在启动了脚本的情况下,浏览器不会显示<noscript>元素中的任何内容。

第3章 基本概念

1、语法

与 Java 一样,变量、函数名、运算符以及其他一切东西都是区分大小写的。

标识符需要遵守两条简单的规则(采用驼峰式大小写格式):

  • 第一个字符必须是字母、下划线(_)或美元符号($)
  • 余下的字符可以是下划线、美元符号或任何字母或数字字符

2、数据类型

ECMAScript 有 5 种基本数据类型(primitive type),即

Undefined:表示变量还没有赋值,或赋予一个不存在的属性值

Null:表示变量被赋予了一个空值

Boolean:布尔值

Number:数值

String:字符串

还有一种复杂数据类型Object:一组数据和功能的集合

有3个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()。

第4章 变量、作用域和内存问题

1、ECMAScript变量可能包含两种不同数据类型的值:基本类型值(栈内存中的简单数据段)和引用类型值(堆内存中的内存,实际上保存的只是一个指针)。

确定一个值是哪种基本类型的可以使用typeof操作符,而确定一个值是哪种引用类型可以使用instanceof操作符。

2、执行环境有全局执行环境和函数执行环境之分。

内部环境可以通过作用域链访问外部环境,但外部环境不能访问内部环境中的任何变量和函数。

延长作用域链:当执行流进入下列任何一个语句时

ry-catch语句的catch块;

ith语句。

3、JavaScript是一门具有自动垃圾收集机制的编程语言,开发人员不必关心内存分配与回收问题。

第5章 引用类型

1、Object类型

创建Object实例的两种方式:

第一种是使用new操作符后跟Object构造函数,如

var person = new Object();

person.name = "Nicholas";

person.age = 29;

另一种方式是使用对象字面量表示法,如

var person = {

name : "Nicholas",

age : 29

};

2、Array类型

ECMAScript数组的每一项可以保存任何类型的数据

(1)创建数组

//使用Array构造函数

var colors = new Array();

var colors = new Array(3); //创建包含3项的数组,每一项的初值都是undefined

var colors = new Array(“red”,”blue”,”green”); //创建一个包含3个字符串值的数组

//使用数组字面量表示法

var colors = [“red”,”blue”,”green”];  //创建一个包含3个字符串的数组

(2) 访问和设置数组

alert(colors[0]);  //显示第一项

colors[2] = “black”;  //修改第三项

//数组的项数保存在其length属性中

alert(colors.length);

转换方法:数组继承的toLocaleString()、toString()和valueOf()方法,在默认情况下都会以逗号分隔的字符串的形式返回数组项。而如果使用join方法,则可以使用不同的分隔符来构建这个字符串。

数组的各种操作:

(1)使用push()和pop方法实现类似栈的行为

(2)结合使用shift()和push()方法,可以像使用队列一样使用数组。此外,unshift()与shift()的用途相反

(3)排序:反转数组项的顺序reverse()和升序sort()

(4)concat 方法

返回一个新数组,这个新数组是由两个或更多数组组合而成的。

array1.concat([item1[, item2[, . . . [, itemN]]]])

(5)slice 方法

返回一个数组的一段。

arrayObj.slice(start, [end])

(6)splice 方法

从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

3、Date类型

可以通过 new 关键词来定义 Date 对象,如

var myDate=new Date()

在调用Date构造函数而不传递参数的情况下,新创建的对象自动获取当前日期和时间。

如果想根据特定日期和时间创建日期对象,ECMAScript提供了两个方法:Date.parse()和Date.UTC()。

4、RegExp类型

使用下面的语法可以创建一个正则表达式:

var expression = / pattern / flags;

其中flags支持下面3个标志:

u      g——表示全局(global)模式

u      i——表示不区分大小写(case-insensitive)模式

u      m——表示多行(multiline)模式

5、Function类型

函数声明,如:

function sum(num1,num2){

return num1+num2;

}

函数表达式,如

var sum = function(num1,num2){

return num1+num2;

}

函数声明与函数表达式的区别:

解析器在向执行环境中加载数据时,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问);至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行。

6、内置对象

在所有代码执行之前,作用域中就已经存在两个内置对象:Global和Math。

全局变量和函数都是Global对象的属性。

Math对象为保存数学公式和信息提供了一个公共位置。

l        min()和max()方法用于确定一组数值中的最小值和最大值;

l        舍入方法ceil()、floor()、round();

l        random()方法返回介于0和1之间一个随机数,不包括0和1;

l        其他方法 Math.abs(num)返回num的绝对值、Math.sqrt(num)返回num的平方根 等等。

JavaScript高级程序设计-读书笔记(1)的更多相关文章

  1. javascript高级程序设计读书笔记-事件(一)

    读书笔记,写的很乱   事件处理程序   事件处理程序分为三种: 1.html事件2. DOM0级,3,DOM2级别  没有DOM1 同样的事件 DOM0会顶掉html事件   因为他们都是属性  而 ...

  2. javascript高级程序设计读书笔记

    第2章  在html中使用javascript 一般都会把js引用文件放在</body>前面,而不是放在<head>里, 目的是最后读取js文件以提高网页载入速度. 引用js文 ...

  3. Javascript高级程序设计读书笔记(第六章)

    第6章  面向对象的程序设计 6.2 创建对象 创建某个类的实例,必须使用new操作符调用构造函数会经历以下四个步骤: 创建一个新对象: 将构造函数的作用域赋给新对象: 执行构造函数中的代码: 返回新 ...

  4. JavaScript高级程序设计-读书笔记(7)

    第22章 高级技巧 1.高级函数 (1)安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式的字符串. ...

  5. JavaScript高级程序设计 读书笔记

    第一章 JavaScript 简介 第二章 Html中使用JavaScript 第三章 基本概念 第四章 变量,作用域,内存 第五章 引用类型 第六章 面向对象 第七章 函数表达式 第八章 BOM 第 ...

  6. JavaScript高级程序设计 读书笔记 第一章

    JavaScript是一种专门为与网页交互而设计的脚本语言 JavaScript实现 ECMAscript---核心 DOM---文档对象模型 BOM---浏览器对象模型

  7. Javascript高级程序设计读书笔记(第二章)

    第二章  在HTML中使用Javascript 2.1<script>元素 延迟脚本(defer = "defer")表明脚本在执行时不会影响页面的构造,脚本会被延迟到 ...

  8. JavaScript高级程序设计-读书笔记(6)

    第20章 JSON JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工作量 JSON的语法可以表示一下三种类型的值 l        简单值:使用与JavaScript相同的语法,可以在JS ...

  9. JavaScript高级程序设计-读书笔记(5)

    第13章 事件 1.事件流 事件流描述的是从页面中接收事件的顺序.IE的事件流是事件冒泡流,而Netscape Communicator的事件流是事件捕获流. (1)事件冒泡,即事件开始时由最具体的元 ...

  10. JavaScript高级程序设计-读书笔记(4)

    第11章 DOM扩展 1.选择符API Selector API Level 1 的核心是两个方法:querySelector()和querySelectorAll().在兼容的浏览器中,可以通过Do ...

随机推荐

  1. MySQL的表分区详解 - 查看分区数据量,查看全库数据量----转http://blog.csdn.net/xj626852095/article/details/51245844

    查看分区数据量,查看全库数据量 USE information_schema; SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PAR ...

  2. Websocket - Websocket原理(握手、解密、加密)、基于Python实现简单示例

    一.Websocket原理(握手.解密.加密) WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实 ...

  3. Java中树的存储结构实现

    一.树 树与线性表.栈.队列等线性结构不同,树是一种非线性结构. 一棵树只有一个根节点,如果一棵树有了多个根节点,那它已经不再是一棵树了,而是多棵树的集合,也被称为森林. 二.树的父节点表示法 树中除 ...

  4. 20165324 Java实验五 网络编程与安全

    20165324 Java实验五 网络编程与安全 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期:2018年5月28日 实 ...

  5. 如何使用别人的代码 (特指在MFC里面 或者推广为C++里面)

    别人写了一堆代码,给了你源代码.在C++里面 应该是  头文件(.h)和源文件(.cpp).  那么我们如何使用他们呢?? 第一步:将其包含进来 如下图  ,不论是头文件还是源文件都如此 第二步:告诉 ...

  6. Outputting Strings in the Console

    Outputting Strings in the Console #include <windows.h> class Console {public:  enum fore_color ...

  7. Embedding SQLite in a c programm

    Embedding SQLite in a c programm        The following program demonstrates how to embed SQLite into ...

  8. C# 使用windows服务发送邮件

    最近做了一个使用 C# 写了一个发送邮件的 windows 服务,在这里记录一下. 首先使用 Visual Studio 2015 创建一个 windows 服务项目. 然后在设计器上面右击添加安装程 ...

  9. ruby中的instance_eval,class_eval,eval

    ruby具有在运行时执行以字符串形式保存的代码的功能设施,eval族方法 .包括Kernel#eval,Object#instance_eval,Module#class_eval. Kernel#e ...

  10. 虚拟机Linux系统忘记密码的情况下,修改root或其他用户密码

    使用场景 linux管理员忘记root密码,需要进行找回操作. 注意事项:本文基于centos7环境进行操作,由于centos的版本是有差异的,继续之前请确定好版本. 步骤 一.重启系统,在开机过程中 ...