JavaScript客户端脚本语言

  • 概念:一门客户端脚本语言
  • 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎
  • 脚本语言:不需要编译,直接被浏览器解析,不需要编译也就是不需要和服务器交互,实际上就是浏览器客户端的自校验。
  • 功能:
  • 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。
  • 至此这个html和CSS和JavaScript三者的不同作用已经很清楚了。
  • 发展史
  • 通过发展史可以知道其包含三个部分目前。
  • JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM),所以接下来的学习就分为三部分来学习。
  • ECMAScript
  • 基本语法
  • 与html结合的方式
  • 内部的JS:定义script标签,标签体内容就是js代码
  • 外部的JS :定义script,通过src属性引入外部的js文件
  • 注意:1、script 可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。2、可以定义多个。
  • 注释咋写
  • 单行注释://
  • 多行注释:/* */
  • 数据类型有哪些
  • 记得在java里面的数据类型分为两种,一种叫做基本数据类型,一种叫做引用数据类型。两者最大的区别就是在数据做为参数传递的时候,基本数据类型是值传递,而引用数据类型是引用传递(地址传递)。其次就是存储的地方不一样。同样的在这个里面的引用类型也有两种:1、原始数据类型(基本)。a、引用数据类型:对象。
  • 1.number:数字,整数、小数、NaN
  • 2.sting:“abc” ‘a’ ‘abc’ 单音双音无所谓
  • 3.boolean
  • 4.null
  • 5.undefined:未定义。一个变量没定义则默认赋值为undefined
  • 变量咋定义:内存空间
  • 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
  • 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。
  • 那么对于弱类型,怎么知道具体是什么类型呢。 通过方法typeof()得到
  • 语法: var 变量名=初始化的值;
  • 运算符有哪些:大概和java差不多的,不知道的就参考书查吧 逗哥特殊的全等于===
  • 一元和三元运算符:只有一个运算数的运算符 ,像++只需要一个数就可以运算的
  • +(正号)
  • ? :,var c = a>b?1:0
  • 注意:在JS中,如果运算数不是所要求的类型,那么js引擎会自动的将运算数进行类型转换。最注意的就是这个其他类型转 number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字),而且运算后的值依然是NaN。对应布尔值转number就是true为1,false为0.
  • 这里说一下这个比较运算符:由于是弱类型,所以这个比较先比较类型,类型相同直接比较,对于字符串则按位比较,对于全等于===,先比较类型,类型不同则直接返回false。
  • 流程控制语句
  • if…else …
  • switch:在java中,这个语句可以接受的数据类型byet,int ,short,char,string。但是在JS中可以接受任意的原始数据类型:代码如下
<script>
    // switch语句
    var a=true;
    switch (a){
        case 1: alert("number");
            break;
        case 'abc': alert("string");
            break;
        case undefined: alert("undefined");

        case true: alert("boolean");

        case null: alert("null");

    }
</script>
+ while
  + do...while
  + for
+ 特殊语法:如下代码
<script>
    // 特殊语法:
    /*
    * 1.语句以分号结尾,如果一行只有一条语句,分号可以省略,但是不建议这么做
    * 2.变量的定义使用var关键字,当然也可以不使用
    *      区别在于定义的变量不一样,var定义的是局部变量,不用是全局变量,作用范围不一样
    * */
    var a=3;
    alert(a)
    
    b=4;
    alert(b);
    /*
    变量的定义使用var关键字,当然也可以不使用
    *      区别在于定义的变量不一样,var定义的是局部变量,不用是全局变量,作用范围不一样
    *      意思在方法里面就可以定义了全局变量,但是不建议这样搞
    * */
    function fun() {
        c=5;
    }
    fun()
    alert(c);
</script>
  • 案例九九乘法表:代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>99乘法表</title>
    <style>
        .td{
            border: 1px solid;
        }
    </style>
</head>
<body>
<script>
    document.write("<table  align='center' width=\"50%\"  >");
    //1 基本的for循环嵌套,展示乘法表
    for (var i=1;i<=9;i++){
        document.write("<tr align='center'>");
        for(var j=1;j<=9;j++){
            if(i>=j) {
                document.write("<td class='td'>");
                // var value=i*j;
                // alert(value);
                //输出
                document.write(i + "*" + j + "=" + (i * j) + '   ');
            }
            document.write("</td>");
        }
        document.write("</tr>");
        document.write("<br>");
    }
    document.write("</<table>");
</script>
</body>
</html>
  • Function:函数(方法)对象:
  • 什么叫函数对象呢!在js中对象就是bai神一般的存在,什么都是对象,du你就这么理解好了。函数zhi是用来实现具体功能的代dao码,用一种方式把他们组织起来,就是函数了。对象是有属性和方法的一个东西,在对象中的函数就变成了方法
  • 创建
  • *var fun=new Function(形式参数列表,方法体)*错误创建方法
  • 正确:function 方法名称(形式参数列表){
    方法体
    };
//创建方式2
function fun2(a,b) {
    alert(a+b);
}
fun2(3,4);
+  var方法名=function(形参列表){
方法体;

}

var fun3=function (a,b) {
    alert(a*b);

}
fun3(3,4);
  • 方法
  • 属性
  • 特点
  • 方法定义时形参的类型不用写,写了也都是var
  • 方法的覆盖要注意,注意别写重复了,不会报错的
  • 方法是一个对象,名称相同的方法会覆盖
  • 重要和特殊:在JS中,方法的调用值与方法的名称有关,和参数列表无关。在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数如下代码
function fun2(a,b) {
    alert(a);
    alert(b);

}
//下面传递参数的多样性
fun2(1,2);
fun2(10);//访问成功
fun2();
fun2(1,2,3);
  • array对象
  • Array
  • Boolean
  • Date
  • Math
  • Number
  • String
  • RegExp
  • Global
    这几个对象自己在w3school里面好好看看记一记就行。在此不拗述了。