JavaScript

ECMAScript:客户端语言的标准

  1  基本语法:

    1  与html的结合方式

      1  内部JS

        定义<script>,标签体内容就是js代码

      2  外部JS

        定义<script>,同过src属性引入外部的js文件

      *注意:1  <script>可以定义在html页面的任何地方,但是定义的位置会影响执行顺序

           2  <script>可以定义多个

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script> alert("helloworld")</script> <!-- 内部JS -->>
<script src=h.js></script> <!-- 外部JS -->>
</body>
</html>

      

    2  注释

      1  单行注释:  //

      2  多行注释:  /* */

    3  数据类型

      1  原始数据类型(基本数据类型)

        1  number:数字  整数/小数/NaN(not a number  一个不是数字的数字类型)

        2  string:字符串  字符串

        3  boolean:true和false

        4  null:一个对象为空的占位符

        5  undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined

      2  引用数据类型:对象

    4  变量

      *变量:一小块存储数据的内存空间

      *Java语言是强类型语言,而JavaScript是弱类型语言

        *强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据

        *弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据

      *语法:

        *var 变量名 = 初始化值;

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script>
    //number类型
    var num1=1;
    var num2=1.1;
    var num3=NaN;
    //string类型
    var str1="abc";
    var str2='abc';
    var str3=null;
    //boolean类型
    var flag=false;
    //null和undefined
    var obj=null;
    var obj1=undefined;
    var obj2;
    
    //输出
    document.write(num1+"---"+typeof(num1)+"<br>");
    document.write(num2+"<br>");
    document.write(num3+"<br>");
    document.write(str1+"<br>");
    document.write(str2+"<br>");
    document.write(str3+"<br>");
    document.write(flag+"<br>");
    document.write(obj+"<br>");
    document.write(obj1+"<br>");
    document.write(obj2+"<br>");
    
</script>  

</body>
</html>

 

    5  运算符

      1  一元运算符:只有一个运算数的运算符

        ++  --,

        +(正号) -(负号)

       *注意:在JS中,如果运算数不是运算符所要求的类型,那么JS引擎会自动的将运算数进行类型转换

       *其他类型转number:

        * string转number:按照字面值转换。如果字面值不是数字,则转为NaN

        *boolean转number: true转为1,false转为0

      2  算数运算符

        + - * / % ...

      3  赋值运算符

        = +=...

      4  比较运算符

        >  <  >= <=  ==  ===(全等于)

        *比较方式:

          1  类型相同,直接比较

            *字符串,按照字典顺序比较,按位逐一比较,直到得出大小为止。

          2  类型不同,先进行类型转换,再比较

            *===,全等于,在比较之前,先判断类型,如果类型不一样,直接返回false

      5  逻辑运算符

        && || !

          *其他类型转boolean

            1  number,0或NaN为假,其他为真

            2  string  除了空字符串(“”),其他都是true

            3  null和undefined  都是false

            4  对象  所有对象都为true

      6  三元运算符

        ? :

        var a=3;

        var b=4;

        var c=a>b?1:0;

    6  流程控制语句

      1  if...else

      2  switch

        *在java中,switch语句可以接收的数据类型:byte,int,short,char,枚举,String

        *在js中,switch语句可以接收任意的原始数据类型

      3  while

      4  do...while

      5  for

  2  基本对象:

    Function:函数对象

      1  创建

      2  方法

      3  属性

      4  特点

      5  调用

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script>
/*
         Function:函数对象 
 
      1  创建
                1. function 方法名称(形参列表){
             方法体
         }
                2. var 方法名=function(形参列表){
                    方法体
                }
      2  方法
      3  属性
                  length:代表形参的个数
      4  特点
                  1. 方法定义时,形参的类型不用写,返回值类型不用写
              2. 方法是一个对象,如果定义名称相同的方法,会覆盖
                  3. 在js中,方法的调用只与方法的名称有关,和参数列表无关
                  4. 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数
           5  调用 
                方法名称(实际参数列表);
 
            //创建方式
            function fun2(a,b){
                alert(a+b);
            }
            fun(3,4);
 * 
 */
    //创建方式1
    function fun1(a,b){
        alert(a+b);
    }
    fun1(3,4);
    //创建方式2
    var fun2=function(a,b){
        alert(a+b);
    }
    fun2(3,4);
    //求任意个数的数的和
    function fun3(){
        var sum=0;
        for(var i=0;i<arguments.length;i++)
            {
                sum+=arguments[i];
            }
        return sum;
    }
    var sum=fun3(1,2,3);
    alert(sum);
 </script>
<body>

</body>
</html>

 

    Array

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script>
/*
 * 
     Array:数组对象
     1. 创建
         1. var arr=new Array(默认长度);
         2. var arr=[元素列表];
         3. var arr=new Array(元素列表);
     2. 方法
         1. join(参数):将数组中的元素按照指定的分隔符拼接为字符串
         2. push():向数组的末尾添加一个或更多的元素
     3. 属性
         1. length  数组的长度
     4. 特点
         1. js中,数组元素的类型是可变的
         2. js中,数组的长度可变
         */
 
        //1. 创建方式
        var arr1=new Array(1,2,3);
         var arr1=new Array(5);
         var arr1=new Array[1,2,3,4];
</script>
<body>

</body>
</html>

 

    Boolean

    Date

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script>
/*
 * 
     Date: 日期对象
        1  创建:
            var Date=new Date();
        2 方法:
            toLocaleString():返回当前date对象对应的时间本地字符串格式
             getTime():获取毫秒值。返回当前日期对象描述的时间到1970年1月1日零点的毫秒值差
            */
         var date=new Date();
         document.write(date+"<br>");
        document.write(date.toLocaleString()+"<br>");
        document.write(date.getTime()+"<br>");
         </script>
<body>

</body>
</html>

 

    Math

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script>
    /*
        Math:数学
            1  创建:
                *特点:Math对象不用创建,直接使用
                Math.方法名();
            2 方法:
                1 random()  返回0~1之间的随机数,左闭右开                    
                2 ceil(x);    对数进行上舍入
                3 floor(x); 对数进行下舍入
                4 round(x); 把数四舍五入为最接近的整数
            3 属性:
                PI
                
    */
    document.write(Math.random()+"<br>");
    document.write(Math.PI+"<br>");        
    document.write(Math.round(3.14)+"<br>");
    document.write(Math.random()+"<br>");
    document.write(Math.random()+"<br>");
    
    /*
    取1~100之间的随机整数
    */
    var ran=Math.random()*100;
    ran=Math.floor(ran)+1;
    document.write(ran);
    
</script>
<body>

</body>
</html>

 

    Number

    String

    RegExp

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script>
    /*
    RegExp:正则表达式对象
        1 正则表达式:定义字符串的组成规则
            1 单个字符:[]
                如: [a] [ab] [a-zA-Z0-9_]
                *特殊符号代表特殊含义的单个字符:
                    \d:单个数字字符 [0-9]
                    \w:单个单词字符 [a-zA-Z0-9_]
            2 量词符号:
                * 表示出现0次或多次
                +出现1次或多次
                ? 表示出现0次或1次
                {m,n}:表示m<=数量<=n
                    * m如果缺省 {,n}:最多n次
                    * n如果缺省 {m,}:最少m次
                
                \w* 单个字符出现0次或多次
        2  正则对象
            1 创建
                1 var reg=new RegExp("正则表达式");
                2 var reg=/正则表达式/;
            2 方法
                1 test(参数):验证指定的字符串是否符合正则定义的规范
        3 开始结束符号
             ^:开始
             $:结束
            
    */
    var reg=new RegExp("^\\w{6,12}$");
    var reg2=/^\w{6,12}$/;
    //alert(reg);
    //alert(reg2);
    var username="zhangsan";
    var flag=reg2.test(username);
    alert(flag);
</script>
<body>

</body>
</html>

 

    Global

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script>
    /*
    Global
        1 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用
        2 方法:
            1 encodeURI() url编码
            2 decodeURI() url解码
    
            3 encodeURIComponent() url编码,编码的字符更多
            4 decodeURIComponent() url解码,解码的字符更多
            
            5 parseInt():将字符串转为数字
                * 逐一判断每一个字符是否是数字,直到不是数字为止,将前面的数字部分转为number
            
            6 eval():将JavaScript字符串,并把它作为脚本代码来执行
            
        3 URL编码
        
        
    */
    var str="嘿哈";
    var encode=encodeURI(str);
    document.write(encode+"<br>");
    var s=decodeURI(encode);
    document.write(s+"<br>");
    
    var str1="嘿哈";
    var encode1=encodeURIComponent(str1);
    document.write(encode1+"<br>");
    var s1=decodeURIComponent(encode1);
    document.write(s1+"<br>");
    
    var str="123abc";
    var number=parseInt(str);
    alert(number+1);
    
    var str="a123abc";
    var number=parseInt(str);
    alert(number+1);
    
    var jscode="alert(123)";
    eval(jscode);
</script>
<body>

</body>
</html>

DOM简单学习

   *功能:控制html文档的内容

   *代码:获取页面标签(元素)对象 Element

    * document.getElementById("id值"):通过元素的id获取元素对象

   *操作Element对象:

    1  修改属性值

      1  明确获取的对象是哪一个

      2  查看API文档,找其中有哪些属性可以设置

    2  修改标签体内容

      *  属性:innerHTML

      1  获取元素对象

      2  使用innerHTML属性修改标签体内容

事件简单学习

  * 功能:某些组件被执行了某些操作后,触发某些代码的执行

  *如何绑定事件

    1  直接在html标签上,指定事件的属性(操作),属性值就是js代码

      1  事件:onclick---单击时间

    2  通过js获取元素对象,指定事件属性,设置一个函数

BOM

  1  概念:Browser Object Model  浏览器对象模型

    *将浏览器的各个组成部分封装成对象

  2  组成:

    Window:窗口对象

 

    History:历史记录对象

    Location:地址栏对象

    Navigator:浏览器对象

    Screen:显示器屏幕对象

  3  Window对象

  

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<input id="openBtn" type="button" value="打开窗口">
<input id="closeBtn" type="button" value="关闭窗口">
</body>
<script>
/*
 *   Window:窗口对象
         1  创建
         2 方法
             1  与弹出框有关的方法
                 alert():显示带有一段消息和一个确认按钮的警告框
                 confirm():显示带有一段信息以及确认按钮和取消按钮的对话框
                     * 点击确定按钮,方法返回true
                     *点击取消按钮,方法返回false
                 prompt():
                     *返回值:获取用户输入的值
         
             2  与打开关闭有关的方法
                 close() 关闭浏览器窗口
                     * 谁调用就关闭谁
                 open()  打开一个新的浏览器窗口
                     * 返回一个新的Window对象
             3  与定时器有关的方式
                 1 setTimeout() 
                     参数:
                         1 js的代码或者方法对象
                         2 毫秒值
                 2 claerTimeout()
                 
                 3 setInterval()
                 4 clearInterval()
         3 属性
             1  获取其他BOM对象
                 history
                 location
                 Navigator
                 scrren
             3  获取DOM对象
                 document
         4  特点
             *Window对象不需要创建,可以直接使用  window.方法名();
             *window引用可以省略  方法名();
 */
         alert("hello window");
         window.alert("hello window");
         //确认框
         var flag=confirm("确定退出?");
         if(flag)
             {
             alert("退出");
             }
         else{
             alert("返回");
         }
         
         //输入框
         var a=prompt("请输入用户名");
         alert(a);
         //打开新窗口
         var openBtn=document.getElementById("openBtn");
         var newWindow;
         openBtn.onclick=function(){
             //打开新窗口
             newWindow=open();
         }
         //关闭新窗口
         var closeBtn=document.getElementById("closeBtn");
         closeBtn.onclick=function(){
             //关闭新窗口
             newWindow.close();
         }
         
         //一次性定时器
         var id=setTimeout(fun,3000);
         clearTimeout(id);
         function fun(){
             alert("boom");
         }
         //循环定时器和上面一样
         
         //获取history
         var h1=window.history;
         var h2=history;
         
</script>
</html>

  4  Location 地址栏对象

  

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<input type="button" id="btn" value="刷新">
<input type="button" id="btn" value="去百度">

</body>
<script>
    /*
        Location:地址栏对象
            1  创建(获取)
                1 window.location
                2 location
            2 方法:
                reload() 刷新
            3 属性:
                * href 设置或返回完整的url
    */
    
    //reload方法,定义一个按钮,点击这个按钮,刷新页面
    //获取按钮
    var btn=document.getElementById("btn");
    //绑定单击事件
    btn.onclick=function(){
        location.reload();
    }
    
    //获取href
    var href=location.href;
    //alert(href);
    //点击按钮,访问百度
    //获取按钮
    var goBaidu=document.getElementById("btn");
    //绑定单击事件
    goBaidu.onclick=function(){
        location.href="https://www.baidu.com";
    }
</script>
</html>

  5  History:历史记录对象

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<input type="button" id="btn" value="历史记录个数">
<a href="location.html">window页面</a>
<input type="button" id="forward" value="前进">

</body>
<script>
/*
 *     History:历史记录对象
         1  创建
             1  window.history
             2  history
         2 方法
             back()  后退
             forward()  前进
             go(参数)  加载history列表中的某个具体页面
                 * 正数 前进几个历史记录
                 * 负数 后退几个历史记录
         3 属性
            * length  返回当前窗口历史列表中的url记录            
 */
         var btn=document.getElementById("btn");
        btn.onclick=function(){
            var len=history.length;
            alert(len);
        }
         var forward=document.getElementById("forward");
        forward.onclick=function(){
            history.forward();
        }
</script>
</html>

DOM

  * 概念:Document Object Model  文档对象模型

    *  将标记语言文档的各个组成部分,封装为对象,可以使用这些对象,对标记语言文档进行CRUD的动态操作

  *核心DOM模型

    * Document:文档对象

    * Element:元素对象

    * Node:节点对象,其他5个的父对象

  *HTML DOM

  

posted @ 2021-10-30 16:16  Cuora  阅读(43)  评论(0)    收藏  举报