JS周结 day0817

news2024/9/22 1:44:02

ok了家人们,今天这周学习了JavaScript,我们一起看一下吧

.JavaScript概述

1.1 应用场景

JavaScript 用来做前端页面校验
JavaScript 可以实现网页的一些动画效果,例如:轮播图

1.2 JavaScript介绍

  1. JavaScript 是一门跨平台、基于对象的脚本语言,来控制网页行
    为的,它能使网页可交互。
  2. JavaScript 和 Java 是完全不同的语言,不论是概念还是设计。但
    是基础语法类似。
  3. JavaScript(简称:JS) 在 1995 年由 Brendan Eich 发明,并于
    1997 年成为 ECMA 标准。
  4. ECMAScript 6 (ES6) 是最新的 JavaScript 版本(发布于 2015年)。
  5. JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
    JavaScript 语言不需要编译,直接由各大浏览器解析运行。学习
    JavaScript 语言不需要单独安装软件,只需要浏览器即可。
        

1.3 JavaScript特点

脚本语言
浏览器分成两部分:渲染引擎和 JS 引擎。渲染引擎 : 用来解析 HTML
CSS, 俗称内核,例如 chrome 浏览器的 blink JS 引擎:也称为 JS 解释
器。用来读取网页中的 JS 代码,对其处理后运行,例如 chrome 浏览
器的 V8 。浏览器本身并不会执行 JS 代码,而是通过内置 JavaScript
( 解释器 ) 来执行 JS 代码。 JS 引擎执行执行代码时逐行解释每一行源
( 转换为机器语言 ) ,然后由计算机去执行,所以 JavaScript 语言归
为脚本语言,会逐行解释执行。
弱类型
JavaScript 中也有明确的数据类型,但是声明一个变量后它可以接收
任何类型的数据,并且会在程序执行过程中根据上下文自动转换类
型。

1.4 JavaScript的组成

.JavaScript引入方式

2.1 内部脚本

  1. JS代码定义在HTML页面中,JavaScript 代码必须位于 标签之间。
  2. HTML 文档中可以在任意地方,放置任意数量的。
  3. 一般把脚本置于 元素的底部,可改善显示速度,因为脚本执行
    会拖慢显示。
<!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>
    <script>
    //第一种输出方式:弹出警告框
    alert("嘿嘿");
    //第二种输出方式:输出到页面上
    document.write("哈哈");
    //第三种输出方式:输出到浏览器到控制台上
    console.log("蚂蚁雅黑");
    </script>
</body>
</html>

2.2 外部脚本

  1. JS 代码定义在外部 JS 文件中,通过标签引入到 HTML 页面中
  2. 标签要么用于定义内部脚本,要么用于引入外部js文件,不能混
  3. 标签 不能自闭合
<!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>
    
</body>
<script>
    alert("嘿嘿");
</script>
<script src="js/demo01.js"></script>
</html>
//js文件代码

alert("哈哈");

.JavaScript基础语法

3.1 JavaScript的书写语法

  • 区分大小写
  • 每行结尾的分号可有可无
  • 注释:单行注释:// 注释内容,多行注释:/* 注释内容 */

3.2 JavaScript的三种输出方式

  • 弹出警告框: window.alert("hello JS ~");

  • 输出数据到页面: document.write("hello JS ~");
  • 输出到浏览器控制台:console.log("hello JS ~");

 <script>
    //第一种输出方式:弹出警告框
    alert("嘿嘿");
    //第二种输出方式:输出到页面上
    document.write("哈哈");
    //第三种输出方式:输出到浏览器到控制台上
    console.log("蚂蚁雅黑");
    </script>

3.3 JavaScript定义变量

  • JavaScript 中用 var 关键字(variable 的缩写)来声明变量
  • JavaScript 是一门弱类型语言,变量可以存放不同类型的值
  • ES 6 新增了 let 关键字来定义变量。它的用法类似于 var,但是 所声明的变量,只在 let 关键字所在的代码块内有效,且不允许重复声明
  • ES6 新增了 const关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变。
  <script>
        //使用var关键字定义变量
        var a = 10;
        console.log(a);
        a = "hello";
        console.log(a);
        //使用let关键字定义变量  Es6   2015
        let b = 20;
        console.log(b);
        b = "world";
        console.log(b);
        //使用const关键字定义常量
        const c = 3.14;
        console.log(c);
        //TypeError: Assignment to constant variable
        c=3.1415926;
        console.log(c);
    </script>

3.4 JavaScript数据类型

原始类型
        
        number:数字(整数、小数、 NaN(Not a Number)
        string:字符、字符串,单双引皆可
        boolean:布尔。 true false
        null:对象为空
        undefined:当声明的变量未初始化时,该变量的默认值是
        undefined
引用类型
         就是对象。 Object Date
        使用 typeof 运算符可以获取数据类型
 <script>
        //number:数字(整数、小数、NaN(Not a Number)
        let a = 3.14;
        console.log(a);
        console.log(typeof a);

        //string:字符、字符串,单双引皆可
        let b = "嘻嘻";
        console.log(b);
        console.log(typeof b);

         //boolean:布尔。true,false
         let c = true;
         console.log(c);
         console.log(typeof c);

         //null:对象为空
         let d = null;
         console.log(d);
         console.log(typeof d);

         //undefined:当声明的变量未初始化时,该变量的默认值是undefined
         let f;
         console.log(f);
         console.log(typeof f);

         //Object Date
         let date = new Date();//object
         console.log(date);
         console.log(typeof date);
    </script>

3.5 JavaScript运算符

  • 一元运算符:++--
  • 算术运算符:+-*/%
  • 赋值运算符:=+=-=…
  • 关系运算符:><>=<=!======
  • 逻辑运算符:&&||!
  • 三元运算符:条件表达式 ? 1 : 2

3.6 JavaScript全局函数

其他类型转换为数字: parseInt( 数值 ) ,将参数数值转换为整
数,从左向右解析,遇到非数值就停止解析。
如果字面值不是数字,则转为 NaN
Boolean类型转换为整数: Number() true 转为 1 false 转为 0
其他类型转为 boolean Boolean(value)
number 0 NaN 转为 false ,其他的数字转为 true
string :空字符串转为 false ,其他字符串转为 true
null: 转为 false
undefined :转为 false
JavaScript 中有全局函数概念:不归属任何对象,即可以理解
为不需要任何对象就可以调用的函数;注意:所有的全局函数都
可以使用浏览器窗口对象调用,即 window 对象调用,但可以省
略不写。
 <script>
        //其他类型-->转为数字类型
        let a = "100";
        let num01 = parseInt(a);
        console.log(num01);
        
        let b = "200abc";
        let num02 = parseInt(b);
        console.log(num02);

        let c = "abc200"
        let num03 = parseInt(c);
        console.log(num03);

        //boolean类型转为整数(Number());
        let d = true;
        let num04 = Number(d);
        console.log(num04);

        let e = false;
        let num05 = Number(e);
        console.log(num05);

        //其他类型转为boolean类型(Boolean())
        let f = null;
        let num06 = Boolean(f);
        console.log(num06);

        let g = "hello";
        let num07 = Boolean(g);
        console.log(num07);
        
        let h = 0;
        let num08 = Boolean(h);
        console.log(num08);
  
    </script>

3.7 JavaScript流程控制语句

  • if
  • switch
  • for
  • while
  • do…while
 <script>
    for(let i=1;i<=9;i++){
        for(let j=1;j<=i;j++){
            document.write(i+'*'+j+'='+i*j+"&nbsp&nbsp&nbsp&nbsp&nbsp")
        }
        document.write("<hr color='green'/>");
        
    }
    </script>

3.8 JavaScript函数(重点)

3.8.1 方式一
定义: JavaScript 函数通过 function 关键词进行定义
形式参数不需要类型。因为 JavaScript 是弱类型语言
返回值也不需要定义类型,可以在函数内部直接使用 return 返回即
  
function functionName(参数1,参数2..){
 要执行的代码
}
function add(n, m){
 return n + m;
}
  调用:函数名称( 实际参数列表 );
let result = add(2,3);
 <script>

        function function01(){
            console.log("我xx你xxxx");
        }

        function function02(m,n){
            console.log("你x你m");
            return m*n;
        }
        
        function01();
        let num01 = function02(2,5);
        console.log(num01);
        
    </script>
3.8.2 方式二
定义格式
var functionName = function (参数列表){
 要执行的代码
}
var add = function (a,b) {
 return a + b;
}
调用: JavaScript 中,函数调用可以传递任意个数参数
let result = add(1,2,3);
 <script>
      
       let add=function(n,m){
           console.log(n+"..."+m);

           return n+m;
      }
       //调用函数
       let sum=add(2,3);
       console.log(sum);
3.8.3 注意事项
  • 匿名函数还可以作为另一个函数的参数传递
  • JavaScript中没有函数重载概念,如果存在函数名一样的函 数,后出现的函数就会覆盖之前的函数名
  • JavaScript中调用无参函数可以传递实参;调用有参函数可以 不传递实参.数据没有丢失会放到js的一个内置数组对象中 arguments

  <script>
       //匿名函数还可以作为另一个函数的参数传递
       function fn01(x){
           /*
              x=function(){
                  console.log("匿名函数...");
              }
          */
           console.log("fn01......");
           x();
      }
       
       fn01(function(){
           console.log("匿名函数...");
           
      });
       //在JavaScript中没有函数重载概念,如果存在函数名一
样的函数,
       //后出现的函数就会覆盖之前的函数名
       function fn02(){
           console.log("fn02..."); 
      }
       function fn02(a,b){
           console.log("fn02..."+a+"..."+b); 
      }
       fn02(10,20);//fn02...10...20
       fn02();//fn02...undefined...undefined
       //在JavaScript中调用无参函数可以传递实参;
       //调用有参函数可以不传递实参.数据没有丢失会放到js的一
个
       //内置数组对象中 arguments
       function fn03(){
           console.log("fn03...");
           for(let i=0;i<arguments.length;i++){
               console.log(arguments[i]);
          }

       fn03(2,3);
  </script>

四.JavaScript对象

4.1 数组对象Array

4.1.1 定义格式一
let arr=new Array(元素1,元素2...);
var myCars=new Array("Saab","Volvo","BMW");
4.1.2 定义格式二
var arr=[元素1,元素2...];
var myCars=["Saab","Volvo","BMW"];
4.1.3 常见属性和函数
push() :向数组的末尾添加一个或更多元素,并返回新的长度。
 <script>

        let arr = new Array(10,3.14,true,"Hello");
        for(let i =0;i<arr.length;i++){
            console.log(arr[i])
        }

        for(let num of arr){
            console.log(num);
        }

        let arr01 = new Array(10);
        console.log(arr01.length);
        
        
        let arr03 = new Array("雷军");

        console.log("---------------");

        let arr04 = new Array(10,3.14,"你好",true);
        // arr04[8]="雷军";
        // for(let i =0;i<arr04.length;i++){
        //     console.log(arr04[i]);
        // }

       let len=arr04.push("wdf","666");
       console.log(len);
       
        
    </script>

4.2 正则对象RegExp

  直接量:注意不要加引号
var reg = /^正则表达式符号$/;
  创建 RegExp 对象
var reg = new RegExp("^正则表达式符号$");
  方法
  
test(str):判断指定字符串是否符合规则,返回 true或 false
  语法

  
^:表示开始
$:表示结束
[]:代表某个范围内的单个字符,比如: [0-9] 单个数字字符
.:代表任意单个字符,除了换行和行结束符
\w:代表单词字符:字母、数字、下划线(_),相当于 [A-Za-z0-9_]
\d:代表数字字符: 相当于 [0-9]
量词:
+:至少一个
*:零个或多个
?:零个或一个
{x}:x个
{m,}:至少m个
{m,n}:至少m个,最多n个
只能输入数字:
 ^[0-9]*$
6到16位的数字:
 ^\d{6,16}$
字母开头6-16位:
 ^[a-zA-Z][a-zA-Z0-9]{5,15}$
  <script>
        //正规表达式:校验字符串是否符合规范
        //1.创建正规表达式
        //let reg=new RegExp("^.{5}$");
        let reg = /^.{5}$/
        //2.校验
        let flag=reg.test("abcde");
        //3,处理
        if(flag){
            console.log("用户名校验成功!");
        }else{
            console.log("用户名校验失败!请重新输入");
        }
    </script>

4.3 String对象

定义
let 变量名 = new String(s); //方式一
let str = new String("hello");
let 变量名 = s; //方式二
let str = "hello" ;
let str = 'hello';
属性
length   字符串的长度

方法
charAt() 返回在指定位置的字符
indexOf() 检索字符串
 <script>
    //创建对象的方式一(了解)
    let str01=new String("hello");
    console.log(str01);
    console.log(str01.toString());
    
    //创建对象的方式二
    let str02="world";
    console.log(str02);
    
    //属性  lenth 获取字符长度
    console.log(str02.length);

    //函数  charAt()  输入索引,返回字符
    let str04="helloworld";
    let s01=str04.charAt(5);
    console.log(s01);
    
    //函数 indexOf() 返回子字符串在该字符串第一次出现的索引
    console.log(str04.indexOf("llo"));
    console.log(str04.indexOf("abc"));
    
    
    </script>

4.4 自定义对象(重要)

格式
let 对象名称 = {
 属性名称1:属性值1,
  属性名称2:属性值2,
  ...
  函数名称:function (形参列表){}
  ...
  };
实例
 <script>
        let person={
            name:"zhangsan",
            age:23,
            eat:function(){
                //console.log(person.name+"..."+person.age+"...");
                console.log(this.name+"..."+this.age);
            }
        };
        //person.eat();

        console.log(person.name);
        console.log(person.age);
        console.log(person.eat());
        
    </script>

五,BOM对象-Windows

5.1 confile方法

 <script>
        //prompt()用户进行输入的对话框,返回用户输入的字符串
        // let b=window.prompt("请输入你的年龄");
        // let age=parseInt(b);
        // console.log(age);
        
        let c=window.confirm("你确定要删除吗?");
        if(c){
            console.log("删除的操作");
        }else{
            console.log("什么都不做");
        }
    </script>

5.2 prompt方法

        //prompt()用户进行输入的对话框,返回用户输入的字符串
       let b=window. Prompt("请输入你的年龄");
       let age=parseInt(b);
       console.log(age);

5.3 setInterval方法

 let desk=window.setInterval(function(){
           console.log("hello");
           window.clearInterval(desk);//用来清除计时器方法
         },3000);//不清除计时器一直执行

5.4 setTimeout方法

 let desk=window.setTimeout(function(){
            console.log("hello");
        },1000);//代码只执行一次

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

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

相关文章

华为OD(C卷,200分)- 智能驾驶

(C卷,200分)- 智能驾驶 题目描述 有一辆汽车需要从 m * n 的地图左上角(起点)开往地图的右下角(终点),去往每一个地区都需要消耗一定的油量,加油站可进行加油。 请你计算汽车确保从从起点到达终点时所需的最少初始油量。 说明: 智能汽车可以上下左右四个方向移动 地图…

Monaco Editor组件使用详解

Monaco Editor 是由微软开发并开源的一款代码编辑器&#xff0c;它是 Visual Studio Code&#xff08;VS Code&#xff09;的核心部分。Monaco Editor 提供了丰富的特性&#xff0c;包括语法高亮、代码折叠、代码提示&#xff08;IntelliSense&#xff09;、多光标选择、搜索和…

RabbitMQ消息队列总结

RabbitMQ那些事 参考一. `RabbitMQ`介绍1.1 Java工程师1.1.1 RabbitMQ学习目标1.1.2 消息队列介绍1.1.3 RabbitMQ介绍各自属性介绍(❤❤❤)二. `RabbitMQ`安装1. 基于Linux1.1 安装1.2 常用命令1.3 后台管理开启与面板介绍三. 客户端`SDK`操作(❤❤了解)1. 客户端依赖1. 生产者…

【区块链+金融服务】中国银联区块链可信存证服务 | FISCO BCOS应用案例

随着金融行业信息化的快速推进&#xff0c;“互联网 金融”业务产生了海量的电子数据。例如&#xff0c;截止到 2022 年第二季度&#xff0c; 全国累计信用卡发卡数量约 8.07 亿张&#xff0c;累计银行卡应偿信贷余额为 8.66 万亿元&#xff0c;累计信用卡逾期半年未尝信贷 总…

18124 N皇后问题

### 详细分析 这是一个经典的N皇后问题。我们需要在N\*N的棋盘上放置N个皇后&#xff0c;使得任意两个皇后不在同一行、同一列或同一对角线上。可以使用回溯算法来解决这个问题。 ### 伪代码 1. 定义一个函数countSolutions&#xff0c;输入为N&#xff0c;输出为N皇后问题的解…

尚硅谷MYSQL(5-6章)

排序和分页 排序 如果没有使用排序操作的话 查询出来的数据是按添加的顺序排序的 ORDER BY是来进行排序的 后面可以添加ASC升序 DESC降序 如果后面没有显示指明排序的方式的话 则默认按照升序排序 where中不能使用列的别名 我们在使用sql语句的时候 她的执行顺序不是从第一…

Python 环境搭建指南 超详细

Python是由荷兰⼈吉多范罗苏姆&#xff08;Guido von Rossum&#xff0c;后⾯都称呼他为Guido&#xff09;发明的⼀种编程语言 1. 1989年圣诞节&#xff1a;Guido开始写Python语⾔的编译器。2. 1991年2⽉&#xff1a;第⼀个Python解释器诞⽣&#xff0c;它是⽤C语⾔实现的&…

STM32之点亮LED灯

使用固件库实现LED点灯 LED灯&#xff1a; LED灯&#xff0c;是一种能够将电能转化为可见光的半导体器件 控制LED灯&#xff1a; LED灯的正极接到了3.3V&#xff0c;LED灯的负极接到了PA1&#xff0c;也就是GPIOA1引脚 只需要控制PA1为相对应的低电平&#xff0c;即可点亮对…

政务大数据解决方案(十)

政务大数据解决方案通过建立全面的集成数据平台&#xff0c;整合来自各政府部门的异构数据&#xff0c;运用大数据分析、人工智能和机器学习技术对数据进行深度挖掘与智能化处理&#xff0c;提供实时精准的决策支持&#xff0c;从而提升政策制定和实施的科学性与效率。该方案包…

retrofit+livedata+viewModel+moshi处理数据

1.从源码角度看&#xff0c;只需要定义一个CallAdapterFactory 处理结果livedata接受默认的CallAdapterFactory 是DefaultCallAdapterFactory // // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) //package retrofit2;i…

那不勒斯足球俱乐部在 The Sandbox 中启动

访问 The Sandbox 中的那不勒斯足球俱乐部快闪商店&#xff0c;赢取比赛门票和签名商品。 我们很高兴地宣布&#xff0c;我们将与意大利著名职业足球俱乐部那不勒斯足球俱乐部展开合作&#xff0c;在 4 个 UGC 体验中开设 “快闪商店”。在这个以传奇球队为灵感来源的独特数字…

[Meachines] [Medium] poison LFI+日志投毒+VNC权限提升

信息收集 IP AddressOpening Ports10.10.10.84TCP:22,80 $ nmap -p- 10.10.10.84 --min-rate 1000 -sC -sV 22/tcp open ssh OpenSSH 7.2 (FreeBSD 20161230; protocol 2.0) | ssh-hostkey: | 2048 e3:3b:7d:3c:8f:4b:8c:f9:cd:7f:d2:3a:ce:2d:ff:bb (RSA) | 256 …

Linux - 基础工具使用

文章目录 一、yum1、介绍2、功能3、语法4、使用 二、rzsz1、安装rzsz的指令2、介绍3、使用 三、vim基础使用1、介绍2、基础使用 四、gcc/g使用1、生成可执行文件过程2、语法3、常用选项4、编译过程5、动静态库6、链接外部库 一、yum 1、介绍 Linux中的yum是一个强大的软件包管…

部署 K8s 图形化管理工具 Dashboard

文章目录 一、Dashboard 概述二、GitHub 地址三、Dashboard 部署安装1、选择兼容版本2、下载配置文件3、添加 Dashboard 的Service类型4、应用部署5、查看 kubernetes-dashboard 命名空间下资源状态6、创建访问账户7、授权8、获取账号token9、1.24 版本以后的需要创建一个Pod 四…

STM32入门开发操作记录(九)——外部时钟定时器

目录 一、项目准备1. 工程模板2. 器件接线 二、外部时钟1. 端口复用2. 流程示意 三、定时器模块Timer.cTimer.h 四、遮光计数 一、项目准备 1. 工程模板 本篇项目所用模板包含以下模块&#xff0c;声明函数见头文件&#xff0c;模块添加和函数功能详见往期记录。   2. 器件…

alibabacloud学习笔记13

微服务Docker镜像打包讲解 父项目怎么springboot版本依赖 每个子模块项目添加依赖 添加构建文件&#xff1a; 微服务Docker镜像打包整合JDK11 服务根目录创建dockerFile文件. dockerFile的内容。 构建镜像( 去到子模块pom文件下)&#xff1a; 要下载这个才能使用本地docker.…

linux常用网络工具汇总三

linux常用网络工具汇总 6. 抓包工具6.1 wireshark安装界面介绍使用过滤器TCP协议示例关于wireshark的缺点 6.2 tcpdump命令格式关键字使用关于tcpdump的缺点 6.3 fiddler6.4 burpsuite 6. 抓包工具 6.1 wireshark Wireshark&#xff08;前称Ethereal&#xff09;是一个网络封…

谷歌账号异常后,恢复账号的时候验证手机号出现这样的界面就悬了

朋友们在使用谷歌账号玩游戏&#xff0c;或者浏览一些内容的时候&#xff0c;甚至啥也不干&#xff0c;过一阵仅仅来登录谷歌的时候可能会发现账号无法顺利登录。 往往是输入了谷歌账号&#xff08;邮箱地址&#xff09;后&#xff0c;经历过了纠结的人机验证后&#xff0c;输…

leetcode热题系列14

540. 有序数组中的单一元素 给定一个只包含整数的有序数组&#xff0c;每个元素都会出现两次&#xff0c;唯有一个数只会出现一次&#xff0c;找出这个数。 示例 1: 输入: [1,1,2,3,3,4,4,8,8] 输出: 2 示例 2: 输入: [3,3,7,7,10,11,11] 输出: 10 思路&#xff1a; 利用逻…

适合毕业生!分享好用的9款AI论文写作软件

对于即将毕业的大学生来说&#xff0c;撰写论文是一项既重要又具挑战性的任务。为了帮助大家更高效地完成这一过程&#xff0c;我将推荐几款适合毕业生使用的AI论文写作软件&#xff0c;并详细介绍它们的功能和优势。 1. 千笔-AIPassPaper 千笔-AIPassPaper是一款功能全面且用…