一、javaScript入门
1.认识JavaScript
JavaScript是一种可以用来给网页增加交互性的编程语言(脚重点内容本语言)。它由LiveScript改名而来,可能是为了更好地推广这个脚本语言(利用Java语言的知名度),因此Netscape公司在最后一刻决定将它改名为JavaScript,但其实与Java没有什么关系。JavaScript是一种基于客户端浏览器的(现在也有服务器端,如NodeJS),基于对象、事件驱动式的脚本语言。JavaScript也具有跨平台的特点。如同所有的脚本语言,JavaScript是动态解释执行的。
JavaScript是由Netscape公司发明的,最后交给欧洲计算机制造商协会(ECMA),之后ECMA将JavaScript标准化。在没有JavaScript之前,互联网页面都是静态内容,就像一张张写满内容的纸,Netscape公司为了丰富互联网功能,所以在浏览器中扩展了JavaScript支持,这样就大大扩展了互联网页面的功能,使得互联网可以拥有丰富多彩的动画和用户交互,所以其代码通常会嵌入在HTML页面中。
1.1 什么是JavaScript
JavaScript是基于对象和事件驱动的语言,应用与客户端。
- 基于对象:
- java是面向对象,使用对象需要创建
- js里面提供好了一些对象,直接使用
- 事件驱动:
- 每次滑动鼠标,变换图片
- 客户端:
- 指的是浏览器
1.2 JavaScript的特点
- 交互性、安全性(JavaScript不能访问本地硬盘里面的文件)、跨平台性:
- 解释型脚本语言:
- 程序不需要编译。
- 运行时才翻译成机器语言。
- 每执行一次就要翻译一次。所以,其效率低,并且依赖于解释器(如google的v8引擎),但是具有跨平台性(在各种浏览器下都支持,并且在windows、linux等各个操作系统都能运行)。
- 弱类型语言,其变量在使用之前无须声明,由解释器在运行时检查其数据类型。
编译型语言: 程序在执行之前 需要一个专门的编译过程 ,把程序编译成为机器语言 的文件,运行时不需要重新翻译,直接使用编译结果就行了。
程序执行效率高 ,依赖编译器,跨平台性差。如C、C++等等。
1.3 JavaScript和Java的区别
Java
是sun
公司,现在是Oracle
;JavaScript是网景公司Java
是面向对象的语言,javaScript
是基于对象的语言Java
跨平台需要依靠虚拟机实现,JavaScript
只需要浏览器可以运行JavaScript
弱类型语言,java
是强类型的语言
- 比如在
Java
里面定义一个变量int a = 10;int b = "10";
不正确 - 在
JavaScript
里面定义变量都是使用一个关键字var a = 10;var b = "10"; var c = true;
- 比如在
- Java运行先编译通过虚拟机运行,JavaScript直接使用浏览器运行
1.4 JavaScript由三部分组成
- 第一部分:
ECMAScript
- 又
ECMA
组织制定语句,语法
- 又
- 第二部分:
BOM
broswer object model
:浏览器对象模型
- 第三部分:
DOM
document object model
:文档对象模型
1.5 js和html的结合方式(两种)
第一种:使用html中的标签<script type="text/javascript"> js代码 </script>
<script type="text/javascript">
alert("aaa");
</script>
第二种:使用html的标签,引入外部的js文件
<script type="text/javascript" src="js文件的路径"></script>
使用第二种方式的时候有两点注意:
- 注意一:不要在
script
标签里面写js代码了,不会执行 - 结束script标签
</script>
,不要在标签内结束
代码
<script type="text/javascript" src="1.js">
//不要在script标签里面写js代码了,不会执行
alert("aaa");
</script>
2.JavaScript语法
2.1 注释
//单行注释
/*
多行注释
*/
2.2 区分大小写
JavaScript是区分大小写的语言,关键字、变量、函数名和所有的标识符都必须采取一致大小写形式。比如,关键字“while”和“WHILE”是完全不一样的。
2.3 关键字
js把一些标识符拿出来用作自己的关键字。因此,就不能再程序中把这些关键字用作标识符了。
break delete function return typeof
case do if switch var
catch else in this void
continue flase instanceof throw while
debugger finally new true with
default for null try
//在当前版本没有使用(也作为关键字),但是在未来版本可能会使用到的一些关键字
class const enum export import super
//此外,下面这些关键字在普通的JavaScript代码中是合法的,但是在【严格模式】下是保留字
implements let private public yield
interface package protected static
//【严格模式】同样对下面的标识符的使用做了严格限制,它们并不完全是保留字,但不能用做变量名、函数名和参数名
arguments eval
//【java】中的一些关键字
abstract double goto native static
boolean enum implements package super
byte export import private synchronized
char extends int protected throws
class final interface public transient
const float long short volatile
//js中预定义的一些【全局变量】和【函数】,应当避免把它们的名字用做变量名和函数名
arguments encodeURI Infinity Number RegExp
Array encodeURIComponent isFinite Object String
Boolean Error isNaN parseFloat SyntaxError
Date eval JSON parseInt TypeError
decodeURI EvalError Math RangeError undefined
decodeURIComponent Function NaN ReferenceError URIError
2.4 标识符
标识符就是用来对变量和函数进行命名,或者用做JavaScript代码中某些循环语句中的跳转位置的标识。
标识符必须遵循以下规则:
- 标识符不能使用关键字
- 标识符可以包含字母、数字0-9、下划线(_)或美元符号($)。
- 标识符的第一个字符必须是一个字母、下划线或美元符号。
- 标识符是区分大小写的,并且没有规定最大长度。
如下标识符是合法的:
identifier
userName1
User_name
_sys_var1
$change
Public
如下标识符不合法:
1_Name
*system public