定义:
JavaScript
是一门
基于原型、函数先行
的语言,是一门
多范式
的语言,它支持
面向对象编程
,
命令式
编程,以及
函数式编程
。它提供语法来操控文本、数组、日期以及
正则表达式
等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。
JavaScript虽与Java有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了
Self
(一种基于原型的编程语言)和
Scheme
(一门函数式编程语言)的影响。在
语法结构
上它又与
C语言有很多相似
(例如if条件语句、while循环、switch语句、do-while循环等)。
JavaScript
一种直译式
脚本语言
,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的
解释器
被称为
JavaScript引擎
,为浏览器的一部分,广泛用于客户端的
脚本语言
,最早是在HTML(标准
通用标记语言
下的一个应用)网页上使用,用来给HTML网页增加动态功能。
l
JavaScript
是可插入
HTML
页面的编程代码。
l
JavaScript
插入
HTML
页面后,可由所有的现代浏览器执行。
JavaScript
与
Java
是两种
完全不同
的语言
javascript
作用:
我们通过
javascript
可以
改变
html
内容
,
改变
html
样式
,
进行
验证输入
等。
javascript
组成:
javascript
的
核心
ECMAScript
描述了语言的语法和基本对象。
一个完整的
javaScript
实现是由下面
三个
不同部分组成的。
1)核心 (ECMAScript)
2)文档对象模型(DOM)
3)浏览器对象模型(BOM)
导入
js
方式
在
html
页面中直接插入
javascript:
如需在
HTML
页面中插入
JavaScript
,请使用
<script>
标签。
<script>
和
</script>
会告诉
JavaScript
在何处开始和结束。
<script>
和
</script>
之间的代码行包含了
JavaScript
如:
<script type="text/javascript">
alert("好有趣")
</script>
注意
:
<script>
标签可以出现在
html
页面的任意位置,但实际操作中,一般会写在
<head>
标签中。
.
引入外部的
javascript:
有时,你也许希望在若干个页面中运行
JavaScript
,同时不在每个页面中写相同的脚本。
为了达到这个目的,你可以将
JavaScript
写入一个外部文件之中。然后以
.js
为后缀保存这个文件。
例如
:
<script type="text/javascript" src="${pageContext.request.contextPath }/indext.js"></script>
注意
:外部的js文件中不能包含<script>标签。在导入外部js文件的<script>标签中不能在写javascript代码。
J
avascript
基础语法
-
变量声明:
变量是用于存储信息的容器
javascript
中的变量与我们在
java
中的变量
一样。
在
javascript
中使用用
var
运算符(
variable
的缩写)加变量名定义的
JavaScript
变量名称的规则:
变量对
大小写
敏感(
y
和
Y
是两个不同的变量)
变量
必须
以
字母或下划线开始
(重点)
注意:
由于
JavaScript
对大小写敏感,变量名也对大小写敏感。
J
avascript
基础语法
-
数据类型
在
ECMAScript
中,变量可以存在两种数据类型,即
原始类型
与
引用类型
。
原始类型:
原始类型,
可以理解成是一个
值类型
。简单说,就是一个字面值,它是不可变的,例如
: 10
“
abc
”
Ø
ECMAScript
有
五种原始类型:
l
String
在
javascript
中字符串字符串字面值,可以使用单引号或双引号声明。
l
Number
在
javascript
中任何数字都看成是
Number
类型,它即可以表示
32
位整数,也可以表示
64
位浮点数。八进制首数
字必须是
0,
十六进制使用
0x
开始。
l
Boolean
它有
两个值
true
和
false.
l
Undefined:
该类型
只有
一个值
undefined.
表示的是
未初始化
的变量
l
Null
该类型
只有
一个值
null,
表示
尚未存在
的对象。
值
undefined
实际上是从值
null
派生出来的。因此
null==undefined
得到的结果是
true.
Ø
对变量或值调用
typeof
运算符将返回下列值之一:
- undefined - 如果变量是 Undefined 类型的
- boolean - 如果变量是 Boolean 类型的
- number - 如果变量是 Number 类型的
- string - 如果变量是 String 类型的
- object - 如果变量是一种引用类型或 Null 类型的
引用类型:
引用类型通常叫做
类
(class),
也就是说,遇到
引用值
,所处理的就是
对象
。
从传统意义上来说,
ECMAScript
并不
真正
具有类。
ECMAScript
定义了
“
对象定义
”
,逻辑上等价于其他程序设计语言中的
类
。
对象是由
new
运算符加上要实例化的对象的名字创建的
var obj=new Object();
Object
对象
自身用处不大,但是
ECMAScript
中的
Object
对象与
Java
中的
java.lang.Object
相似
,
ECMAScript
中的所有对象都由这个对象
继承
而来,
Object
对象中的所有属性和方法都会出现在其他对象中
常用的
javascript
对象有
Boolean、Number、Array、String、Date、Math、RegExp.
J
avascript
基础语法
-
类型转换:
ECMAScript
为开发者提供了大量的
类型转换
方法。
Boolean
值、数字和字符串的原始值它们是伪对象,这意味着它们实际上具有属性和方法。
Ø
转换成字符串:
toString()
方法
.
Ø
转换成数字:
ECMAScript
提供了两种把非数字的原始值转换成数字的方法,即
parseInt()
和
parseFloat()
。前者把值转换成
整数
,后者把值转换成
浮点数
。
只有
对
String
类型调用这些方法,它们才能正确运行;对
其他类型
返回的都是
NaN
。
Ø
强制类型转换:
使用强制类型转换可以访问
特定
的值。
ECMAScript
中提供了
三种
强制类型转换:
1.
把给定的值转换成
Boolean
类型
2.
把给定的值转换成
数字
3.
把给定的值转换成
字符串
J
avascript
基础语法
-
运算符与表达式:
Ø
一元运算符:
++
自加
--
自减
void
运算符
void
运算符对任何值返回
undefined
。该运算符通常用于避免输出不应该输出的值,
例如
,从
HTML
的
<a>
元素调用
JavaScript
函数时。要正确做到这一点,函数
不能
返回有效值,
否则
浏览器将清空页面,
只
显示函数的结果
1
:
<a href="javascript:void(0)">
点我试一试
</a>
如果
把这行代码放入
HTML
页面,点击其中的链接,即可看到屏幕上显示
"
[object]
"
。这是因为
window.open()
方
法返回了新打开的窗口的引用。然后该对象
将被
转换成要显示的字符串。要避免这种效果,可以用
void
运
算符调用
window.open()
函数:这使
window.open()
调用返回
undefined
,它不是有效值,
不会显示在浏览器窗口中。
提示:
请记住,
没有
返回值的
函数
真正返回的都是
undefined
。
Ø
逻辑运算符:
逻辑运算会有
三种
NOT
AND
OR
l
逻辑
NOT
运算符
如果运算数是对象,返回
false
如果运算数是数字
0
,返回
true
如果运算数是
0
以外的任何数字,返回
false
如果运算数是
null
,返回
true
如果运算数是
NaN
,返回
true
如果运算数是
undef
[p
ined
,发生错误
l
逻辑
OR
运算符
运算数 1
|
运算数 2
|
结果
|
true
|
true
|
true
|
true
|
false
|
true
|
false
|
true
|
true
|
false
|
false
|
false
|
Ø
关系运算符:
关系运算符有
>(
大于
)、<(
小于
) 、>=(
大于等于
)、 <=(
小于等于
)
,
它们的运算结果返回的是一个
boolean
值。
常规比较
如果是数学,那么比较与我们在
java
中操作一样。
如果是两个字符串使用关系运算符操作,那么我们可以简单理解成是按照字母的
码值
来比较。
比较容易理解的是根据字母
顺序
,在前的字母比在后的小,所有的小写字母都
大于
大写字母。
比较数字或字符串:
如果两个数字字符串比较,例如
:
”
23
”
<
”
3
”
,
它们也是按照数字在码表中的
码值
来比较
.
如果一个是数字一个是字符串,那么会将字符串
转换成
数字在进行比较。
Ø
等性运算符:
ECMAScript
提供了
两套
等性运算符:等号与非等号用来处理
原始值
,全等号与非全等号来处理
对象
。
全等号
由三个等号(
===
)表示,只有在
无需
类型转换运算数就相等的情况下,才返回
true
。
非全等号
由感叹号加两个等号(
!==
)表示,只有在
无需
类型转换运算数不相等的情况下,才返回
true
。
Ø
三元运算符:
在
js
中也存在
三元运算符
,与
java
中使用方式
一样
。
例如
:
var
max
= (
num1
>
num2
) ?
num1
:
num2
;
这个表达式描述的就是如果
num1
大于
num2
,那么
max
的值就是
num1,
返回值
max
的结果就是
num2.