javascript基础 第39天

javascript是什么

Javascript主要是一门基于浏览器的客户端脚本语言。与浏览器配合完成一些特殊的行为和动作。它是基于对象的弱类型语言

脚本语言:是一种应用程序的扩展,使用户按照自己的意愿去运行,所有的基础功能都是由系统提供。大多数情况,直接解析,无需编译,有些语言小部份要编译。

Javascript能做什么?

打开新弹口的时候又跳出了一个窗口

Ajax

异步,局步数据互换ajax被开发出来。这也为后来的web2.0提供了很大的帮助。页在不需要全部重新载入,处理速度更快。

Javascript与java

许多人认为他们俩有很大的关系,实际上就语言本身来说,他们没有半毛钱关系。

可以理解为,他们没有关系。是两种不同的语言。

javascript的声明方式

浏览器可以关闭对于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+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+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>