一.Javascript
1. 定义
基于事件和对象驱动,并具有安全性能的脚本语言。
2. 出现背景
上世纪90年代,在美国有出现,当时有上网的环境,并且有网站服务在运行。
注册服务
上图涉及的问题:
① 带宽非常浪费,往往由于一个项目部正确,其他项目被反复提交给服务器
② 用户体验不好,反复填写表单域信息,项目不正确,页面会刷新。
③ 用户等待时间比较长,带宽非常小,每次提交动作占用时间长。
针对以上问题,网景公司发明了javascript语言,最初用于在客户端对表单域项目进行验证。
3. 发明javascript语言的公司
网景公司在1995年发布了javascript语言,起初名字为livescript,在发布的前夕该名字为javascript,与sun公司的java语言打一个擦边球,这个决定也使得网景后期得到许多商业回报。
微软公司也有自己的脚本语言,名字为Jscript(是javascript的拷贝版本)
二. 使用语法规范
① 在html代码里边引入js语言
<script type=”text/javascript”>具体js代码</script>
<script type=”text/javascript” src=”js文件”></script>
② 代码大小敏感
true/false
TRUE/FALSE
③ 结束符号
每个简单语句使用”;”结束,与php类似
在javascript里边,该分号不是必须,但是推荐使用
④ 注释
// 单行注释
/*多行注释*/
⑤ 变量
其值可以发生改变的量就是变量。
变量名字命名规则:
php里边:字母、数字、下划线组成,开始有$符号标志,数字不能作为开始内容
js里边:字母、数字、下划线、$符号、汉字 等5个组成部分,数字不能作为名字的开始内容。
⑥ 数据类型
php:int float string boolean array object null resource
javascript(6种): number(int/float) string boolean null undefined object
(数组是对象的一部分)
null类型:空对象类型。
var name = “”;//声明一个变量,后期要使用一个“字符串”进行赋值
var age = 0;//声明一个变量,后期要使用一个“数字”进行赋值
var obj = null; //声明一个变量,后期要使用一个“对象”进行赋值
undefined未定义类型
使用一个没有声明的变量
object对象类型:window document
三. 数值数据类型
1.各种进制数表示
十进制: var age = 23;
八进制: var score = 023; 2*8+3=19的十进制数
十六进制: var color = 0x25; 2*16+5=37的十进制数
10:A 11:B 12:C 13:D 14:E 15:F
2. 浮点数
2. 最大数、最小数
最大:Number.MAX_VALUE;
最小:Number.MIN_VALUE;
4. 无穷大的数
四. 运算符
1. 算术运算符
2. 比较运算符
3. 逻辑运算符
3.1 && 逻辑与
两边结果都为真,结果为真
3.2 || 逻辑或
两边结果只要有一个为真,结果为真
3.3 !逻辑取非
真既假,假既真
注意点:
1)逻辑运算符最终结果
在php里边,最终结果是“布尔”结果
在javascript里边,&&和||是其中一个操作数,!是布尔结果
2)短路运算
只给执行一个操作数,不执行另一个操作数,不被执行的操作数就被短路。
三. 流程控制
顺序结构
分支选择结构:if elseif switch
循环结构:while() do{}while() for()
1. 条件表达式switch用法
switch(){
case 表达式:
分支;
case 表达式:
分支;
}
2. 两个关键字break和continue
break:在循环、switch里边有使用
跳出当前的本层循环
continue:在循环里边使用
跳出本次循环,进入下次循环
多个循环嵌套使用:
标志flag:
for1
red:
for2
for3
break/continue; //把for3给跳出 / 跳出本次的for3
//break 3;//php语法
break flag; //continue flag; 把标志对应的for循环给做跳出操作
break red; //continue red;
五. 函数
1. 什么是函数
有一定功能代码体的集合。
2. 函数的封装
2.1 传统方式
function 函数名(){}
该方式的函数有“预加载”过程,允许我们先调用函数、再声明函数
预加载:代码先把函数的声明放入内存。代码开起来是先调用、后声明,本质是先声明、后调用的。
函数名();
function 函数名(){}
函数先调用、后声明的条件是,全部代码在一个”<script>”标记里边。
2.2 变量赋值方式声明函数(匿名函数使用)
var 函数名 = function(){}
该方式没有“预加载”,必须先声明、后调用。
3. 函数的参数
function 函数名(形参1,形参2,形参3=’abc’){}
函数名(‘tom’,23,’beijing’);//传递实参信息
3.1 实参和形参的对应关系
没有默认值情况:
在php里边:实参的个数小于形参是不允许的
在javascript里边:实参与形参没有严格的对应关系
总结:
1. 数据类型:Number String Boolean Null Undefined Object
console.log(typeof 信息); 判断信息的数据类型
2. 运算符
算术、比较、逻辑、连接
3. 流程控制
switch
break/continue
4. 函数
封装
参数
3.2 关键字arguments
function 函数名(){} //函数声明没有形参
函数名(实参,实参); //调用的时候有传递实参
利用arguments可以在函数里边接收实参信息。
4. callee关键字
意思:在函数内部使用,代表当前函数的引用。
function f1(){
xxxx具体执行代码
arguments.callee(); //调用本函数(或者f1())
//都可以使得本函数执行,我们选择callee,其可以降低代码的耦合度。
xxxx执行代码
}
f1();
耦合:一处代码的修改会导致其他代码也要发生改变。
在程序项目里边要开发低耦合度的代码。
5. 函数返回值
一个函数执行完毕需要返回具体的信息,使用return关键字返回信息。
在一定层度上看,全部的数据类型(数值、字符串、布尔、对象、null)信息都可以返回
return本身还可以结束函数的执行。
在函数内部返回一个函数出来。
在javascript里边,一切都是对象
在一个函数内部,可以声明数值、字符串、布尔、对象等局部变量信息,言外之意就还可以声明函数(函数内部还要嵌套函数),因为函数是对象,并且函数可以被return给返回出来。
6. 函数调用
6.1 传统方式函数调用
函数名();
6.2 匿名函数自调用
(function(){})();
7. 全局/局部变量
7.1 全局变量
php里边:① 函数外部声明的变量。
② 在函数内部也可以声明全局变量(函数调用之后起作用)
funciton f1(){
global $title;
$title = “javascript”;
}
f1();
echo $title;
javascript里边:① 在函数外部声明的变量
② 函数内部不使用“var”声明的变量(函数调用之后起作用)
7.2 局部变量
php里边:在函数内部声明的变量
javascript里边:在函数内部声明的变量,变量前边有”var“关键字。
六. 数组
1.什么是数组
有许多变量,它们的名称和数据类型都是一致的。
2. 数组声明
var arr = [元素,元素,元素。。。];
var arr = new Array(元素,元素,元素。。。);
var arr = new Array(3);
arr[0] = 元素;
arr[1] = 元素;
3. 获取数组长度
数组.length;
4. 数组遍历
沿着一定的顺序对数组内部的元素做一次切仅做一次访问,就是遍历。
for循环 遍历
for-in遍历
5. 数组常用方法
七. 字符串
在javascript里边,字符串可以调用一些成员。
八. 神奇的eval用法
总结:
1. 函数
关键字:arguments/callee
返回值:return关键字
全部类型信息都可以返回
内部嵌套的函数也可以返回(对象赋值有体现)
函数调用:
传统方式
匿名函数自调用
(function(){})();
全局变量、局部变量
2. 数组使用
声明:3种方式
长度:length
遍历:for for-in
3. 字符串
字符串可以调用成员
4. eval语句
预习:DOM操作、事件操作