1.为什么要学习JavaScript?

JavaScript 是 web 开发者必学的三种语言之一:

(1)HTML 定义网页的内容

(2)CSS 规定网页的布局

(3)JavaScript 对网页行为进行编程;

2.JavaScript 能够改变 HTML 内容

(1)getElementById() 是多个 JavaScript HTML 方法之一。

eg: 

document.getElementById('id名').innerHTML='hello'

3.<script> 标签

在 HTML 中,JavaScript 代码必须位于 <script> 与 </script> 标签之间。

 4.javascript的输出

JavaScript 显示方案

JavaScript 能够以不同方式“显示”数据:

1. 使用 window.alert() 写入警告框

2. 使用 document.write() 写入 HTML 输出

3. 使用 innerHTML 写入 HTML 元素

4. 使用 console.log() 写入浏览器控制台

在 HTML 文档完全加载后使用 document.write() 将删除所有已有的 HTML

 5.javascript语句

在 HTML 中,JavaScript 语句是由 web 浏览器“执行”的“指令”。

JavaScript 程序:

计算机程序是由计算机“执行”的一系列“指令”。

在编程语言中,这些编程指令被称为语句。

JavaScript 程序就是一系列的编程语句。

注释:在 HTML 中,JavaScript 程序由 web 浏览器执行。

JavaScript 语句由以下构成:值、运算符、表达式、关键词和注释。

 6.JavaScript 值

JavaScript 语句定义两种类型的值:混合值和变量值。

混合值被称为字面量(literal)。变量值被称为变量。

 7.JavaScript 变量

在编程语言中,变量用于存储数据值。

JavaScript 使用 var 关键词来声明变量。

= 号用于为变量赋值。

8.JavaScript 运算符

JavaScript 使用算数运算符(+ - * /)来计算值:

9.JavaScript 表达式

表达式是值、变量和运算符的组合,计算结果是值。

10.JavaScript 字符集

JavaScript 使用 Unicode 字符集。

Unicode 覆盖世界上几乎所有的字符、标点和符号。

11.JavaScript 标识符

所有 JavaScript 变量必须以唯一的名称的标识。

这些唯一的名称称为标识符。

标识符可以是短名称(比如 x 和 y),或者更具描述性的名称(age、sum、totalVolume)。

构造变量名称(唯一标识符)的通用规则是:

1. 名称可包含字母、数字、下划线和美元符号

2. 名称必须以字母开头

3. 名称也可以 $ 和 _ 开头(但是在本教程中我们不会这么做)

4. 名称对大小写敏感(y 和 Y 是不同的变量)

5. 保留字(比如 JavaScript 的关键词)无法用作变量名称

6. 提示:JavaScript 标识符对大小写敏感。

12.重复声明 JavaScript 变量

如果再次声明某个 JavaScript 变量,将不会丢它的值。

在这两条语句执行后,变量 carName 的值仍然是 "porsche":

eg:

var carName = "porsche";

var carName;

 13.typeof运算符

typeof [1,2,3,5,6]       //object

typeof 运算符把数组返回为 "object",因为在 JavaScript 中数组即对象。

14.JavaScript 函数

JavaScript 函数是被设计为执行特定任务的代码块。

JavaScript 函数会在某代码调用它时被执行。

函数调用

函数中的代码将在其他代码调用该函数时执行:

1. 当事件发生时(当用户点击按钮时)

2. 当 JavaScript 代码调用时

3. 自动的(自调用)

函数返回

当 JavaScript 到达 return 语句,函数将停止执行。

如果函数被某条语句调用,JavaScript将在调用语句之后“返回”执行代码。

15.javarscript对象

对象也是变量。但是对象包含很多值。

空格和折行都是允许的。对象定义可横跨多行:

eg:

var person={

    name:'lili',

    age:18

}

访问对象属性:

1. objectName.propertyName

2. objectName["propertyName"]

访问对象方法:

您能够通过如下语法访问对象方法:

objectName.methodName()

方法实际上是以属性值的形式存储的函数定义。

请不要把字符串、数值和布尔值声明为对象!

16.JavaScript事件

HTML事件是发生在HTML元素上的“事情”。

当在HTML页面中使用JavaScript 时,JavaScript 能够“应对”这些事件。

HTML事件

HTML事件可以是浏览器或用户做的某些事情。

下面是 HTML 事件的一些例子:

1. HTML 网页完成加载

2. HTML 输入字段被修改

3. HTML 按钮被点击

通常,当事件发生时,用户会希望做某件事。

JavaScript 允许您在事件被侦测到时执行代码。

通过JavaScript代码,HTML允许您向HTML元素添加事件处理程序。

常见的 HTML 事件

下面是一些常见的 HTML 事件:

1. onchange HTML 元素已被改变

2. onclick  用户点击了 HTML 元素

3. onmouseover  用户把鼠标移动到 HTML 元素上

4. onmouseout   用户把鼠标移开 HTML 元素

5. onkeydown    用户按下键盘按键

6. onload   浏览器已经完成页面加载

JavaScript能够做什么?

事件处理程序可用于处理、验证用户输入、用户动作和浏览器动作:

  • 每当页面加载时应该做的事情
  • 当页面被关闭时应该做的事情
  • 当用户点击按钮时应该被执行的动作
  • 当用户输入数据时应该被验证的内容

让 JavaScript 处理事件的不同方法有很多:

1. HTML 事件属性可执行 JavaScript 代码

2. HTML 事件属性能够调用 JavaScript 函数

3. 您能够向 HTML 元素分配自己的事件处理函数

4. 您能够阻止事件被发送或被处理

 17.JavaScript 字符串

JavaScript 字符串用于存储和操作文本

其他六个 JavaScript 中有效的转义序列:

1. \b   退格键

2. \f   换页

3. \n   新行

4. \r   回车

5. \t   水平制表符

6. \v   垂直制表符

18.JavaScript 字符串方法

(0)返回字符串索引

1.indexOf() 方法返回字符串中指定文本首次出现的索引(位置)

2.lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引:

如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1。

3.search()方法返回字符串中指定文本第一次出现的位置,没有找到返回-1

两种方法,indexOf() 与 search(),是相等的。

这两种方法是不相等的。区别在于:

  • search() 方法无法设置第二个开始位置参数。
  •  indexOf() 方法无法设置更强大的搜索值(正则表达式)。

 

(1)提取部分字符串

有三种提取部分字符串的方法:

1. slice(start, end)

2. substring(start, end)

3. substr(start, length)

slice()方法:不会改变原字符串,返回的是截取的字符串

提取字符串的某个部分并在新字符串中返回被提取的部分。

slice(startindex,endindex)

注意:

如果某个参数为负,则从字符串的结尾开始计数

如果省略第二个参数,则该方法将裁剪字符串的剩余部分

 

substring() 方法:不会改变原字符串,返回的是截取的字符串

substring(startindex,endindex)

substring() 类似于 slice()。

注意:

不同之处在于 substring() 无法接受负的索引。

如果省略第二个参数,则该 substring() 将裁剪字符串的剩余部分。

 

substr() 方法:不会改变原字符串,返回的是截取的字符串

substr(startindex,length)

substr() 类似于 slice()。

注意:

不同之处在于第二个参数规定被提取部分的长度。

如果首个参数为负,则从字符串的结尾计算位置。

第二个参数不能为负,因为它定义的是长度,可以不写,默认去后面所有。

 

(2)替换字符串内容

1.replace() 方法用另一个值替换在字符串中指定的值

replace(旧值,新值)  不会改变原字符串,返回的是新字符串

注意:

replace() 对大小写敏感

如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感):

eg:

str = "Please visit Microsoft!";

var n = str.replace(/MICROSOFT/i, "W3School");

请注意正则表达式不带引号。

默认只会替换第一个值,使用/g可以全局匹配替换

如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索)

eg:

str = "Please visit Microsoft and Microsoft!";

var n = str.replace(/Microsoft/g, "W3School");

(3)转换为大写和小写

1.toUpperCase() 把字符串转换为大写,不会改变原字符串

2.toLowerCase() 把字符串转换为小写,不会改变原字符串

 

(4)concat() 方法   连接两个或多个字符串

所有字符串方法都会返回新字符串。它们不会修改原始字符串。

正式地说:字符串是不可变的:字符串不能更改,只能替换。

 

(5)String.trim()

trim()方法删除字符串两端的空白符

注意:

Internet Explorer 8 或更低版本不支持 trim() 方法。

如需支持 IE 8,您可搭配正则表达式使用 replace() 方法代替:

eg:

var str = "       Hello World!        ";

alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

(6)提取字符串字符

这是两个提取字符串字符的安全方法:

charAt(position)

charCodeAt(position)

1.charAt() 方法返回字符串中指定下标(位置)的字符串:

2.charCodeAt()方法返回字符串中指定索引的字符 unicode 编码

(7)属性访问(Property Access)

ECMAScript 5 (2009) 允许对字符串的属性访问 [ ]:

eg:

var str='qwrqwer qewr'

console.log(srt[0])     //q

使用属性访问有点不太靠谱:

1. 不适用 Internet Explorer 7 或更早的版本

2. 它让字符串看起来像是数组(其实并不是)

3. 如果找不到字符,[ ] 返回 undefined,而 charAt() 返回空字符串。

4. 它是只读的。str[0] = "A" 不会产生错误(但也不会工作!)

 

(8)split() 把字符串转换为数组

eg:

var txt = "a,b,c,d,e";   // 字符串

txt.split(",");          // 用逗号分隔

txt.split(" ");          // 用空格分隔

txt.split("|");          // 用竖线分隔