[JD_Magi]JavaScript学习笔记

2023-12-12 10:50
文章标签 java 学习 笔记 script jd magi

本文主要是介绍[JD_Magi]JavaScript学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JavaScript学习笔记

1、 什么是JavaScript

JavaScript 是互联网上最流行的脚本语言

历史

要了解JavaScript,我们首先要回顾一下JavaScript的诞生。

在上个世纪的1995年,当时的网景公司正凭借其Navigator浏览器成为Web时代开启时最著名的第一代互联网公司。

由于网景公司希望能在静态HTML页面上添加一些动态效果,于是叫Brendan Eich这哥们在两周之内设计出了JavaScript语言。你没看错,这哥们只用了10天时间。

为什么起名叫JavaScript?原因是当时Java语言非常红火,所以网景公司希望借Java的名气来推广,但事实上JavaScript除了语法上有点像Java,其他部分基本上没啥关系。

2、JavaScript有什么用

  • 直接写入 HTML 输出流
  • 对事件的反应
  • 改变 HTML 内容
  • 改变 HTML 图像
  • 改变 HTML 样式
  • 验证输入

3、JavaScript的使用

  1. JavaScript代码的引入

    • 行内引入:直接在html标签中添加属性即可使用
    • 内部引入:通过script标签来编写js代码
    • 外部引入:通过script标签的src属性来引入外部的js文件
  2. 输出

    • 使用 window.alert() 弹出警告框。

      <script>
      window.alert(5 + 6);
      </script>
      
    • 使用 document.write() 方法将内容写到 HTML 文档中。

      <script>
      document.write(Date());
      </script>
      
    • 使用 innerHTML 写入到 HTML 元素。

      <script>
      document.getElementById("demo").innerHTML = "段落已修改。";
      </script>
      
    • 使用 console.log() 写入到浏览器的控制台。

      <script>
      a = 5;
      b = 6;
      c = a + b;
      console.log(c);
      </script>
      
  3. 语法(基本上与java相同,本点列出不同点)

    • 变量的定义

      var 变量名;//js是弱类型语言,变量类型是根据值自动转换的
      
    • 数组的定义

      var cars = ["Saab", "Volvo", "BMW"]; var cars=new Array();
      cars[0]="Saab";
      cars[1]="Volvo";
      cars[2]="BMW";var cars=new Array("Saab","Volvo","BMW");
      
    • 对象的定义

      //定义
      var person = {firstName:"John", lastName:"Doe"}; 
      //调用
      name=person.lastname;
      //或者
      name=person["lastname"];
      
    • 函数的定义

      function 函数名(a, b) {return a * b;                                // 返回 a 乘以 b 的结果
      }
      
    • Undefined和Null

      • Undefined :这个值表示变量不含有值。
      • 可以通过将变量的值设置为 null 来清空变量。
    • === :绝对相等,即数据类型与值都必须相等。

    • !==:不绝对等于,值和类型有一个不相等,或两个都不相等

  4. 事件

    事件可以是浏览器行为,也可以是用户行为

    事件描述
    onchangeHTML 元素改变
    onclick用户点击 HTML 元素
    onmouseover用户在一个HTML元素上移动鼠标
    onmouseout用户从一个HTML元素上移开鼠标
    onkeydown用户按下键盘按键
    onload浏览器已完成页面的加载
    <!--按钮被点击事件-->
    <button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>
    
  5. 语句

    判断语句

    //if
    if (time<20)
    {x="Good day";
    }
    //if...else
    if (time<20)
    {x="Good day";
    }
    else
    {x="Good evening";
    }
    //if...else if...else 语句
    if (time<10)
    {document.write("<b>早上好</b>");
    }
    else if (time>=10 && time<20)
    {document.write("<b>今天好</b>");
    }
    else
    {document.write("<b>晚上好!</b>");
    }
    //switch
    switch (d)
    {case 6:x="今天是星期六";break;case 0:x="今天是星期日";break;default:x="期待周末";
    }
    

    循环语句

    //for循环
    for (var i=0;i<cars.length;i++)
    { document.write(cars[i] + "<br>");
    }
    //for/in循环:循环遍历对象的属性
    var person={fname:"John",lname:"Doe",age:25}; for (x in person)  // x 为属性名
    {txt=txt + person[x];
    }
    //while循环
    while (i<5)
    {x=x + "The number is " + i + "<br>";i++;
    }
    //do...while循环
    do
    {x=x + "The number is " + i + "<br>";i++;
    }
    while (i<5);
    
  6. JSON

    //解析
    var text = '{ "sites" : [' +
    '{ "name":"Runoob" , "url":"www.runoob.com" },' +
    '{ "name":"Google" , "url":"www.google.com" },' +
    '{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
    var obj = JSON.parse(text);//转换
    JSON.stringify(value, replacer, space)/*
    value:
    必需, 要转换的 JavaScript 值(通常为对象或数组)。replacer:
    可选。用于转换结果的函数或数组。space:
    可选,文本添加缩进、空格和换行符
    */
    

4、Date对象的使用

  1. 创建日期

    var today = new Date()
    var d1 = new Date("October 13, 1975 11:13:00")
    var d2 = new Date(79,5,24)//年,月,日
    var d3 = new Date(79,5,24,11,33,0)//年,月,日,时,分,秒
    
  2. 设置日期

    var myDate=new Date();
    myDate.setFullYear(2010,0,14);
    

5、DOM(Document Object Model)

  1. 概述

    • 通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。

    • 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

在这里插入图片描述

  1. DOM的作用

    通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

    • JavaScript 能够改变页面中的所有 HTML 元素
    • JavaScript 能够改变页面中的所有 HTML 属性
    • JavaScript 能够改变页面中的所有 CSS 样式
    • JavaScript 能够对页面中的所有事件做出反应
  2. 使用

    • 查找HTML元素

      //通过id查找html元素
      var x=document.getElementById("intro");//通过标签名查找 HTML 元素
      var x=document.getElementById("main");
      var y=x.getElementsByTagName("p");//通过类名找到 HTML 元素
      var x=document.getElementsByClassName("intro");
      
    • 改变HTML

      //创建动态的 HTML 内容
      document.write(Date());
      //改变 HTML 内容
      document.getElementById(id).innerHTML=新的 HTML//格式
      document.getElementById("p1").innerHTML="新文本!";//例子//改变 HTML 属性
      document.getElementById("image").src="landscape.jpg";
      
    • 改变CSS

      //格式
      document.getElementById(id).style.property=新样式
      //例子
      document.getElementById("p2").style.color="blue";
      document.getElementById("p2").style.fontFamily="Arial";
      document.getElementById("p2").style.fontSize="larger";//使用事件,绑定按钮
      onclick="document.getElementById('id1').style.color='red'">
      
    • DOM 事件

      • 当用户点击鼠标时

        <h1 onclick="this.innerHTML='Ooops!'">点击文本!</h1>
        
      • 当网页已加载时

        <!--
        onload 和 onunload 事件会在用户进入或离开页面时被触发。
        onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
        onload 和 onunload 事件可用于处理 cookie。
        -->
        <body onload="checkCookies()"><script>
        function checkCookies(){if (navigator.cookieEnabled==true){alert("Cookies 可用")}else{alert("Cookies 不可用")}
        }
        </script>
        </body>
        
      • 当鼠标移动到元素上时

        <body>
        <div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:#D94A38;width:120px;height:20px;padding:40px;">Mouse Over Me</div><script>
        function mOver(obj){obj.innerHTML="Thank You"
        }
        function mOut(obj){obj.innerHTML="Mouse Over Me"
        }
        </script>
        </body>
        
      • 当输入字段被改变时

        <head>
        <script>
        function myFunction(){var x=document.getElementById("fname");x.value=x.value.toUpperCase();
        }
        </script>
        </head>
        <body>
        输入你的名字: <input type="text" id="fname" onchange="myFunction()">
        <p>当你离开输入框后,函数将被触发,将小写字母转为大写字母。</p>
        </body>
        
      • 当用户点击鼠标和释放鼠标时

        <head>
        <script>
        function lighton(){document.getElementById('myimage').src="bulbon.gif";
        }
        function lightoff(){document.getElementById('myimage').src="bulboff.gif";
        }
        </script>
        </head><body>
        <img id="myimage" onmousedown="lighton()" onmouseup="lightoff()" src="bulboff.gif" width="100" height="180" />
        <p>点击不释放鼠标灯将一直亮着!</p>
        </body>
        

6、BOM(Browser Object Model )

  1. 概述

    • 浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。

    • 所有浏览器都支持 window 对象。它表示浏览器窗口。

    • 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

    • 全局变量是 window 对象的属性。

    • 全局函数是 window 对象的方法。

    • 甚至 HTML DOM 的 document 也是 window 对象的属性之一

  2. 使用

    • Location

      document.write(location.href);//属性返回当前页面的 URL
      document.write(location.hostname);// 返回 web 主机的域名
      document.write(location.pathname);//返回当前页面的路径和文件名
      document.write(location.port);// 返回 web 主机的端口 (80 或 443)
      document.write(location.protocol );//返回所使用的 web 协议(http: 或 https:)
      
    • History

      • history.back() - 与在浏览器点击后退按钮相同

        <script>
        function goBack()
        {window.history.back()
        }
        <input type="button" value="Back" onclick="goBack()">
        
      • history.forward() - 与在浏览器中点击向前按钮相同

        <script>
        function goForward()
        {window.history.forward()
        }
        </script>
        <input type="button" value="Forward" onclick="goForward()">
        
    • Navigator

      <script>
      txt = "<p>浏览器代号: " + navigator.appCodeName + "</p>";
      txt+= "<p>浏览器名称: " + navigator.appName + "</p>";
      txt+= "<p>浏览器版本: " + navigator.appVersion + "</p>";
      txt+= "<p>启用Cookies: " + navigator.cookieEnabled + "</p>";
      txt+= "<p>硬件平台: " + navigator.platform + "</p>";
      txt+= "<p>用户代理: " + navigator.userAgent + "</p>";
      txt+= "<p>用户代理语言: " + navigator.systemLanguage + "</p>";
      document.getElementById("example").innerHTML=txt;
      </script>
      
    • 弹窗

          	//警告框alert("你好,我是一个警告框!");//确认框confirm("你好,我是一个确认框!");//提示框prompt("请输入你的名字","Harry Potter");/*提示框经常用于提示用户在进入页面前输入某个值当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。*/```
    • 计时事件

      • 循环计时事件
      //每三秒弹出 "hello" 
      setInterval(function(){alert("Hello")},3000);//显示当前时间
      <p id="demo"></p>
      <script>
      var myVar=setInterval(function(){myTimer()},1000);
      function myTimer(){var d=new Date();var t=d.toLocaleTimeString();document.getElementById("demo").innerHTML=t;
      }
      </script>
      //停止计时事件
      <button onclick="myStopFunction()">停止</button>
      <script>
      var myVar=setInterval(function(){myTimer()},1000);
      function myTimer(){var d=new Date();var t=d.toLocaleTimeString();document.getElementById("demo").innerHTML=t;
      }
      function myStopFunction(){clearInterval(myVar);
      }
      
      • 时间结束执行计时事件

        //等待3秒,然后弹出 "Hello"
        setTimeout(function(){alert("Hello")},3000);
        //加个停止按钮
        <button onclick="myFunction()">点我</button>
        <button onclick="myStopFunction()">停止弹框</button>
        <script>
        var myVar;
        function myFunction(){myVar=setTimeout(function(){alert("Hello")},3000);
        }
        function myStopFunction(){clearTimeout(myVar);
        }
        </script>
        
    • Cookies

      //创建cookie
      document.cookie="username=John Doe";
      document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";//添加过期时间//读取cookie
      var x = document.cookie;//修改cookie
      document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; //删除cookie(设置时间为当前时间以前就可以删除)
      document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
      

这篇关于[JD_Magi]JavaScript学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/484342

相关文章

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Java中Integer128陷阱

《Java中Integer128陷阱》本文主要介绍了Java中Integer与int的区别及装箱拆箱机制,重点指出-128至127范围内的Integer值会复用缓存对象,导致==比较结果为true,下... 目录一、Integer和int的联系1.1 Integer和int的区别1.2 Integer和in

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.