初学JavaScript总结

news2025/1/12 9:45:05

0 JavaScript

html完成了架子,css做了美化,但是网页是死的,需要给他注入灵魂,所以接下来需要学习JavaScript,这门语言会让页面能够和用户进行交互。JavaScript又称为脚本语言,可以通过脚本实现用户和页面的交互。

1 引入方式

两种引入方式:

  1. 内部脚本,将js代码定义在html页面中
  2. 外部脚本,将js代码定义在外部js文件中,然后引入html页面中
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>快速上手</title>
    <!--内部脚本-->
    <!-- <script>
        alert("hello js");
        alert("hello,kkk.");
    </script> -->
    <script src="./js/hellojs.js"></script>
</head>
<body>
    <!--
        js引入方式:
        1.内部脚本:js定义在html中
        2.外部脚本:
    -->
    
</body>
<!--
    一般将js代码放到<head></head>标签中,但建议放到</body>下,可以明显的改善网页速度
-->
<!--这里也可以引入javascript-->
<!-- <script>
        alert("hello js111")
    </script> -->
</html>

 2 基础语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js基础语法</title>
    <script>
        //基本语法
        //1.区分大小写
        //2.结尾的分号可以不写
        //3.<script>变迁可以写在body中
        //4.大括号表示代码块
        //5.输出语句
            //5.1使用window.alert()写入警告框
            //window.alert('warning...');
            //5.2使用document.write()直接在html中输出
            // document.write("output statements.");
            //5.3console.log()写入浏览器控制台
            // console.log("printing log...")
        //6.变量
            // 6.1 var 定义的是全局变量,可以重复声明
        var a = 20;
        var a = "nihao";
        alert(a);
            // 6.2 let 定义的局部变量,不能重复定义
        {
            let b = "asdfasdf";
            // let b = 3;
            alert(b);
        }
        // alert(b);
            // 6.3 const定义的是常量,不可以改变
            const aa = 32;
            alert(aa);
            // aa = 33;控制台报错
        //7.运算符
        //==,会进行类型转化,===不会进行类型转换
        // 8类型:
        // 基本类型:boolean,Null,Undefined,Number,String,Symbol
        // 引用类型:Array,Object,Function,Date...
        // 8.1数字类型转换为boolean类型
        //数值类型中,0和NaN均为false
        if(0 == false){
            alert("0 is false");
        }
        if(NaN){
            alert("NaN is true");
        }else{
            alert("NaN is false");
        }

        //空字符串为false,其他均为true
        if(""){
            alert("'' is true");
        }else{
            alert("'' is false");
        }
        if(" "){
            alert("' ' is true");
        }
        if(null){
            alert("null is true");
        }else{
            alert("null is false");
        }
        if(undefined){
            alert("undefined is true");
        }else{
            alert("undefined is false");
        }
    </script>
</head>
<body>
    
</body>
</html>

 3 函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js函数</title>
    <script>
        // 函数定义
        function add(a,b){
            return a+b;
        }
        var minus = function(a,b){
            return a-b;
        }
        
        //函数调用
        var res = add(1,2);
        alert(res);
        var res = minus(1,2);
        alert(res);
    </script>
</head>
<body>
    
</body>
</html>

4 JavaScript对象

4.1数组

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js数组</title>
    <script>
        //定义数组
        var arr = new Array(1,2,3,4);
        var arr1 = ['a','3',2,'dfd'];
        arr1[40] = 'hell'
        console.log(arr[0]);
        console.log(arr[3]);
        console.log(arr1[3]);
        console.log(arr1.length);
        //forEach()仅仅遍历有值的元素
        arr1.forEach(function(e){
            console.log(e);
        });
    </script>
</head>
<body>
</body>
</html>

4.2 String对象

<script>
    //创建字符串对象
    //var str = new String("Hello String");
    var str = "  Hello String    ";

    console.log(str);
</script>

4.3 JSON对象

1.自定义对象格式

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

2.使用自定义对象

对象名.属性名

3.调用函数

对象名.函数名()

举例:

<script>
    //自定义对象
    var user = {
        name: "Tom",
        age: 10,
        gender: "male",
        eat: function(){
             console.log("用膳~");
         }
    }

    console.log(user.name);
    user.eat();
<script>

简化格式

    var user = {
        name: "Tom",
        age: 10,
        gender: "male",
        // eat: function(){
        //      console.log("用膳~");
        //  }
        eat(){
            console.log("用膳~");
        }
    }

4.JSON对象

JSON对象:JavaScript Object Notation,JavaScript对象标记法。是通过JavaScript标记法书写的文本。其格式如下:

{
    "key":value,
    "key":value,
    "key":value
}

值得注意的是:key必须要用双引号标记(不可以是单引号,更不可以没有),value可以是任意数据类型!!!

应用:

json格式的文本通常作为前后端交互的数据载体,是一个结构化的数据格式,方便转换。

注意:json本质是一个字符串,需要将其转为对象,则需要js的转换。

//json字符串 <===>json对象

//jsonstr是一个json格式的字符串
var jsonstr = '{"name":"Tom", "age":18, "addr":["北京","上海","西安"]}';

//obj是一个json对象
var obj = JSON.parse(jsonstr);

//obj ---> json字符串
var jstring = JSON.stringify(obj);

4.4 BOM对象

BOM对象:全称是Browser Object Model,翻译过来是浏览器对象模型。也就是JavaScript将浏览器的各个组成部分封装成了对象。我们要操作浏览器的部分功能,可以通过操作BOM对象的相关属性或者函数来完成。例如:我们想要将浏览器的地址改为http://www.baidu.com,我们就可以通过BOM中提供的location对象的href属性来完成,代码如下:location.href='http://www.baidu.com'

BOM提供了如下5个对象:

  1. Window:浏览器窗口对象
  2. Navigator:浏览器对象
  3. Screen:屏幕对象
  4. History:历史记录对象
  5. Location:地址栏对象

 1.Window对象

常用

window.alert('hello');

window对象提供了其他属性:

  • history:用于获取history对象
  • location:用于获取location对象
  • Navigator:用于获取Navigator对象
  • Screen:用于获取Screen对象

window提供常用函数:

  • alert():显示带有一段消息和一个确认按钮的警告框。
  • comfirm():显示带有一段消息以及确认按钮和取消按钮的对话框。
  • setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式。
  • setTimeout():在指定的毫秒数后调用函数或计算表达式。

2.Location对象

//获取浏览器地址栏信息
alert(location.href);
//设置浏览器地址栏信息
location.href = "https://www.itcast.cn";

 4.5 DOM对象

DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。

作用:

  • 改变 HTML 元素的内容

  • 改变 HTML 元素的样式(CSS)

  • 对 HTML DOM 事件作出反应

  • 添加和删除 HTML 元素

1.获取dom对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-DOM</title>
</head>

<body>
    <img id="h1" src="img/off.gif">  <br><br>

    <div class="cls">传智教育</div>   <br>
    <div class="cls">黑马程序员</div>  <br>

    <input type="checkbox" name="hobby"> 电影
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 游戏
</body>

<script>
    //1. 获取Element元素

    //1.1 获取元素-根据ID获取
    // var img = document.getElementById('h1');
    // alert(img);

    //1.2 获取元素-根据标签获取 - div
    // var divs = document.getElementsByTagName('div');
    // for (let i = 0; i < divs.length; i++) {
    //     alert(divs[i]);
    // }


    //1.3 获取元素-根据name属性获取
    // var ins = document.getElementsByName('hobby');
    // for (let i = 0; i < ins.length; i++) {
    //     alert(ins[i]);
    // }


    //1.4 获取元素-根据class属性获取
    // var divs = document.getElementsByClassName('cls');
    // for (let i = 0; i < divs.length; i++) {
    //     alert(divs[i]);
    // }



    //2. 查询参考手册, 属性、方法
    var divs = document.getElementsByClassName('cls');
    var div1 = divs[0];
    
    div1.innerHTML = "传智教育666";

</script>
</html>

5 JavaScript事件

什么是事件呢?HTML事件是发生在HTML元素上的 “事情”,例如:

  • 按钮被点击

  • 鼠标移到元素上

  • 输入框失去焦点

  • ........

而我们可以给这些事件绑定函数,当事件触发时,可以自动的完成对应的功能。这就是事件监听。例如:对于我们所说的百度注册页面,我们给用户名输入框的失去焦点事件绑定函数,当我们用户输入完内容,在标签外点击了鼠标,对于用户名输入框来说,失去焦点,然后执行绑定的函数,函数进行用户名内容的校验等操作。JavaScript事件是js非常重要的一部分,接下来我们进行事件的学习。那么我们对于JavaScript事件需要学习哪些内容呢?我们得知道有哪些常用事件,然后我们得学会如何给事件绑定函数。所以主要围绕2点来学习:

  • 事件绑定

  • 常用事件

 5.1 事件绑定

js提供了2种事件绑定的方式:

  1. 通过html标签中的事件属性进行绑定
  2. 通过DOM中的Element元素的事件属性进行绑定
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-事件-事件绑定</title>
</head>

<body>
    <input type="button" id="btn1" value="事件绑定1" onclick="on()">
    <input type="button" id="btn2" value="事件绑定2">
</body>

<script>
    function on(){
        alert("按钮1被点击了...");
    }

    document.getElementById('btn2').onclick = function(){
        alert("按钮2被点击了...");
    }

</script>
</html>

 5.2 常见的事件

事件属性名说明
onclick鼠标单击事件
onblur元素失去焦点
onfocus元素获得焦点
onload某个页面或图像被完成加载
onsubmit当表单提交时触发该事件
onmouseover鼠标被移到某元素之上
onmouseout鼠标从某元素移开

6 总结

JavaScript基础语法不难,上手容易,但要深入进阶学习并不容易,想要进一步学习,需要多看文档,多实践练习,多看经典书籍。编程之路漫漫,我们相互勉励,前行。

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

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

相关文章

1.1为什么需要对数值类型的特征做归一化?

01 知识点&#xff1a;特征归一化&#xff08;第一章 特征工程&#xff09; 摘要&#xff1a; 为什么需要对数值类型的特征做归一化&#xff1f; 简要回答&#xff1a;对数值类型的特征做归一化&#xff0c;使得各指标除以同一个数量级&#xff0c;以便进行分析。 场景描述 为…

AI时代来临:解锁大模型的神秘面纱!

在AI时代的黎明&#xff0c;大模型技术的发展不仅仅是科技进步的一个标志&#xff0c;更是人类文明新篇章的开启。这篇文章旨在揭开大模型的神秘面纱&#xff0c;探索其对未来社会的深远影响。 大模型&#xff0c;作为人工智能领域的一个重要分支&#xff0c;其核心在于构建能…

内网搭建mysql8.0并搭建主从复制详细教程!!!

一、安装mysql 1.1 mysql下载链接&#xff1a; https://downloads.mysql.com/archives/community/ 1.2 解压包并创建相应的数据目录 tar -xvf mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local cd /usr/local/ mv mysql-8.2.0-linux-glibc2.28-x86_64/ mysql mkdir…

Pytorch学习 day01(Jupyter安装、常用函数、三种编辑器的对比)

Jupyter 安装过程中遇到的问题&#xff1a; Anaconda的base环境会自动安装Jupyter&#xff0c;但是如果我们要在其他环境中安装Jupyter&#xff0c;就需要注意&#xff0c;该环境的python版本不能高于3.11&#xff0c;且用以下代码安装&#xff1a; conda install nb_conda_…

迭代模型:让项目管理更加高效与灵活

迭代模型&#xff1a;让项目管理更加高效与灵活 在当今快速变化的市场环境中&#xff0c;项目管理面临着前所未有的挑战。传统的瀑布模型已无法满足不断变化的需求&#xff0c;而迭代模型则以其灵活性和适应性成为了项目管理的新宠。本文将详细介绍迭代模型的概念、特点、应用…

基于vue3 BIMFACE 单楼层平滑切换

模型加载 vue3使用hooks实现模型的加载 hooks文件: useBimLoad.js import { getAccessToken, getViewToken } from "/api/bimface";//获取accessToken和viewToken&#xff0c;自行编写 import { toRefs } from "vue";export function useBimLoad(props)…

Android Tombstone 分析

1.什么是tombstone Tombstone是指在分布式系统中用于标记数据已被删除的记录&#xff0c;通常包含删除操作的时间戳和相关信息。 当一个动态库&#xff08;native程序&#xff09;开始执行时&#xff0c;系统会注册一些连接到 debuggerd 的signal handlers。当系统发生崩溃时…

浪潮服务器使用ARCCONF查看RAID配置信息

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、获取ARCCONF二、使用步骤1.Windows Server 20221.查看RAID控制器2.查询控制器属性3.查询虚拟磁盘属性4.查询物理硬盘属性 2.Ubuntu-22.043.CentOS7 三、配置…

精益工程师3000工资与30000工资的区别!

在同一职场征程中&#xff0c;为何有的精益工程师月入仅三千&#xff0c;而另一些则能达到三万&#xff1f;这一差距&#xff0c;远超薪酬数额的简单对比&#xff0c;它深刻反映了专业能力、工作态度和个人品质的全面差异。 首先&#xff0c;对于刚踏入职场的精益工程师而言&a…

1.3 vue ui框架-element-ui框架

1 前言 ElementUI是一套基于VUE2.0的桌面端组件库&#xff0c;ElementUI提供了丰富的组件帮助开发人员快速构建功能强大、风格统一的页面。 ElementUI官网 https://element.eleme.io 2 安装 运行命令 cnpm i element-ui -S -S表示只在该项目下安装&#xff0c;不是全局安…

Springboot配置定时任务

介绍SpringBoot集成定时任务的过程。 目 录 1、引入相关依赖 2、启动类添加注解 3、定时任务类添加注解 4、cron表达式 5、总结 1、引入相关依赖 SpringBoot自带定时任务配置&#xff0c;只要引入springboot相关类即可。 2、启动类添加注解 在启动类上添加注解EnableSch…

【学习心得】Python调用JS的三种常用方法

在做JS逆向的时候&#xff0c;一种情况是直接用Python代码复现JS代码的功能&#xff0c;达成目的。但很多时候这种方法有明显的缺点&#xff0c;那就是一旦JS代码逻辑发生了更改&#xff0c;你就得重写Python的代码逻辑非常不便。于是第二种情况就出现了&#xff0c;我直接得到…

CDN CloudFlare 接入 OCI 对象存储

在当今数字化时代&#xff0c;网站性能和可用性是业务成功的关键。为了提供快速且可靠的访问体验&#xff0c;许多组织正在寻找有效的内容分发网络&#xff08;CDN&#xff09;解决方案。CloudFlare作为业界领先的CDN提供商&#xff0c;其强大的全球网络基础设施能够加速网站内…

UE学习笔记--解决滚轮无法放大蓝图、Panel等

我们发现有时候创建蓝图之后&#xff0c;右上角的缩放是1&#xff1a;1 但是有时候我们可能需要放的更大一点。 发现一直用鼠标滚轮像上滚动&#xff0c;都没有效果。 好像最大只能 1&#xff1a;1. 那是因为 UE 做了限制。如果希望继续放大&#xff0c;我们可以按住 Ctrl 再去…

Excel常用公式总结非常实用

16个最实用的Excel万能公式 1、多条件判断 IF(And(条件1,条件2..条件N),条件成立返回值) IF(or(条件1,条件2..条件N),条件成立返回值) 2、多条件查找 Lookup(1,0/((条件1*条件2*...条件N)),返回值区域&#xff09; 3、多条件求和 Sumifs(值区域,判断区域1,条件1,判断区域2,条…

hive报错:FAILED: NullPointerException null

发现问题 起因是我虚拟机的hive不管执行什么命令都报空指针异常的错误 我也在网上找了很多相关问题的资料&#xff0c;发现都不是我这个问题的解决方法&#xff0c;后来在hive官网上与hive 3.1.3版本相匹配的hadoop版本是3.x的版本&#xff0c;而我的hadoop版本还是2.7.2的版本…

opencv VideoCapture

videocapture顾名思义视频捕捉&#xff0c;主要是从视频文件、摄像头或网络摄像头获取视频流数据&#xff0c;并将其作为一系列帧进行处理。 我们这里主要实现了获取项目文件夹下的1.mp4视频文件&#xff0c;然后经过灰度变化、均值滤波、边缘检测然后将视频显示出来 #include…

MySQL的索引和B+tree结构

目录 0.关于索引的常见面试题 1.什么是索引&#xff1f; 索引的优缺点 2.索引的数据结构&#xff0c;为什么InnoDb引擎使用Btree作为索引的数据结构&#xff1f; 分析怎样的索引才是好的 二插搜索树 红黑树 B-Tree BTree 哈希 为什么 InnoDB 存储引擎选择使用 Btree 索…

初学HTMLCSS——盒子模型

盒子模型 盒子&#xff1a;页面中所有的元素&#xff08;标签&#xff09;&#xff0c;都可以看做是一个 盒子&#xff0c;由盒子将页面中的元素包含在一个矩形区域内&#xff0c;通过盒子的视角更方便的进行页面布局盒子模型组成&#xff1a;内容区域&#xff08;content&…

商城系统_大型商城系统源码_免费开源商城_OctShop

随着互联网对各行各业的渗透&#xff0c;以及人们网络购物的习惯已经形成&#xff0c;很多商家或企业都开始搭建与开发自己的商城系统平台。商城系统是一个以互联网技术为基础&#xff0c;依托电子商务的电商系统平台。一般大型的的商城系统都会有前台各种客户端&#xff0c;如…