概述:
LiveScript,最初由网景公司开发,后来这家公司被美国在线收购。
JavaScript运行在浏览器端,而Java运行服务器端
是一种直译式的脚本语言(是一种轻量级的编程语言)
脚本语言:
java源代码–> 编译.class文件 –> java虚拟机执行
脚本语言: 源码 –> 解释执行
js由浏览器解释执行
html –> 决定页面框架
css –> 美化界面
js –> 提供用户的交互
js语法组成
ECMAScript: 核心部分,定义js语法规范
DOM: doucument Object model 文档对象模型,主要用来管理页面的
BOM: browser object model 浏览器对象模型,前进,后退,页面刷新,地址栏,历史记录,屏幕宽高
js特点
变量定义的特点
1) var关键字不是必须的,可以省略,但不建议省略–>在声明时决定类型
2) 变量名可以重复定义
3) 大括号不会影响到变量的使用范围
变量弱类型:
区分大小写:
语句结束后的分号,可选:
写在script标签中:
js数据类型
基本类型 –> string number boolean undefine null
JS中只有字符串类型,没有字符类型,字符串既可以使用双引号,也可以使用单引号。
typeof操作符
- 作用:判断指定的变量数据类型
- 写法:typeof(变量名) 或 typeof 变量名
- null与undefined的区别:
null: 是一个object类型,但没有值
undefined :未初始化的类型,不知道是什么类型
引用类型
–> 对象 array boolean date math number string regexp function events/内置对象
类型转换
--> 有相应的方法
js的运算符和语句:
算术运算符
–>若不是+法,先将字符串转成数字后再计算
赋值运算符
比较运算符
== –> 只比较数值,不比较类型
=== –> 数值与类型均比较
逻辑运算符
boolean类型的运算效果
–> 对于数字,0为false 非0为true
–> 对于字符串,长度为0/null –>false,长度非0即true
–> 任何引用类型,都是true
流程控制语句
if 语句:
在一个指定的条件成立时执行代码。
if(条件表达式) {
//代码块;
}
if…else 语句
在指定的条件成立时执行代码,当条件不成立时执行另外的代码。
if(条件表达式) {
//代码块;
}
else {
//代码块;
}
if…else if….else 语句
使用这个语句可以选择执行若干块代码中的一个。
if (条件表达式) {
//代码块;
}
else if(条件表达式) {
//代码块;
}
else {
//代码块;
}
条件判断可以使用非逻辑运算符
swtich多分支
语法一:case后使用变量,与Java相同
switch(变量名) {
case 常量值:
break;
case 常量值:
break;
default:
break;
}
语法二:case后使用表达式
switch(true) { //这里的变量名写成true
case 表达式: //如:n > 5
break;
case 表达式:
break;
default:
break;
}
循环
当指定的条件为 true 时循环执行代码
while (条件表达式) {
需要执行的代码;
}
do-while语句:
最少执行1次循环
do {
需要执行的代码;
}
while (条件表达式)
for 语句
循环指定次数
for (var i=0; i<10; i++) {
需要执行的代码;
}
break和continue
break: 跳出整个循环
continue :跳出本次循环
js的输出
alert() –> 直接弹框
document.write() –> 向页面输出
console.log() –> 向控制台输出
innerHTML –> 向页面输出
获取页面元素: document getElementById(“d的名称”);
函数的使用
函数的概述
函数 –> 当其被调用时可重复的代码块
两种定义方式: 命名函数 + 匿名函数
函数的基本使用
格式
function 函数名(参数列表){
函数体;
[return 返回值]
}
注意的事项
- 形参的类型:在函数定义的时候不用指定类型,因为是可变类型
- 函数的返回值:如果一个函数中需要返回值,直接使用return返回,如果没有返回值,不写return。
- 关于函数的重载:在JS中没有函数的重载,同名的函数会覆盖原来的函数,调用的时候,只会调用最后函数,而且实参的个数与形参数的个数没有关系。
所有函数的内部都有一个隐藏数组,名字叫:arguments,用来接收调用时提交的所有的参数。
匿名函数
语法:
var 变量名 = function(参数列表) {
函数体;
}
函数调用:
//匿名函数
var sayHi = function(name) {
window.alert(“Hello, ” + name);
};
//调用
sayHi(“NewBoy”);
变量的作用域
局部 JavaScript 变量
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。只要函数运行完毕,本地变量就会被删除。
全局 JavaScript 变量
不是声明在函数体内部的变量,网页上的所有脚本和函数都能访问它。
向未声明的 JavaScript 变量来分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。 如:将声明一个全局变量,哪怕这个变量是声明在函数内部它也是一个全局变量。
事件
事件是可以被 JavaScript 侦测到的行为。网页中的每个元素都可以产生某些可以触发 JavaScript 函数的事件
组成:
事件源: 页面中,用户可以操作的内容 如:按钮,文本输入框,浏览器
事件: 用户如何操作 点击,双击,键盘
监听器: 必须和事件源绑定在一起,监听用户对事件源的操作
处理方式: 一旦事件发生,监听自动调用函数
事件的注册方式
使用命名函数
这种方式事件的注册写在标签体内
使用匿名函数
//匿名函数的写法 document.getElementById("b1").onclick = function () { alert("我是按钮,被点击了"); }常见的事件
JavaScript的内置对象
数组对象
–> 数组在JS中是一个类,通过构造方法创建对象。
数组的四种方式
数组的特点
1) 数组中的每个元素的类型是可以不同的。
2) 数组的长度可以动态变化
3) 数组中包含大量的方法,类似于Java中的集合,而Java中的数组没有方法。
常用方法
日期对象
日期对象的创建
语法
--> var myDate = new Date();
Date 对象会自动把当前日期和时间保存为其初始值
日期对象的方法
正则对象
方式1:
正则表达式是JS中是一个类:RegExp = Regular Expression 正则表达式
var reg = new RegExp("正则表达式");
方式2:
以/开头,以/结尾,中间的部分就是正则表达式
var reg = /正则表达式/;
两种方式的区别:
- 在js中,正则表达式的两种声明方式对于“\d、\D”之类的匹配模式中,前者需要转义,而后者无需转义
- 前者支持字符串拼接,支持变量,更加灵活;后者对于固定的表达式,书写起来方便快捷、更加直观。
匹配模式:
忽略大小写进行比较,两种写法:
var reg = new RegExp(“正则表达式”, “匹配模式”);
var reg = /正则表达式/匹配模式;
常用的方法
JS匹配与java不同
Java默认情况下必须要精确匹配,而在JS中默认是模糊匹配,只要字符串包含了正则表达式的内容就返回true
BOM编程
编程概述
概念
BOM:Browser Object Model 浏览器对象模型
–> 任何对象,不需创建,之间使用即可
常用对象
window 对象
BOM的核心对象是window,它表示浏览器的一个实例。
注:只要是window的方法和属性,window对象名都可以省略
与计时有关的方法
–>定时器均具有返回值,是个整数,在页面中具有唯一性
location 对象
–> 代表浏览器的地址栏对象
history 对象
–>访问浏览器之前已经访问过的页面