Javascript主要是一门基于浏览器的客户端脚本语言。与浏览器配合完成一些特殊的行为和动作。它是基于对象的弱类型语言
脚本语言:是一种应用程序的扩展,使用户按照自己的意愿去运行,所有的基础功能都是由系统提供。大多数情况,直接解析,无需编译,有些语言小部份要编译。
打开新弹口的时候又跳出了一个窗口
Ajax
异步,局步数据互换ajax被开发出来。这也为后来的web2.0提供了很大的帮助。页在不需要全部重新载入,处理速度更快。
Javascript与java
许多人认为他们俩有很大的关系,实际上就语言本身来说,他们没有半毛钱关系。
可以理解为,他们没有关系。是两种不同的语言。
浏览器可以关闭对于javascript的支持
Javascript他的声明方式有以下几种:
1,<script type="text/javascript">【中间写javascript脚本】</script>
2,<script type=“text/javascript” src=“【js文件】”></script>
3, href=“javascript:【javascript】;"
Hello world
使用三种不同的格式和任意位置
Javascript对于大小写绝对敏感!
变量,函数均敏感。
代码中多余的空格会被自动忽略。同一个函数,变量字母必须连在一块。一行代码可以分成多行书写。
并且可以在中间插入多行空格。但是,一定要利于读写。
进也属于空留白,空格和换行的内容。
对于不同的代码段,层次结构的代码段之间使用缩进,产生梯度方便人阅读和修改
在javascript中的分号,代表一行语句的结束。分号之后的语句是代表新的一行开始。这样能将一行中放置多个语句。
如果手动换行的情况下,分号可有可无。但是我们一般会加上。
以后,所有的脚本都加上分号
多行注释
/*
若干行代码
*/
单行注释
//
变量是指在程序运行过程中值可以发生改变的量。形象的理解,可理解为装载东西的一个容器。
Javascript的是一个弱类型语言。
在javascript中没有类似于const来声明常量的方法。
如果有人说跟你说常量,是指直接使用,而不被声明的值。
那什么是值?
1,值,在计算机中就是指一段数据。现实生活中,大千世界的所有东西,都是可以理解成为数据。那是数据的话,它总是有分类的?例如:人有男人和女人。(特例除人妖外),那计算机中呢?他对值是怎么分类的?我们将值的分类,用专业术语表示就叫作:“数据类型”!作用:用来存储数据。
数据类型
1,字符串类型
2,整型和浮点
3,布尔型
4, 不确定的类型
5,对象(比较特殊)
变量声明的特性
那在变量声明的特性:
1,严格区分大小写
2, 变量必须以字母,下划线开始,后面可跟下画线或数字,但不能用特殊字符
3,不能使用系统保留关键字
保留关键字列表
流程控制类Break,continue,for,for..in,if…else…,return,while
常用NaN,null,true,false,Infinity等
对象Array,boolean,Date,function,global,math,number,object,string
其他Delete,typeof,void,new,function,this,var,with
字符串声明
第一种形式
Var hello = ‘你好’;
第二种形式
Var hello = “你好啊”;
使用+号连接字符串和变量
Var name = ‘lamp’;
Var hello = ‘你好’;
Alert(name+hello);
字符串使用\进行转义。但有有些特殊的转义字符
转义字符作用
\n回车
\tTab制表符
\r换行,相当于回车
\‘相当于单引号
\”相当于双引号
\\相当于\
在javascript当中双引和单引作用一样,都是声时字符串或包含字符串。
特点:双引号中可以包含单引号,单引号中可以包含双引号
整型分为:
八进制 以0开始,后面接0到7
十进制 0-9
十六进制 以0x和0X开始后面接0-F
科学计数法表示中间e或E连接负或正整数
浮点,也叫双精度
也就是在小学中学的小数。
浮点是一个近似数,不要用来判断
只有真和假
也就是英语中的true和false
数组,在javascript中全称为数组对象,是属于对象类型。
还包括其他的很多对象类型,例如数学对象,字符串对象,时间对象,全局对象等。
在基础部份,我们将对象仅理解成为一个种类的功能(或方法)即可。
日期对象,与日期相关的一组功能
getDate()返回本地时间getHours()取得小时
getYear()取得年getSeconds()取得秒
getMonth()取得月getMinutes()取得分
getDay()取得日setYear()设置对象中的年
setMonth()设置对象中的月
其他类型
null 空
undefined 不确定的类型
NaN;非数字常量标识符
Javascript声明的数据是一种弱类型的数据,使用时无须指定数据类型。程序会根据程序运行情况,从一种类型转换成为另外一种类型。
举例,一个年龄与字符串相连
强制转换
parseInt() 转成整型
parseFloat() 转成浮点
数学运算符
+加+字符串连接或(正号)
-减或负号-(负号)
*乘++自加
/除--自减
%取余=赋值
关系运算符
==等于>和>=大于和大于等于
===全等<和<=小于和小于等于
!=不等instanceof
对象实例是否属于某对象
!==全不等
逻辑运算符
&&逻辑与:如果&&符两边的变量或常量都返回真,则返回真
||逻辑或:如果||两边一个为真,则为真
!逻辑非:对操作的逻辑值取反。
位运算符
与php中相同。
很少用到!!!
其他运算符
?: 条件运算符
New 创建实例对象
void 让表达示执行而忽略结果
typeof 检测类型
xxxx.length .快速存取对象属性或方法
delete删除new创建的对象
, 按顺序读取左右两边的数据
[]数组存取
this 返回当前对象的引用
运算符的优先级
流程控制
If…else
while
for
switch…case
do…while
with
for…in…
break和continue语句
While循环
For循环是记数型循环
For(表达示1;表达示2;表达示3){
要被循环的代码
}
Do..while循环
break退出循环
continue退出这一行但下一行继续执行
函数的定义
一个完成指定任务的已命名的代码段。
最小的单位就是函数
一个任务----一个功能----一个函数
函数的特点1
为什么要使用函数?
1,函数可以被反复使用,提高重用性
2, 有利于代码维护
1,函数通过函数名,只有被调用才会被执行,调用几次执行几次。
2,调用函数的过程,可以在函数之前,也可以在函数之后。
3,可以使用参数列表
4,参数的作用是是调用时改变函数的执行行为
5,函数有参数列表,在调用是给参数赋值(形参,实参)
6,函数到return后就不再执行。将结回返回至执行处
7,函数如果没有返回值仅仅是一个执行过程。
函数声明
函数声明使用
function 函数名(参数){
函数功能
Return
}
代码没有膨胀可以重复使用
有利于程序维护
函数可在页面的任意位置调用
可以使用参数列表,但不能给初值
多个参数使用逗号分隔
参数列表的作用是调用时,改变函数的执行行为。
如果函数有参数列表则调用函数时为参数赋值。
在声明函数是,声明的函数参数为形参。在调用函数时,传递的函数为实参。
函数可以有返回值
算一个平方和
在函数中使用return 返回函数结果。
将结果返回到调用处。
函数的总结
用函数名调用函数去执行函数
可以通过函数名后面的()向函数传递数据
可以把函数名看作是函数体内的返回值
一个函数遇到return就返回,不在要return后面加任何代码,没意义
变量的作用域
局部函数
在函数中声明的变量就为局部变量,只能在当前函数中使用。
参数也是局部变量。参数可以在函数声明时赋值
全局函数
在函数外部声明的变量都是全局变量,在变量声明处到页面执行结束之前都可以使用变量。页面执行结束才释放这个变量。
如果函数内部声明一个与全局变量相同的函数,则以最近的变量使用为主。
局部变量
funtion show(){
var a=10;
}
show();
alert(a);
变量函数
变是变量的值是一个函数名。
通过变量名加上(),传入对应的参数。
匿名函数
var abc=function(x,y){
return x+y;
}
alert(abc(2,3));
可变参数列表函数
arguments对象
传入的是一个数组对象。
变量函数演示说明
function demo(){
alert('@@@@');
}
var n=demo;
n();
在PHP当中使用默认参数会更简单,而在我们javascript里面需要做一个判断。用到我们之前所学的,未定义类型。
内部函数
在函数内部声明的函数,只在函数内部使用。
函数的使用
1,一种是自己定义的函数
2,系统内置的函数
(使用时需要知道以下三部份:
1,函数的功能---决定是否使用这个函数
2,函数的参数----决定函数怎么调用
3,函数的返回值----调用后怎么处理)
Javascript的函数都是在对象中的。
Javascript没有类的概念
对象
对象实例
我们该怎么做?
1,形成对象(可以自己写,也可以使用系统里面提供的)
2,通过对象形成对象实例
3, 使用对象实例中的成员
对象
Javascript是基于对象的语言。很多人在这一个地方,容易将对象,函数弄晕。
其实,仅仅是在写法上面有一些区别!
大家在这里,将javascript中的对象当成函数对待!!
只不过是在函数中加了几个特殊的关键字,在用法上面多了几种用法。
对象
第一步要写的就是形成对象。
第二步要干嘛呀?通过对象,形成对象实例。
第三步,我们要做的是使用对象实例中的成员。
形成对象实例
形成对象的话,这一步可以自己去写。也可以
使用系统提供的。
跟系统有关的功能,都是系统提供的。自己都是
写不出来的。
我们可以通过对象来形成对象实例
对象:就是一个类别内容的总结。
什么叫一个类型内容的总结呀?
假如说时间对象,系统里面提供的时间对象,数学对象,
字符串对象。
系统里对象举例
如果我想使用系统里面的时间,平方,开方,找到PI的值。
这是不是三类的东西呀?
相片放到哪个目录下,程序放到哪个目录下。
对象就是东西!
是一个类型的东西的总结。
时间对象,数学对象,字符串对象
对象有两种:
1,一种是变量(成员属性)
2,一种是函数(成员方法)
对象是一种类型是一种复合类型。(一个变量当中能存多个值。)
对象中可以有多个属性和多个方法(将相同类型和有一定关系的变量和函数组织在一起)
1,一种是自定义对象
2,一种是系统对象
声明一个时间对象
Var dt=new Date();
使用new关键字初使化date这个对象
Dt是对象实例
对象实例.成员属性
对象实例.成员方法
使用我们之前说过的this关键字。
实例化一个对象使用new关键字
用.来连接属性和方法
var abc = new Function
For…in…循环
通过in取得数组的索引集合
快速创建对象
Var a = {bcd:1,dec:2}
数组对象
为什么要使用数组?
就是让一个变量当中有多个值。
复合型数据的话,一个是我们之前所说的对象,一个是我们现在所讲的数组。
数组也是对象
需要使用new Array()来实例化一个数组对象
元素,下标,值这些概念。
创建数组的几种方式
1,var abc = new Array();
2,var abc = new Array(‘sina’,’qidian’);
3,var s = [‘’,’’,’’]
读取数组
数组对象加下标的型式
使用下标重新赋值即可
删除数组中的分元素
使用delete
数组对象的其他用法
1.html
<html>
<script>
//alert('asdfasdf');alert('bbbbbbbbbbbbbbbbbbb'); alert('aaaaaaaaaaa');
/*
多行注释
var $a='ok qi';
var a='就是不同的变量';
alert($a);
alert(a);
alert(abc);
var a='我\t来';
var b="bbb"+a;
alert(b);
var a=123456;
alert(a);
var a=1.2e5;
alert(a);
var t=2;
if(t){
alert('php.xlxz.org');
}else{
alert('this is xlxz');
}
*/
// php 类 js把php的类叫作对象
// php 对象 js把php的对象叫做对象实例
//var d=new Date();
//alert(d.getDay());
// js 变量=null 空对象类型
// js 未声明的变量 undefined
//alert(typeof(t));
//var t='1.9px';
//alert(parseFloat(t));
var a=5;
var b=6;
alert(a%b);
var a=10;
var b=a--;
alert(b);
var a=5;
var b='5';
if(a!=b){
alert('晋江老刘太坏了');
}else{
alert('说');
}
var d=new Date();
if(d instanceof Date){
alert('这是真的');
}
//|| 短路的或 | 不短路的或
var b=1;
if(true|b++){
}
alert(b);
var b=1;
if(false & b++){
}
alert(b);
var a=true?5:6;
alert(a);
var a=new Date();
delete a;
</script>
</html>
127.php
<?php
class person{
}
$p=new person();
if($p instanceof person){
echo '这是真的';
}else{
echo '这是假的';
}
?>
array.html
<script>
var d=['a','b','c','d'];
var f=new Function();
var str=new String('abc');
alert(str);
var d=new Array('a','b','d','d');
for(i=0;i<d.length;i++){
document.write(d[i]+'<br>');
}
alert(Math.random());
</script>
function.html
<script>
function demo(a,b){
if(typeof(a)=='undefined'){
a=1;
}
if(typeof(b)=='undefined'){
b=2;
}
return a+b;
}
var t=demo();
alert(t);
//函数体外声明的均为全局变量,函数体内声明的全为局部变量
var t=10;
function demo(){
t=20;
t+=1;
alert(t);
}
demo();
alert(t);
var a=function(data){
alert(data);
}
a();
jia(5,6,t);
function jia(num1,num2,callback){
var t=num1+num2+callback(num1,num2);
alert(t);
}
function t(a,b){
return a*b;
}
ys(2,3,function(a,b){
return a*b;
});
function ys(num1,num2,callback){
var t=num1+num2+callback(num1,num2)
alert(t);
}
function chu(a,b){
return a/b;
}
</script>
hello.js
alert('welcom php.xlxz.org');
if.html
<script>
var a=2;
if(a==1){
alert('if还是那个if');
}else if(a==2){
alert('星星还是那个星星');
}else if(a==3){
alert('月亮还是那个月亮');
}
document.write('<table width="800" border="1">');
var i=0;
while(i<10){
if(i%2){
document.write('<tr>');
}else{
document.write('<tr bgcolor="pink">');
}
var j=0;
while(j<10){
document.write('<td>'+(i*10+j)+'</td>');
j++;
}
document.write('</tr>');
i++;
}
document.write('</table>');
var d=new Date();
var j=d.getDay();
var str='';
switch(j){
case 0:
str='星期日';
break;
case 1:
str='星期一';
break;
case 2:
str='星期二';
break;
case 3:
str='星期三';
break;
case 4:
str='星期四';
break;
case 5:
str='星期五';
break;
default:
str='星期六';
break;
}
document.write(str);
for(var i=0;i<10;i++){
document.write(i+'<br>');
}
do{
document.write('先套麻袋');
}while(false);
with(document){
write('1111111111111');
write('22222222222');
write('333333333333333');
}
//document
for(a in document){
document.write(a+' '+document[a]+'<br>')
}
</script>
json.html
<script>
var person={name:'张三',sex:'男',age:18,je:10000.00,say:function(){
alert(this.name+this.sex+this.age);
}}
for(a in person){
document.write(a+' '+person[a]+'<br>');
}
</script>
jw.html
<script>
var t=[
['a','b','c'],
['d','e','f'],
'hh',
'tt'
];
delete t[0][1];
for(i=0;i<t.length;i++){
if(typeof(t[i])=='object'){
for(j=0;j<t[i].length;j++){
if(typeof(t[i][j])=='undefined'){
continue;
}
document.write(t[i][j]+'<br>');
}
}else{
document.write(t[i]+'<br>');
}
}
/*
for(a in t){
for(b in t[a]){
document.write(b+'------------'+t[a][b]+'<br>');
}
}
*/
</script>
kb.html
<script>
function demo(){
var t=arguments; //func_get_args();
var s=0;
for(i=0;i<t.length;i++){
s+=t[i];
}
alert(s);
}
demo(1,2,3,4,5,6,7,8,9,10);
</script>
ms.php
<?php
$str='1234567';
$str[$str[2]]=6;
echo $str;
?>
nb.html
<script>
//可以在调用处的上面,也可以在下面
//做人就要像js的内部函数,可上可下
function demo(n,m){
function jia(i,j){
return i+j;
}
var jj=n+m+jia(n,m);
alert(jj);
}
demo(3,4);
</script>
object.html
<script>
var person=new Object();
person.name='上课';
person.stat='很开心';
person.home='下了';
person.mp='谁';
person.say=function(){
alert(this.name+this.stat+this.home);
}
person.haha=function(){
alert('队'+this.mp);
}
person.happy=function(){
alert('心');
}
person.say();
</script>
object2.html
<script>
function person(name,sex,age){
this.name=name;
this.sex=sex;
this.age=age;
this.say=function(){
alert('我叫'+this.name+'我的性别是'+this.sex+'我的年龄是'+this.age);
}
this.sj=demo;
}
function demo(){
alert(this.name+'php睡觉');
}
var p1=new person('www','php',15);
var p2=new person('php','xlxz',20);
p2.say();
</script>