JavaScript:快速入门

1. 数据类型

/**

         * 数据类型: number(包含整数、小数)

         *          string(字符串类型)

         *          boolean(布尔类型)

         *          object(对象类型)

         *          function(函数类型)

         * js中的数据类型为弱类型,定义时通通用var,弱类型不是没有类型,是赋值时再确定

         * 如:var i = 1 此时i为整形

         * 注意:

         * 1.定义的变量可以被重复使用,即使是不同类型也可以重复使用,因为类型在赋值时会重新确定

         * 2.变量声通通用var即可

         * 3.变量声明和Java一致

         * 4.语句结尾可以分号结尾也可以不用分号

         * 5.变量名严格区分大小写

         * 6.如果变量未声明会报错

         * 7.如果变量声明未定义会报undefined

        */

var i = 10.1;
       console.log(typeof i);
       i = "niubi";
       console.log(typeof i);
       i = new Object;
       console.log(typeof i);
       i = fun();
       consloe.log(typeof i);

2. 运算符 

/**

         * 运算符

         * 1.算术运算符:+ - * / %

         * 当 / 和 % 运算不违规时不会报错

         * 如 10 / 0 不报错最终显示结果Infinity

         * 如 10 % 0 不报错最终显示结果NaN

         * 2.关系运算符:> < >= <= == ===

         * 注意: == 比较时会如果数据类型不一致会尝试先将类型转为一致在进行比较

         *      === 比较如果数据类型不一致直接返回false

         * 3.复合运算符 += -= /= %= ++ --

         * 4.逻辑运算符: || &&

         * 5.位运算符: | &

         *

        */

console.log(10 / 0);//Infinity
       console.log(10 % 0);//NaN
       console.log('123' == 123);//true
       console.log('123' === 123);//false

 3. 流程控制

/**

         * 流程控制:分支结构

         * if、switch语句

         * if语句与Java区别:

         * 1.非空的字符串类型都会判断为true

         * 2.非0的数字判断结果都为true(包含小数)

         * 3.非空对象都会判断为true

         *

         * switch语句和Java中的switch几乎一致

        */

if ("false") {
        console.log("true"); //最终打印结果为true
       } else {
        console.log("false");
       }

 /**

         * 流程控制:循环结构

         * while语句和Java中的while几乎一致

         * for语句和Java中的for几乎一致

         *

         * 区别:forEach语句(增强for)

         * 1.js中的增强for不用冒号(:)用关键字(in)

         * 2.js中的var 变量名此时的变量名代表的是当前遍历到数据的下标不是里面的具体数据

        */

 //js中定义数组的语法和Java略有不同,用中括号即[内容],不是用大括号
       var arr = ["北京", "上海", "广州"];
       //增强for
       document.write("<ul>");//打印在浏览器窗口
       for (var index in arr) {
        document.write("<li>" +arr[index] + "</li>");
       }
       document.write("</ul>");

4. 函数

 /**

         * 函数:

         * 语法:

         * 1.function 函数名(){}

         * 2.var 变量名 = function(){}

         *

         * 和Java的区别:

         * 1.没有访问修饰符修饰

         * 2.参数列表不带类型,因为定义变量时全是var弱类型

         * 3.若有返回值直接返回即可,函数不用声明返回值类型或者void

         * 4,参数列表可以传递函数

         * 5.没有异常列表

         * 6.调用函数时传递的实参和函数声明的形参列表可以不不保持一致,若要查看函数实际接收到的参数可使用argument关键字查看

        */

function show() {
        document.write("方式一的函数鸭");
       }

       //调用函数
       show();

       var v1 = function(){
        document.write("方式二的函数鸭");
       }
       v1();

       var v2 = function(s1, s2) {
        document.write(arguments);
        console.log(arguments);
        s1();
        s2();
       }
       v2(show, v1);

 5. 对象

 /**

         * 对象

         * 创建对象语法:

         * 1.new objcet();

         * 创建对象后再添加属性值,对象没有该属性值会自动创建

         * 2.{属性名:属性值,属性名:属性值,函数名:function(){},}

        */

//方式1:
       var person = new Object();
        person.name = "zhangsan";
        person.age = 18;
        person.eat = function () {
            document.write("eat");
        }
        document.write(person.name + person.age);
        person.eat();

        //方式2:
       var person2 = {
            "name": "lisi",
            "age": 19,
            "sleep": function () {
                document.write("睡觉");
            }
        };
        person2.sleep();
        document.write(person2.name + person2.age);

6. JSON格式

/**

         * JSON格式的语法:

         * var perstr = '{"属性名": "属性值", "属性名": "属性值", "属性名": ["属性值", "属性值", "属性值"], "属性名":[{},{},{}]};'

         * 属性名必须用 "" 包裹上

         * 属性值如果是数字可以不用,其余必须用 ""包裹上

         */

var perstr = '{"name": "刘一飞", "age": 18, "hobby": ["跑步", "游泳", "做爱做的事情"], "宠物":[{"name": "猫"}]}';
        //将JSON串转换成对象
        var person = JSON.parse(perstr);
        //打印到控制台
        console.log(person.name);
        console.log(typeof person.name);
        console.log(person.age);
        console.log(typeof person.age);
        console.log(person.宠物[0]);
        console.log(person.hobby);
        //将对象转换成JSON串
        var str = JSON.stringify(person);
        document.write(str);

7. 事件

/**

         * 事件:

         * 绑定事件语法:

         *      1.通过元素的属性绑定 onXXX

         *      2,通过DOM编程动态便规定

         * 注意:

         *  1.一个事件可以同时绑定多个函数

         *  2.一个元素可以同时绑定多个事件

         *

         *

         * 1.鼠标事件:onclick(单击) ondblclick(双击) onmouseover(悬停) onmouseenter(滑入) onmouseeave(滑出)

         * 2.键盘事件:onkeydown(按下) onkeyup(抬起)

         * 3.表单事件: onfocuse(获得焦点) onblur(失去焦点) onchange(焦点内容发生改变并且失去焦点时触发)

         *          onsubmit(表单提交时触发) onreset(表单重置时触发)

         * 4.页面记载事件:onload(页面加载完毕事件)

         *

         *

         * 事件的触发:

         * 1.行为触发

         * 2.DOM编程触发

         *

         * 弹窗的三种方式

         * 1.alert():信息提示框

         * 2.prompt():信息输入框

         * 3.confirm():信息确认框

         */

function testsubmit() {
            //弹窗:信息确认框confirm
            var falg = confirm("提交么?")
            console.log(falg);

            //阻止组件默认提交行为
            event.preventDefault();
        }
        function testrest() {
            //弹窗:信息提示框:alert
            alert("要重置咯");
        }

form onsubmit="testsubmit()" onreset="testrest()">
        账号:<input type="text" onfocus="testfocus()" onblur="testblur()" onchange="testchange()"/>
        <br>
        密码: <input type="password" onfocus="testfocus()" onblur="testblur()" onchange="testchange()" />
        <br>
        <input type="submit"/>
        <input type="reset" />
    
        <hr>
        //<input type="text" onclick="f1()" ondblclick="f2()" />
        <img src="/demo1-html/img/屏幕截图 2024-03-23 162925.png" width="300px" alt="404" typeof="肥奶龙"
        onclick="f1()" ondblclick="f2()" onmouseover="f3()" onmouseenter="f4()" onmouseleave="f5()"/>
        <input type="text" onkeydown="f6()" onkeyup="f7()" onkeypress="f8()" />
        <hr>
    </form>

 onload事件

<script>
        //方式一:
        function ready() {
            //通过dom编程获取按钮对象
            var but1 = document.getElementById("but1");
            //获取按钮对象后绑定事件
            but1.onclick = function () {
                alert("触发按钮咯");
            }
        }
</script>

<!--
    注意:绑定页面加载事件后会进行先读,即先把整个html文件扫描完毕在触发绑定的函数ready()
    因为script标签建议内嵌在head标签中,代码由上往下逐行读取执行,
    若内嵌在head标签中会比body标签先执行,当读取到函数ready()时里面的but1是未知的,未声明的
    而绑定onload事件后会把文档读取完毕再执行事件所绑定的函数ready(),此时不会报错

-->
<body onload="ready()">
    <button id="but1">按钮</button>
</body>
<script>
        //方式二:
        window.onload = function() {
            //通过dom编程获取按钮对象
            var but1 = document.getElementById("but1");
            //获取按钮对象后绑定事件
            but1.onclick = function () {
                alert("触发按钮咯");
            }
        }
</script>

<body>
    <button id="but1">按钮</button>
</body>

8. BOM编程

BOM编程中的BOM指的是浏览器对象模型(Browser Object Model)。BOM提供了独立于内容的、可以与浏览器窗口进行互动的对象结构,使得JavaScript有能力与浏览器“对话”。通过BOM,可以操作浏览器窗口,例如弹出框、控制浏览器跳转、获取分辨率等。BOM是把“浏览器”当做一个“对象”来看待,其对象结构主要包括window对象和window的子对象(如screen、location、history、navigator)。

BOM编程主要是将浏览器窗口的各个组成部分抽象成各个对象,然后通过各个对象的API操作组件行为。例如,window对象具有open和close方法,可以开启和关闭窗口。window.open()方法不仅可以用于导航到指定URL,也可以用于打开新浏览器窗口。

然而,需要注意的是,BOM是浏览器厂商在各自浏览器上定义的,因此其兼容性较差,且尚无统一的标准。不同的浏览器可能会实现不同的方法和属性,这可能导致跨浏览器的不一致性问题。

总的来说,BOM编程是Web开发中非常重要的一部分,它允许开发者通过编程方式控制和操作浏览器窗口及其组件,从而为用户提供更丰富的交互体验。 

/**

         * alert:信息提示框

         * prompt:信息输入框

         * confirm:信息确认框

         * set

         * 注意:window对象由浏览器提供,无需自己创建,window可省略不写

         *

         *

         * history 窗口访问的历史

         * location

         * sessionstorage 会话存储 用于存储会话级数据(当浏览器关闭重启数据会清除)

         * localstorage   本地存储 用于存储永久级数据(当浏览器关闭重启数据仍保留)

         * console 控制台

         */

<script>
        
        function fun1() {
            var str = window.alert("hello");
            console.log(str);
        }
        function fun2() {
            var str = window.prompt("信息输入框框");
            console.log(str);
        }
        function fun3() {
            var str = window.confirm("信息确认框");
            console.log(str);
        }
        function fun4() {
            window.setTimeout(function() {
                console.log("hello");
            }, 2000);
        }
    </script>

<body>
    <button onclick="fun1()">信息提示框</button>
    <button onclick="fun2()">信息输入框</button>
    <button onclick="fun3()">信息确认框</button>
    <button onclick="fun4()">定时任务</button>
</body>

 history 窗口访问历史

script>
        function funA() {
            //上一页
            history.back();
        }
        function funB() {
            // 下一页
            history.forward();
            //history.go(3);//向下跳3页
        }
        function funC() {
            //href是location中的属性,不是方法,此时直接修改属性的url
            location.href="https://blog.csdn.net/2301_79526467?spm=1011.2124.3001.5343";
        }
    </script>

 sessionstorage 会话存储

localstorage 持久存储

<script>
        function funD() {
            console.log("存储");
            //会话级存储,当浏览器关闭重启后数据会丢失
            sessionStorage.setItem("keyA", "valueA");
            //本地存储,浏览器关闭重启后数据还在
            localStorage.setItem("keyB", "valueB");
        }
        function funE() {
            //读取数据
            console.log("读取");
            console.log(sessionStorage.getItem("keyA"));
            console.log(localStorage.getItem("keyB"));
        }
        function funF() {
            //清空数据
            console.log("清空");
            sessionStorage.removeItem("keyA");
            localStorage.removeItem("keyB");
        }
    </script>

9. DOM编程

1 获得document  dom树
        window.document
    2 从document中获取要操作的元素
        1. 直接获取
            var el1 =document.getElementById("username") // 根据元素的id值获取页面上唯一的一个元素
            var els =document.getElementsByTagName("input") // 根据元素的标签名获取多个同名元素
            var els =document.getElementsByName("aaa") // 根据元素的name属性值获得多个元素
            var els =document.getElementsByClassName("a") // 根据元素的class属性值获得多个元素
        2. 间接获取
            var cs=div01.children // 通过父元素获取全部的子元素
            var firstChild =div01.firstElementChild  // 通过父元素获取第一个子元素
            var lastChild = div01.lastElementChild   // 通过父元素获取最后一个子元素
            var parent = pinput.parentElement  // 通过子元素获取父元素
            var pElement = pinput.previousElementSibling // 获取前面的第一个元素
            var nElement = pinput.nextElementSibling // 获取后面的第一个元素
    3 对元素进行操作
        1. 操作元素的属性   元素名.属性名=""
        2. 操作元素的样式   元素名.style.样式名=""  样式名"-" 要进行驼峰转换
        3. 操作元素的文本   元素名.innerText   只识别文本
                           元素名.innerHTML   同时可以识别html代码 
        4. 增删元素
            var element =document.createElement("元素名") // 创建元素
            父元素.appendChild(子元素)               // 在父元素中追加子元素
            父元素.insertBefore(新元素,参照元素)     // 在某个元素前增加元素
            父元素.replaceChild(新元素,被替换的元素) // 用新的元素替换某个子子元素
            元素.remove()                            // 删除当前元素

10. 正则表达式

> 正则表达式是描述字符模式的对象。正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。 

var patt=new RegExp(pattern,modifiers);
或者更简单的方式:
var patt=/pattern/modifiers;  

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用python将pdf插入到docx中

from pdf2image import convert_from_path from docx import Document from docx.shared import Inches,Cm# 将PDF转换为图片 pages convert_from_path(4.pdf, 200) # 200是DPI&#xff0c;可以根据需要调整doc Document()# 计算图片在docx中应该显示的宽度 img_width Cm(2…

单细胞RNA测序(scRNA-seq)细胞分离与扩增

单细胞RNA测序入门可以查看以下文章&#xff1a; 单细胞RNA测序&#xff08;scRNA-seq&#xff09;工作流程入门 1. 单细胞的分离 如何获得单细胞&#xff0c;从而进行下一步的测序过程&#xff1f;具体有以下几种方法&#xff1a; 一、流式细胞仪(FACS)方法 常用的方法之…

深度学习基础模型之Mamba

Mamba模型简介 问题&#xff1a;许多亚二次时间架构(运行时间复杂度低于O(n^2)&#xff0c;但高于O(n)的情况)&#xff08;例如线性注意力、门控卷积和循环模型以及结构化状态空间模型&#xff08;SSM&#xff09;&#xff09;已被开发出来&#xff0c;以解决 Transformer 在长…

LabVIEW转动设备故障诊断系统

LabVIEW转动设备故障诊断系统 随着工业自动化技术的不断进步&#xff0c;转动设备在电力、化工、船舶等多个行业中扮演着越来越重要的角色。然而&#xff0c;这些设备在长期运行过程中难免会出现故障&#xff0c;如果不能及时诊断和处理&#xff0c;将会导致生产效率下降&…

05. 【Android教程】Android 程序签名打包

在上一章&#xff0c;我们创建了自己的 Android 工程&#xff0c;并成功的在模拟器中运行起来。同时提到&#xff0c;工程目录中有一个 bin 目录&#xff0c;运行之后我们可以在此目录下找到我们的 apk。那么不难想到&#xff0c;我们在点“Run”之后&#xff0c;系统会编译我们…

[技术笔记] Flash选型之基础知识芯片分类

1、按照接口分类 分为 Serial串口Flash 和 Parallel并口Flash&#xff1b; 市场大量使用Serial Flash&#xff1b;价格便宜&#xff1b;已满足系统对数据读写速度的要求&#xff1b; Serial Flash已经可以代表 NOR Flash&#xff1b; 小知识&#xff1a; 1&#xff09;在…

深度学习算法概念介绍

前言 深度学习算法是一类基于人工神经网络的机器学习方法&#xff0c;其核心思想是通过多层次的非线性变换&#xff0c;从数据中学习表示层次特征&#xff0c;从而实现对复杂模式的建模和学习。深度学习算法在图像识别、语音识别、自然语言处理等领域取得了巨大的成功&#xf…

Linux基础篇:VMware虚拟机3种常用的网络模式介绍

VMware虚拟机3种常用的网络模式介绍 VMware虚拟机提供了几种不同的网络连接模式&#xff0c;以满足不同场景下的网络需求。以下是VMware虚拟机的三种主要网络模式&#xff1a; 1.桥接模式&#xff08;Bridged Mode&#xff09;网卡名称VMnet0 桥接模式允许虚拟机直接连接到物…

鸿蒙OS开发实例:【瀑布流式图片浏览】

介绍 瀑布流式展示图片文字&#xff0c;在当前产品设计中已非常常见&#xff0c;本篇将介绍关于WaterFlow的图片浏览场景&#xff0c;顺便集成Video控件&#xff0c;以提高实践的趣味性 准备 请参照[官方指导]&#xff0c;创建一个Demo工程&#xff0c;选择Stage模型熟读Har…

解决前后端通信跨域问题

因为浏览器具有同源策略的效应。 同源策略是一个重要的网络安全机制&#xff0c;用于Web浏览器中&#xff0c;以防止一个网页文档或脚本来自一个源&#xff08;域、协议和端口&#xff09;&#xff0c;获取另一个源的数据。同源策略的目的是保护用户的隐私和安全&#xff0c;防…

PostgreSQL到Doris的迁移技巧:实时数据同步新选择!

PostgreSQL可以说是目前比较抢手的关系型数据库了&#xff0c;除了兼具多样功能和强大性能之外&#xff0c;还具备非常优秀的可扩展性&#xff0c;更重要的是它还开源&#xff0c;能火不是没有理由的。 虽然PostgreSQL很强大&#xff0c;但是它也有短板&#xff0c;相对于专业…

【Java数据结构】关于栈的操作出栈,压栈,中缀表达式,后缀表达式,逆波兰表达式详解

&#x1f525;个人主页&#xff1a;努力学编程’ &#x1f525;内容管理&#xff1a;java数据结构 上一篇文章我们讲过了java数据结构的链表&#xff0c;对于链表我们使用了它的一些基本操作&#xff0c;完成了扑克牌小游戏的操作&#xff0c;如果你感兴趣的话&#xff0c;点…

数组类模板(进阶版)

目录 介绍&#xff1a; 分析&#xff1a; 实现&#xff1a; .hpp框架创建 .hpp函数内容 有参构造 拷贝构造&#xff1a; 重载 插入数据 删除数据 通过下标访问 获取数组大小 获取数组容量 析构函数 .cpp框架 int类型数据测试 char类型测试 总代码 .hpp代码 …

是德科技keysight N9000B 信号分析仪

181/2461/8938产品概述&#xff1a; 工程的内涵就是将各种创意有机地联系起来&#xff0c;并解决遇到的问题。 CXA 信号分析仪具有出色的实际性能&#xff0c;它是一款出类拔萃、经济高效的基本信号表征工具。 它的功能十分强大&#xff0c;为一般用途和教育行业的用户执行测试…

wireshark 使用

wireshark介绍 wireshak可以抓取经过主机网卡的所有数据包&#xff08;包括虚拟机使用的虚拟网卡的数据包&#xff09;。 环境安装 安装wireshark: https://blog.csdn.net/Eoning/article/details/132141665 安装网络助手工具&#xff1a;https://soft.3dmgame.com/down/213…

【LIMS】CMA与CNAS:中国认证体系中的两大支柱

目录 一、CMA&#xff1a;[中国计量认证](http://cma-cma.org.cn/)什么是CMA&#xff1f;CMA的作用 二、CNAS&#xff1a;[中国合格评定国家认可委员会](https://www.cnas.org.cn/)什么是CNAS&#xff1f;CNAS的作用 三、CMA与CNAS的关系相互促进共同目标 结语系列文章版本记录…

TCP网络协议栈和Posix网络部分API总结

文章目录 Posix网络部分API综述TCP协议栈通信过程TCP三次握手和四次挥手&#xff08;看下图&#xff09;三次握手常见问题&#xff1f;为什么是三次握手而不是两次&#xff1f;三次握手和哪些函数有关&#xff1f;TCP的生命周期是从什么时候开始的&#xff1f; 四次挥手通信状态…

git基本操作二(小白快速上手)

1、前言 接上篇我们接着来继续讲 2、.gitignore忽略文件 创建一个.gitignore文件&#xff0c;并将其置于项目的根目录下&#xff0c;Git将自动识别并根据该规则忽略相应的文件和目录。 # 忽略所有的 .log 文件 *.log# 但跟踪所有的 build.log 文件 !build.log# 忽略所有的 /lo…

lookup函数

lookup函数 单条件查询 示例 扩展多条件 扩展

文件的顺序读写——顺序读写函数——fgets、fgetc、fputs、 fputc

✨✨ 欢迎大家来到莉莉的博文✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 目录 一、fgetc和fputc函数 1.1 fputc 1.2 fgetc 二、fputs和fgets函数 2.1 fputs函数 2.2 fgets函数 一、fgetc和fputc函数 1.1 fputc 返回类…