灯塔:JavaScript

news2024/11/16 6:30:37

Web标准也称为网页标准,由一系列的标准组成,大部分由W3C(World Wide Web Consortium,万维网联盟)负责制定。

三个组成部分:

HTML:负责网页的基本结构(页面元素和内容)。

CSS:负责网页的表现效果(页面的元素外观、位置等页面样式,如:颜色、大小等)

JavaScript:负责网页的行为(交互效果)。

JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页的行为的,它能使网页可交互

JavaScript和Java是完全不同的语言,不论是概念还是设计,但是基础语法类似

JavaScript在1995年由Brendan Erich发明,并于1997年成ECMA标准。

ECMAScript 6(ES6)是最新的JavaScript版本(发布于2015年)。

JavaScript的引入方式:

内部脚本:

将JS代码定义在HTML页面中

• JavaScript代码必须位于<script></script>标签之间

• 在HTML文档中,可以在任意地方,放置任意数量的<script>

• 一般会把脚本置于<body>元素的底部,可改善显示速度

<script>
    alter("Hello JavaScript")
</script>

外部脚本:

将JS代码定义在外部JS文件中,然后引入到HTML页面中

• 外部JS文件中,只包括JS代码,不包括<script>标签

• <script>标签不能自闭合

<script scr="js//demo.js"></script>
alter("Hello JavaScript")

JS的基础语法

书写语法:

区分大小写:与Java一样,变量名、函数名以及其他一切东西都是区分大小写的

每行结尾的分号可有可无

注释:

• 单行注释:// 注释内容

• 多行注释:/*注释内容*/

大括号表示代码块

//判断
if(count==3){
    alert(count);
}

输出语句:

• 使用window.alert()写入警告框

• 使用document.write()写入HTML输出

• 使用console.log()写入浏览器控制器

<script>
    window.alert("Hello JavaScript");//浏览器弹出警告框
    document.write("Hello JavaScript");//写入HTML,在浏览器展示
    console.log("Hello JavaScript" );//写入浏览器控制台
</script>

变量

        • JavaScript中用var关键字(variable的缩写)来声明变量

特点:①var的作用域比较大,全局变量

           ②可以重复定义

ECMAScrpit 6新增了let关键字来定义变量。它的用法类似于var,但是所声明的变量,只在let关键字所在的代码块内有效,且不允许重复声明。

ECMAScript 6新增了const关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变。

        • JavaScript是一门弱类型语言,变量可以存放不同类型的值

        • 变量名需要遵循如下规则:

                › 组成字符可以是任何字母、数字、下划线(_)或者美元符号($)

                › 数字不能开头

                › 建议使用驼峰命名

var a=20;
a="张三";

数据类型:

JavaScript中分为:原始类型和因与类型。

        原始类型:

• number:数字(整数、小数、NaN(Not a Number))

• string :字符串、单双引皆可

• boolean:布尔。true、false

• null:对象为空

• undefined :当声明的变量未初始化时,该变量的默认值是undefined

使用typeof运算符可以获取数据类型

var a=20;

alert(typeof a);

运算符:

==与===

 ==会进行类型转换,===不会进行类型转换

var a=10;
alert(a=="10");//true
alert(a==="10");//false
alert(a===10);//true

流程控制语句:

if...else  if...else...
switch
for
while
do...while

函数:

介绍:函数(方法)是被设计为执行特定任务的代码块

定义方法一:JavaScript函数是通过function关键字进行定义,语法为:

function functionName(参数1,参数2...){
    //要执行的代码
}

//例如
function add(a,b){
    return a+b;
}

注意:

        形式参数不需要类型。因为JavaScript示弱类型语言

        返回值也不需要定义类型,可以在函数内部直接使用return返回即可

调用:函数名称(实际参数列表)

var result=add(10,20);
alert(result);

定义方法二:

var functionName=function(参数1,参数2){
    //要实行的代码
}

JS对象:

Array

•JavaScript中Array对象用于定义数组

特点:长度可变 类型可变

• 定义
var 变量名=new Array(元素列表);//方式一
var arr=[1,2,3,4];
var 变量名=[元素列表];//方法二
var arr=[1,2,3,4];
 • 访问
arr[索引]=值;
arr[10]="hello";

注意:JavaScript中的数组相当于Java中的集合,数组的长度可变,而JavaScript是弱类型,所以可以储存任意类型的数据。

属性:
属性描述
length设置或返回数组中的元素的数量
方法:
方法描述
forEach()遍历数组中的每一个有值的元素,并调用一次传入的数
push()将新元素添加到数组的末尾,并返回新的长度
splice()从数组中删除元素
//forEach:遍历数组中的所有有值元素
var arr=[1,2,3,4];
arr.forEach(function(e)){
    console.log(e);
}

//ES6 箭头函数:(...)=>{...}--简化函数的定义
arr.forEach(e)=>{
    console.log(e);
}

箭头函数(ES6) :是用来简化函数定于语法的。具体形式为:

(...)=>(...)

如果需要给箭头函数起名字:

var xxx=(...)=>{...}

String

String字符串对象创建方式有两种:

var 变量名 =new String("...");//方式一
var str=new String(""Hello String);

var 变量名="...";//方式二
var str="Hello String";
var str ='Hello String';
属性:
属性描述
length字符串的长度
方法:
方法描述
charAt()返回在指定位置的字符
indexOf()检索字符串
trim()去除字符串两边的空格
substring()提取字符串中两个指定的索引号之间的字符(含头不含尾)

JavaScript自定义对象

定义格式:

var 对象名={
    属性名1:属性值1,
    属性名2:属性值2,
    属性名3:属性值3,
函数名称:function(形参列表 ){}
};

//例
var user={
    name:"Tom",
    age:20,
    gender="male",
    eat:function(){
        alert("用膳。。。");
    }
};

调用格式:

对象名.属性名;
consen.log(user.name);
对象名.函数名();
user.eat();

JSON

概念:JavaScript Object Natation,JavaScript对象标记法。

JSON是通过JavaScript对象标记法书写的文本。

由于其语法简单,层次结构鲜明,先多用于作为数据载体,在网络中进行数据传输。

基础语法:

定义:

var 变量名='{"key1":value1,"key2":value2}';
var userStr='{"name":"Jerry","age":18},"addr":["北京","上海","西安"]';

value的数据类型为:

• 数字(整数或浮点数)

• 字符串(在双引号中)

• 逻辑值(true或false)

• 数组(在方括号中)

• 对象(在花括号中)

• null

JSON字符串转为JS对象
var jsObject=JSON.pause(userStr);
JS对象转为JSON字符串
var jsonStr=JSON.stringify(jsObject);
var jsonstr='{"name":"Tom","age":20,"addr":["北京","上海","西安"]}';
//json字符串-->js对象
var obj=JSON.pause(jsonstr);
alert(obj.name);
//js对象-->json字符串
alert(JSON.stringify(obj));

 BOM

概念:Browser Object Model浏览器对象模型,允许JavaScript与浏览器的各个组成部分封装为对象。

组成:

Window:浏览器窗口对象

Navigator:浏览器对象

Screen:屏幕对象

History:历史记录对象

Location:地址栏对象

Window:

//获取
window.alert("hello javascript");
alert("hello javascript");

//方法
confirm -对话框--确认:true,取消:false
var flag=confirm("您确定删除该条记录吗?");
alert(flag);

//定时器 - setInterval -- 周期性的执行某一个函数
var i=0;
setInterval(function(){
    i++;
    console.log("定时器执行了"+i+"次");
},2000);

//定时器 - setTimeout -- 延迟指定时间执行一次
setTimeout(function(){
    alert("JS");
},3000);
Location:

DOM

<html>
    <head>
        <title>DOM</title>
    </head>
    <body>
        <h1>DOM对象标题</h1>
        <a href="hppts://itcast.cn">传智教育</a>
    </body>
</html>

DOM是WC的标准,定义了访问HTML的标准,分为3个不同的部分:

        1.Core DOM -所以文档类型的标准模型

          Document:整个文档的对象

          Element:元素的对象

          Attribute:属性对象

          Text:文本对象

           Comment:注释对象

        2.XML DOM-HTML 文档的标准模型

           Image:<img>

           Button:<input type='button'>

HTML中的Element对象可以通过Document对象获取,而Document 对象是通过window对象获取的。

Document的对象中提供了一下获取Element元素对象的函数:

        1.根据id属性值获取,返回单个的Element对象

var h1=document.getElementById('h1');

        2.根据标签名获取,返回Element对象数组

avr divs =document.getElementsByTagName('div');

        3.根据name属性值获取,返回Element对象数组

var hobbys=document.getElementsByName('hobby');

        4.根据class属性值获取,返回Element对象数组

var class=document.getElementsByClassName('cls');

事件监听

事件:HTML事件是发生在HTML元素上的“事情”。比如:

        按钮被点击

        鼠标移动到元素上

        按下键盘按键

事件监听:JavaScript可以在事件被侦测到时执行代码

JS事件监听

事件绑定:

方式一:通过HTML标签中的事件属性来进行绑定

<input type="button" onclick="on()" value="按钮1">

<script>
    fuction on(){
        alert('我被点击了!');
    }
</script>

方法二:通过DOM元素属性绑定

<input type="button" id= "btn" value="按钮2">

<script>
    document.getElementById('btn').onclick=function(){
        alert('我被点击了');
    }
</script>

常见事件

例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 灯泡 -->
   <img  id="light"src="D:\QQ文件\QQ20240918-175448.png" alt="" >
   <br>
   <input  id="" type="button" value="点亮" onclick="on()"> 
   <input id="" type="button" value="熄灭" onclick="off()">
   <br>
   <!-- 文本框 -->
   <input type="text" id="name" value="ITCAST" onfocus="lower()" onblur="upper()">
   <br>
   <!-- 选项框 -->
   <input type="checkbox"  name="hobby"> 电影 
   <input type="checkbox"  name="hobby"> 旅游 
   <input type="checkbox"   name="hobby"> 游戏
   <br>
   <input type="button" value="全选" onclick="allcheck()">
   <input type="button" value="反选" onclick="nullcheck()" >
</body>
    <script>
        // 点亮灯泡
        function on(){
            var img=document.getElementById("light");
            img.src="D:\\QQ文件\\QQ20240918-175529.png";
            
        }
        // 熄灭灯泡
        function off(){
            var img=document.getElementById("light");
            img.src="D:\\QQ文件\\QQ20240918-175448.png";
            
        }
        // 转大写
        function upper(){
            // 获取输入框元素
            var input=document.getElementById("name");
            input.value=input.value.toUpperCase();
        }
        // 转小写
        function lower(){
            //获取输入框元素
            var input=document.getElementById("name");
            input.value=input.value.toLowerCase();
            
        }
        function allcheck(){
            // 获取所有复选框的元素对象
            var hobbys=document.getElementsByName("hobby");
            // 设置选中状态
            for(let i=0;i<hobbys.length;i++){
                const element=hobbys[i];
                element.checked=true;
            }
        }
        function nullcheck(){
            // 获取所有复选框的元素对象
            var hobbys=document.getElementsByName("hobby");
            // 设置未选中状态
            for(let i=0;i<hobbys.length;i++){
                const element=hobbys[i];
                element.checked=false;
            }
        }
    </script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2154428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

go 安装依赖超时

一、配置代理 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.io,direct go get github.com/unidoc/unioffice

ODrive电机驱动算法VScode环境配置笔记教程

1、ODrive基本介绍 ODrive 是一个开源的优秀电机控制器项目&#xff0c;旨在为各种应用提供高性能、高可靠性的电机控制解决方案。这个项目是专门用于驱动无刷直流电机&#xff08;BLDC&#xff09;和永磁同步电机&#xff08;PMSM&#xff09;的高性能开源伺服控制系统。ODriv…

AI绘制调整虚线教程

1、打开ai的软件&#xff0c;执行菜单栏中的文件—新建&#xff0c;新建一个大小任意的画板&#xff0c;画板大小根据自己的需要来设置。 2、选择工具箱中的直线段工具&#xff0c;将填充设置为无&#xff0c;描边设置为黑色&#xff0c;描边大小稍微设置大一点&#xff0c;画一…

【学习笔记】STM32F407探索者HAL库开发(五)F407时钟系统配置

【学习笔记】STM32F407探索者HAL库开发&#xff08;四&#xff09;F407时钟系统配置 1 F407_CubeMX时钟树配置&#xff08;传送门&#xff09;2 STM32F407时钟树2.1 STM32F407时钟系统图2.2 STM32F103时钟树简图2.2.1 高速部分2.2.2 低速部分 2.3 时钟源2.3.1 外部时钟源2.3.2 …

SOCKS5、HTTP 代理IP协议有何区别?

在网络通信领域&#xff0c;代理服务器的选择对于数据安全和传输效率至关重要。SOCKS5代理和HTTP代理作为两种常用的代理类型&#xff0c;各自具有独特的特点和适用场景。本文将深入探讨SOCKS5代理与HTTP代理的区别、特性及应用场景&#xff0c;为用户提供选择指南。 一、SOCK…

数据结构:二叉树(一)

ps&#xff1a;偷懒了几天&#xff0c;接着更新 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的…

MODIS/Landsat/Sentinel下载教程详解【常用网站及方法枚举】

⛄前言 在当今快速发展的地球观测时代&#xff0c;遥感技术作为获取地球表面及其环境信息的重要手段&#xff0c;正以前所未有的广度和深度改变着我们对自然界的认知与管理方式。MODIS&#xff08;Moderate-resolution Imaging Spectroradiometer&#xff0c;中分辨率成像光谱…

【全网最全】2024华为杯研赛D题完整代码建模过程+py代码(后续会更新)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取资料的入口&#xff01; 点击链接加入【2024华为杯研赛资料汇总】&#xff1a;https://qm.qq.com/q/XzdIsvbiM0 https://qm.qq.com/q/XzdIsvbiM0 问题一 .在众多描述地理环境的变…

科研绘图系列:R语言箱线图和连线图(boxplot linechart)

文章目录 介绍加载R包导入数据画图1画图2画图3画图4系统信息介绍 箱线图表示组间差异,连线图表示数据波动。 加载R包 library("here") library("tidyverse") library("ggpubr") library("scales"

Git从了解到操作

Git常用命令 基本的linux命令 ls / ll 查看当前目录( ls 是查看目录有哪些文件夹&#xff0c;ll 是查看隐藏文件)cat 查看文件内容touch 创建文件vi vi编辑器 (使用 vi 编辑器是为了方便展示效果&#xff0c;也可以记事本、editPlus、notPad等其它编辑器) 备注 Git GUl: Gi…

数值计算 --- 平方根倒数快速算法(0x5f3759df,这是什么鬼!!!)

平方根倒数快速算法 --- 向Greg Walsh致敬&#xff01; 写在最前面&#xff1a; 上图中的这段代码出自一个早期的3D游戏<雷神之锤>的源代码&#xff0c;它实现的功能就是计算一个数x的平方根的倒数&#xff1a; 这段代码之所以称之为经典&#xff0c;私以为主要是因为以下…

51单片机——LED灯篇

一、LED与单片机P2管脚相连 二、点亮一个LED灯 #include <STC89C5xRC.H> void main() { P2 0xFE; //1111 1110 } P2有8个管脚&#xff0c;对应8个二进制位。 LED灯右侧接电源是正极&#xff08;1&#xff09;&#xff0c;左侧给负极&#xff08;0&#xff09;即可…

SpringBoot教程(三十) | SpringBoot集成Shiro权限框架(shiro-spring 方式)

SpringBoot教程&#xff08;三十&#xff09; | SpringBoot集成Shiro权限框架&#xff08;shiro-spring方式&#xff09; 一、 什么是Shiro二、Shiro 组件核心组件其他组件 三、流程说明shiro的运行流程 四、SpringBoot 集成 Shiro1. 添加 Shiro 相关 maven2. 添加 其他 maven3…

链表(3)链表的基本操作

单链表的基本操作主要有;①创建链表;②输出链表;③査我结点;④插入结点,⑤鹏除结点;⑥重组链表。下面分别进行介绍。 一.创建链表 创建链表是指在程序运行时,进行动态内存分配,创建若千个结点,并把这些结点连接成串,形成一个链表。在进行动态内存分配时,需要使用在&#xff08…

QT快速安装使用指南

在Ubuntu 16.04上安装Qt可以通过多种方式进行。以下是使用Qt在线安装程序和apt包管理器的两种常见方法&#xff1a; 方法一&#xff1a;使用Qt在线安装程序 下载Qt在线安装程序 访问Qt官方网站&#xff1a;Try Qt | Develop Applications and Embedded Systems | Qt找到并下载…

Swift里的数值变量的最大值和最小值

Swift里有很多种数值变量&#xff0c;如Int&#xff0c;Int8&#xff0c;Float&#xff0c;Double等。和绝大多数编程语言一样&#xff0c;由于是在计算机上运行&#xff0c;内存有限&#xff0c;所以必有最大值和最小值&#xff0c;而计算机无法处理超过该值的数。 在Swift中…

【Linux】POSIX信号量、基于环形队列实现的生产者消费者模型

目录 一、POSIX信号量概述 信号量的基本概念 信号量在临界区的作用 与互斥锁的比较 信号量的原理 信号量的优势 二、信号量的操作 1、初始化信号量&#xff1a;sem_init 2、信号量申请&#xff08;P操作&#xff09;&#xff1a;sem_wait 3、信号量的释放&#xff08…

网络安全-webshell绕过,hash碰撞,webshell绕过原理

目录 一、题目 1.1 1.2 1.3 1.4 1.5 二、绕过动态检测引擎的一次尝试 三、一个比赛中的webshell 四、webshell绕过的原理以及哈希碰撞 五、JSP解释流程导致的绕过&#xff08;QT比赛&#xff09; 5.1环境 5.2例子 一、题目 这里我们通过几道题目来给大家讲解 1.…

UI自动化测试框架搭建详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 今天给大家分享一个seleniumtestngmavenant的UI自动化&#xff0c;可以用于功能测试&#xff0c;也可按复杂的业务流程编写测试用例&#xff0c;今天此篇文章不过…

【HTML样式】加载动画专题 每周更新

加载动画专题 煎蛋加载动画方块移动加载动画电子风变脸正方体组合跳跃式加载动画 煎蛋加载动画 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width…