jacaScript的详解与使用2

news2024/12/23 23:48:40

javaScript详解与使用2

    • Window.open()和location对象
        • 在HTML中我们一般使用的是a标签进行页面的跳转 而在js中也有自己的跳转页面的方式 window.open() 里面可以传递参数 在跳转的页面使用location对象进行接收
    • 面象对象
      • 什么是面向对象
          • 1.面向对象是一种编程思想 简称为oop,它将一个工程分为若干部分,让后利用对象间的分工与合作,从而加快对该工程的开发,说道面向对象
        • 我们在生活中也会遇到另外一个编程思想 面向过程
          • 面向过程:
          • 面向对象:
      • 面向对象的特性
        • 面向过程的案例
        • 面向对象案例
    • JS如何创建对象
        • 使用new关键字
        • 使用字面量创建对象
        • 使用构造函数进行创建
          • 工厂函数创建对象 主要体现形式为函数封装
          • 原型上创建对象
        • 构造函数+原型(混合模式)
    • 对象的继承
        • 通过原型链进行继承
        • 对象冒充继承 利用 apply call bind 改变this指向
        • 组合式继承 (集合了原型链和对象)
        • extends 类继承 (ES6)
        • H5新增属性本地存储于会话存储
      • 结语不积跬步 无以至千里 ,我们学习到的内容可能存在很多,但是我们在学习的时候将这些知识成为我们前进的养分,从而提升我们。

Window.open()和location对象

在HTML中我们一般使用的是a标签进行页面的跳转 而在js中也有自己的跳转页面的方式 window.open() 里面可以传递参数 在跳转的页面使用location对象进行接收

简单的案例

两个单独的页面 实现页面之间的相互跳转
这里不同于以前的是 我们在元素后面绑定的时间 初期让我们看着很难受 但是在后面学习到vue框架的时候 大部分使用的是这种行绑定事件
如:

//给按钮绑定点击事件 @click就是相当于一个点击事件 是vue底层为我们封装了该方法
<button @click="事件处理函数"></button>
<!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>

    <button onclick="window.open('./index.html?id=1')">跳转</button>
    <script>
    </script>
</body>

</html>

跳转的页面

<!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>
    <h1>这是index页面</h1>
    <script>
        console.log(location);
        let str = location.search.substring(location.search.indexOf('?') + 1).split('=')[1]
        // console.log(str);
        document.body.innerHTML += str
    </script>
</body>

</html>

location对象

面象对象

什么是面向对象

1.面向对象是一种编程思想 简称为oop,它将一个工程分为若干部分,让后利用对象间的分工与合作,从而加快对该工程的开发,说道面向对象

我们在生活中也会遇到另外一个编程思想 面向过程

面向过程:
1. 程序是按照执行顺序依次执行的
2. 它比较适用于功能结构比较单一 结构比较简单的程序设计
3. 无法用线性思维解决问题
面向对象:
1. 程序是分工合作完成的 方便后期的管理与维护
2. 它可以适用于复杂的程序设计 进行模块化开发 比如封装一些数据 可以在需要使用的地方进行调用 数据和函数式相互关联的
3. 可以用线性思维解决问题

面向对象的特性

1. 封装
2. 继承
3. 多态

面向过程的案例


        function Start(name, attr) {
            console.log('姓名:' + name + '\t' + '代表作:' + attr);
        }
        let p = { name: "刘德华", attr: "冰雨" }
        let p1 = { name: "张学友", attr: "烦恼" }
        console.log(p);
        console.log(p1);

面向对象案例

    function Person(name, age) {
            this.name = name
            this.age = age
        }

        let p = new Person('孙悟空', 2000)
        console.log(p);
        let p1 = new Person('猪八戒', 400)
        console.log(p1);

JS如何创建对象

使用new关键字

let obj = new Object()
console.log(obj)

使用字面量创建对象

let obj= {name:"孙悟空",attr:"筋斗云"}

使用构造函数进行创建

function Person(name,age){
	this.name =name
	this.age = age
}

let p = new Person()
console.log(p)
工厂函数创建对象 主要体现形式为函数封装
function createObj(iName,iAge,iGneder){
	let obj  = new Object()
	obj.iName= iName
	obj.iAge= iAge
	obj.iGender= iGender
	obj.fun = function (){
	}
	return obj
}
let xm = new createObj('小王',20,'男')
console.log(xm)
原型上创建对象
//prototype 原型 优点:可以共享属性和方法 但是不能传入实参 
function Person(uname){
	//创建原型属性
	Person.prototype.uname = uname
	//创建原型的方法
	Person.prototype.fun = function (){
		console.log('1111')
	}
}
//使用的时候 我们new一下就可以
let ldh = new Person('刘德华')
console.log(ldh)

构造函数+原型(混合模式)

function Phone(name,brand){
	this.name = name
	this.brand = brand
}
//共用属性都是可以开视频
Phone.prototype.call = function(){
	console.log('打电话')
}
let xm = new Phone('小米','小米13')
console.log(xm)
let hw  = new Phone('华为','华为p60')
console.log(hw)

对象的继承

继承是面向对象的三大特性之一 ,它可以帮助我们继承父类的一些特性,从而简化我们的代码

通过原型链进行继承

//优点:实现了方法和属性的共用 可以实现共享
//缺点:原型链继承如果遇到引用数据类型 会造成一改全改的现象

//父类
function Father(){
	this.name = '小猪猪'
	this.fun = function(){
		console.log(this.uname)
	}
}
//子类
function Son(uname){
	this.uname = uname
	this.age = 18 
}
// 如果子类继承父类 子类和父类有相同的属性和方法 子类覆盖父类
Son.prototype = new Father()
console.log(new Son('小红红').uname)

对象冒充继承 利用 apply call bind 改变this指向

//优点解决了原型链不能传参的问题 以及引用数据类型修改的问题
//缺点:不能继承父类原型上的所有属性和方法
function fun1(uname, age) {
            // this指向window
            this.uname = uname;
            this.age = age;
            this.arr = [1, 2, 3, 4];
            this.create = function() {
                console.log(this);
            }
            fun1.prototype.init = function()在这里插入代码片 {
                console.log(1111);
            }
        }

        function fun2(uname, age) {
            // console.log(this);
            // this 指向fun2的实例
            fun1.call(this, uname, age);
            // fun1.apply(this, [uname, age]);
            // fun1.bind(this, uname, age)();
        }

组合式继承 (集合了原型链和对象)

//优点:解决了以上的缺点
//缺点:调用了两次父类
 function fun1(uname, age) {
            this.uname = uname;
            this.age = age;
            this.arr = [1, 2, 3, 4];
            this.create = function() {
                console.log(this);
            }
            fun1.prototype.init = function() {
                console.log(1111);
            }
        }

        function fun2(uname, age) {
            fun1.call(this, uname, age);
        }
        fun2.prototype = new fun1();

        console.log(new fun2('xxx', 19));

        let f1 = new fun2('xxx', 19);
        console.log(f1);
        f1.arr.push(5);
        console.log(f1.arr);
        let f2 = new fun2('xxxx', 20);
        console.log(f2);
        console.log(f2.arr);
        console.log(f1);
        console.log(f1.uname);
        console.log(f1.age);
        f1.init();

extends 类继承 (ES6)

 //类的继承 
   extends
        class Fun {
            constructor(uname, age) {
                this.uname = uname;
                this.age = age;
            }
        }
        class Fun1 extends Fun {
            constructor(uname, age) {
                super(uname, age)
            }
        }
        // new Fun();
        console.log(new Fun1('xcx', 18));

H5新增属性本地存储于会话存储

本地存储一般使用与存储用户数据 一般使用的是loacalStorage 它可以保存到本地中防止数据丢失问题
与之相对的是会话存储sessionStorage 浏览器关闭之后 数据消失 一般可用于页面交互的时候使用
对应的API方法:
	setItem():设置对应的数据 里面有两个参数 第一个存储数据的key 另外是存储数据的value
	getItem():获取到对应的数据 里面存储在一个参数 输入对应数据的key 可以获取到对应key的值
	removeItem():移除对应的数据 ,同样里面是一个参数key
	clear():清空数据

因为存储数据的时候 需要的是字符串 这里面我们认识到JSON.stringfiy() 这样可以把数据转换为字符串的形式 这样就可以存储
获取的时候 提取到的字符串不方便我们除了 我们又认识了JSON.parse() 将字符串转换为对象 方便我们从中拿取数据
当然这两个API方法也可以实现深拷贝

这里是以谷歌浏览器为例:首先点击f12 进入到控制面板 然后按照下图的顺序进行查看
在这里插入图片描述

结语不积跬步 无以至千里 ,我们学习到的内容可能存在很多,但是我们在学习的时候将这些知识成为我们前进的养分,从而提升我们。

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

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

相关文章

Qt快速学习(二)--QMainWindow,对话框,布局管理器,常用控件

目录 1 QMainWindow 1.1 菜单栏 1.2 工具栏 1.3 状态栏 1.4 铆接部件 1.5 核心部件&#xff08;中心部件&#xff09; 1.6 资源文件 2 对话框QDialog 2.1 基本概念 2.2 标准对话框 2.3 自定义消息框 2.4 消息对话框 2.5 标准文件对话框 3 布局管理器 3.1 系统…

华为OD机试 - 数字颠倒(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、Java算法源码投机取巧七、效果展示 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&am…

回归预测 | MATLAB实现PSO-RF粒子群优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现PSO-RF粒子群优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现PSO-RF粒子群优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果…

链表的顶级理解

目录 1.链表的概念及结构 2.链表的分类 单向或者双向 带头或者不带头 循环或者非循环 3.无头单向非循环链表的实现 3.1创建单链表 3.2遍历链表 3.3得到单链表的长度 3.4查找是否包含关键字 3.5头插法 3.6尾插法 3.7任意位置插入 3.8删除第一次出现关键字为key的节点 …

ROS2与ROS1通信

文章目录 准备工作通信包安装启动ros1_bridge在ROS1中启动相机节点在ROS2中查看ROS1话题 准备工作 本机系统20.04 ROS2-foxyROS1-noetic 两个版本的ROS 均需要按照官网教程进行安装&#xff0c;安装完成以后&#xff0c;source环境变量都不放到~/.bashrc文件里面 通信包安装…

MES管理系统和MOM系统哪个更适合中小企业

中小型制造企业需要在选择制造管理系统前进行充分的需求分析和系统评估&#xff0c;结合企业的战略目标和资源状况来做出决策。MES和MOM系统是两种常见的制造管理系统&#xff0c;它们都能够帮助企业提高生产效率、降低生产成本&#xff0c;实现持续发展。然而&#xff0c;MES管…

模糊测试面面观 | 模糊测试对软件质量和性能的影响

随着软件行业的几十年发展和数字化转型的加快&#xff0c;我国已经度过了软件行业的野蛮发展时代。用户对软件的质量和性能要求越来越高&#xff0c;已经成为企业成功与否的至关重要条件。然而&#xff0c;随着软件规模的扩大和黑客攻击方式的多样化&#xff0c;保障软件的安全…

【kubernetes】Helm

什么是 Helm 每个成功的软件平台都有一个优秀的打包系统&#xff0c;比如Debian、Ubuntu 的 apt&#xff0c;RedHat、CentOS 的 yum。Helm 则是 Kubernetes上 的包管理器&#xff0c;方便我们更好的管理应用。 在没使用 helm 之前&#xff0c;向 kubernetes 部署应用&#xf…

昌硕科技、世硕电子同步上线法大大电子合同

近日&#xff0c;世界500强企业和硕联合旗下上海昌硕科技有限公司&#xff08;以下简称“昌硕科技”&#xff09;、世硕电子&#xff08;昆山&#xff09;有限公司&#xff08;以下简称“世硕电子”&#xff09;的电子签项目正式上线。上线仪式在上海浦东和硕集团科研大楼举行&…

VSCode如何为远程安装预设(固定)扩展

背景 在使用VSCode进行远程开发时&#xff08;python开发之远程开发工具选择_CodingInCV的博客-CSDN博客&#xff09;&#xff0c;特别是远程的机器经常变化时&#xff08;如机器来源于动态分配&#xff09;&#xff0c;每次连接新的远程时&#xff0c;都不得不手动安装一些开…

操作系统-笔记-第四章-文件管理

目录 四、第四章——文件管理 1、文件管理——基础概念 &#xff08;1&#xff09;文件结构 &#xff08;2&#xff09;操作系统提供的接口 &#xff08;3&#xff09;总结 2、文件的逻辑结构 &#xff08;1&#xff09;有结构文件&#xff08;类似SQL表文件&#xff09…

数据分析案例丨商品零售购物篮分析(下)

数据分析案例丨商品零售购物篮分析&#xff08;上&#xff09; 03 数据预处理 通过对数据探索分析&#xff0c;发现数据数据完整&#xff0c;并不存在缺失值。建模之前需要转变数据的格式&#xff0c;才能使用apriori函数进行关联分析。对数据进行转换&#xff0c;如代码清单…

TIA博途中的数据类型基本介绍

TIA博途中的数据类型基本介绍 基本数据类型 Bool 布尔 FALSE 或TRUE 举例: I0.0 Q0.2 M100.0 DB0.DBX2.5 Byte 字节 二进制:2#0000 0000 到2#1111 1111 无符号整数:0到255 有符号整数:-128到127 十六进制:16#00到16#FF 举例: IB2 MB100 DB1.DBB2 Word 字 二进制:2#0000 …

钉钉公布AI版本商业定价,调用一次大模型不到5分钱

8月22日&#xff0c;在2023年钉钉生态大会上&#xff0c;钉钉总裁叶军公布了钉钉全面智能化的最新进展&#xff1a;已有17条产品线、55个场景全面接入大模型&#xff0c;完成智能化再造&#xff1b;钉钉同时面向生态伙伴和客户开放智能化底座AI PaaS&#xff0c;表示将用大模型…

基于Java水果售卖系统设计与实现(论文+源码)_kaic

第1章 绪 论 1.1 课题研究的背景 随着信息技术的发展&#xff0c;互联网经济快速兴起&#xff0c;电子商务发展迅速&#xff0c;网上购物受到人们的广泛关注和普遍欢迎。水果传统售卖模式的缺点不断暴露&#xff0c;不能满足当今人们快节奏的生活模式需要。将水果的售卖带…

Dubbo服务

dubbo服务分为服务的提供者和消费者 1.服务提供者在nacos注册后通过 DubboService 暴漏服务 2.dubbo服务消费者通过 DubboReference来进行远程服务调用 dubbo的高级特性 1.启动检查&#xff1a;如果启动消费者无提供者则报错&#xff0c;通过配置文件check&#xff1a; fa…

实战演练 | Navicat 导入向导

数据库工具中的导入导出功能是指将数据从一个数据库系统导出到另一个数据库系统&#xff0c;或者将数据从一个文件格式导出到另一个文件格式。导入导出功能可以通过各种方式实现&#xff0c;例如使用SQL语句、数据库管理工具或第三方库和工具。在进行数据迁移时&#xff0c;通常…

排序算法合集

F B I W a r n i n g : \color{red}FBI \qquad Warning: FBIWarning: 本人没有完整的计算机科班的教育经历&#xff0c;但是一直在兢兢业业&#xff0c;努力学习。 这些排序函数都是自己零零散散写的&#xff0c;也没有经过深思熟虑和优化&#xff0c;纯粹是为了自娱自乐。 …

c++ qt--信号与槽(一) (第三部分)

c qt–信号与槽(一) &#xff08;第三部分&#xff09; 一.用qt自带的方法添加信号槽 1.第一种 1.如何添加 2.在何处进行绑定 2.第二种 1.如何添加 2.在何处进行绑定 而且会在mainwindow.h中添加槽函数的声明&#xff0c;在mainwindow.cpp中添加槽函数的定义 在mainwindow…

C语言入门 Day_8数据与运算小结

目录 前言 1.精度 2.运算 2.易错点 3.思维导图 前言 到目前为止我们一共学习了四种数据类型&#xff0c;他们分别是表示整数的整型&#xff1b;表示小数的浮点型&#xff1b;表示字符的字符型&#xff1b;和表示布尔数的布尔型。 表示整数的整型&#xff0c;它的变量类型名…