JavaScript函数及面向对象
JavaScript函数及面向对象
4.1、函数定义及变量作用域
定义方式一
绝对值函数
function abs(x){if(x>=0){return x;}else{return -x;}
}
一旦执行到return代表函数结束,返回结果!
如果没有执行return,函数执行完也会返回结果,结果就是undefined
定义方式二
var abs = function(x){if(x>=0){return x;}else{return -x;}
}
function(x){…} 这是一个匿名函数,但是可以把结果赋值给abs,通过abs就可以调用函数
方式一和方式二等价!
调用函数
abs(10) //10
abs(-10) //10
参数问题:JavaScript可以传任意个参数,也可以不传递参数~
参数进来是否存在的问题?
假设不存在参数,如何规避
function abs(x){//手动抛出异常if(typeof x!=='number'){throw 'Not a number';}if(x>=0){return x;}else{return -x;}
}
arguments
arguments是一个JS免费赠送的关键字
代表:传递进来的所有参数,是一个数组
var abs=function(x){//手动抛出异常console.log("x=>"+x);for (var i = 0; i < arguments.length; i++) {console.log(arguments[i]);}if(typeof x!=='number'){throw 'Not a number';}if(x>=0){return x;}else{return -x;}
}
问题:arguments包含所有的参数,我们有时候想使用多余的参数来进行附加操作。需要排除已有的参数~
rest
以前:
if(arguments.length>2){for (let i = 2; i < arguments.length; i++) {//.....}
}
ES6引入的新特性,获取除了已经定义的参数之外的所有参数~ …
<script>function aaa(a,b,...rest){console.log("a=>"+a);console.log("b=>"+b);console.log(rest)}
rest参数只能写在最后面,必须用…标识。
4.2、变量的作用域
在JavaScript中,var定义变量实际是有作用域的。
假设是在函数体中声明,则在函数体外不可以使用~ (闭包)
function qj(){var x=1;x=x+1;
}
x=x+2; //Uncaught ReferenceError: x is not defined
如果两个函数使用了相同的变量名,只要在函数内部,就不冲突
内部函数可以访问外部函数的成员,反之则不行。
养成规范:所有的变量定义都放在函数的头部,不要乱放,便于代码维护;
全局函数
//全局变量
function f(){console.log(x);
}
f();
console.log(x);
全局对象window
var x='xxx';
alert(x);
alert(window.x); //默认所有的全局变量,都会自动绑定在window对象下;
alert()这个函数本身也是一个window变量
4.3、方法
定义方法
方法就是把函数放在对象的里面,对象只有两个东西:属性和方法
var kuangshen={name:'秦疆',birth:2020,//方法age:function(){//今年 - 出生的年var now = new Date().getFullYear();return now - this.birth;}
}
//属性
kuangshen.name
//方法,一定要带()
kuangshen.age()
this.代表什么?才开代码来看看
function getAge(){//今年 - 出生的年var now = new Date().getFullYear();return now - this.birth;}
var kuangshen={name:'秦疆',birth:2020,//方法age:getAge
}
this是无法指向的,是默认指向调用它的那个对象;
apply
在js中可以控制this指向
function getAge(){//今年 - 出生的年var now = new Date().getFullYear();return now - this.birth;}
var kuangshen={name:'秦疆',birth:2020,//方法age:getAge
}getAge.apply(kuangshen,[]);//this,指向kuangshen,参数为空
相关文章:
JavaScript函数及面向对象
JavaScript函数及面向对象 4.1、函数定义及变量作用域 定义方式一 绝对值函数 function abs(x){if(x>0){return x;}else{return -x;} }一旦执行到return代表函数结束,返回结果! 如果没有执行return,函数执行完也会返回结果,…...
【chartGPT】我们要不要搞chartGPT?
话题:官兔子并未表态要研发chartGPT,chartGPT炒的很火,我们到底要不要投入研发呢? 问题起因:我个人是做技术的,也玩炒股。就昨天吧,看到一个热评【马斯克等呼吁暂停chartGPT5的研发,周鸿炜谈不发展才是最大…...
java——date时间类型操作
目录 1.date类型使用 2.获取想要的自定义时间点 3.date类型与String类型转换 4.date时间先后比较 1.date类型使用 在java中,日期时间用java.util.Date类来表示,调用默认构造器Date(),将会创建一个当前系统时间的Date对象,时间…...
应急响应——IDSIPSmsf流量后门分析
目录 0x01 网页篡改与后门攻击防范应对指南 0x02 主要需了解:日志存储,Webshel检测,分析思路等...
项目二:电子骰子
项目二:电子骰子 文章目录项目二:电子骰子一、导入(5分钟)学习目的二、新授(65分钟)1.预展示结果(5分钟)2.本节课所用的软硬件(5分钟)3.硬件介绍(1分钟)4.图形化块介绍(1分钟)5.单个模块的简单使用(1分钟)6.电子骰子编程逻辑分析(25分钟)7.电…...
D. Genius‘s Gambit(很多情况)
Problem - D - Codeforces 已知三个整数a b k。求两个二进制整数z和y ( > y)满足1. y都由a个0和b个1组成;2. X - y(也是二进制形式)恰好有k个1。z和y不允许使用前导零。输入唯一的一行包含三个整数a, b和k (0 <a;1 <b;0<k < ab< 2- 105) -结果中0、1和1的个数…...
jsp824汽车维修保养管理系统javaEE+mysql
主要实现 1.车主信息管理:管理员发布车主信息后,普通用户查询到该车主信息,用户选择某个车主信息,查询车主信息,管理员审核添加,或删除车主信息。 2.保养信息管理:管理员…...
Linux下C/C++ redis协议(RESP)解析
Redis是一个开源的内存键值数据存储,最常用作主数据库、缓存、消息代理和队列。Redis提供了亚毫秒的响应时间,在游戏、金融科技、广告技术、社交媒体、医疗保健和物联网等行业实现了快速而强大的实时应用。 Redis连续五年成为开发人员最喜爱的数据库。开…...
IDEA 性能优化设置
在我们日常使用IDEA进行开发时,可能会遇到许多卡顿的瞬间,明明我们的机器配置也不低啊?为什么就会一直卡顿呢? “ 原来这是因为IDEA软件在我们安装的时候就设置了默认的内存使用上限(通常很小),…...
蓝桥杯刷题冲刺 | 倒计时4天
作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾倒计时4天,冲冲冲!!!🐾 文章目录1.整除序列2.走方格3.前缀和4.差分矩阵5.翻硬币1.整除序列 题目 链接: 2065. 整除序列 - Ac…...
阿里测试7年经验,从功能测试到自动化测试,我整理的超全学习指南
做测试七年多,有不少人问过我下面问题: 现在的手工测试真的不行了吗?测试工程师,三年多快四年的经验,入门自动化测试需要多久?自学自动化测试到底需要学哪些东西?不得不说,随着行业的…...
jar加密后当作SDK给别人使用(可maven引入)
1、不加密jar,进行提取公共代码,打成jar包,并用maven引入 参考文章:以maven添加依赖的方式导入自己写的项目。springboot 提取公共类,多服务共用 2、加密jar,使用ClassFinal进行jar的加密 官网地址:Clas…...
【编程基础】032、C语言中结构体在解题中的应用
文章目录C语言中结构体在解题中的应用1、结构体之时间设计2、结构体之成绩记录3、结构体之成绩统计2C语言中结构体在解题中的应用 1、结构体之时间设计 题目描述 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问…...
Kotlin 是后端开发的未来
Kotlin 是后端开发的未来 严格类型、命名参数、多范式语言 您今天遇到的每个后端开发人员都会说他们使用 JavaScript、Python、PHP 或 Ruby 编写代码。近年来,您会遇到一小部分人转而使用 Kotlin 作为他们创建 Web 服务器的语言选择。由于我在学习Ktor,所…...
Vue3学习笔记(9.1)
Vue.js style(内联样式) 我们可以在v-bind:style直接设置样式,可以简写:style <!--* Author: RealRoad1083425287qq.com* Date: 2023-04-02 19:41:53* LastEditors: Mei* LastEditTime: 2023-04-03 15:41:44* FilePath: \vscode\Vue3_li…...
MinIO 环境变量泄漏漏洞(CVE-2023-28432)
漏洞描述 MinIO 是一个开源的对象存储服务器。 MinIO RELEASE.2023-03-20T20-16-18Z之前版本中的 bootstrap-peer-server.go#VerifyHandler 方法存在敏感信息泄漏漏洞,攻击者可向集群部署中的 MinIO 服务器的 /minio/bootstrap/v1/verify API发送POST请求…...
数组转字符串、字符串转数组的方法
一.数组转字符串方法 方法转化后类型用法特点toString()string将数组转换成了一个字符串默认用","隔开toLocaleString()string把数组转换成本地约定的字符串默认用","隔开join()string将数组元素连接起来以构建一个字符串 默认用","隔开 可以随…...
local fault和remote fault
1、什么是 local fault和remote fault? 在IEEE802.3协议中,local fault和remote fault是一种错误序列,在PCS层定义。 MAC RX侧收到local fault时,意味本地链路没有正常建立链路,MAC RX侧收到remote fault时,意味对端没…...
二叉树搜索树 AVL树
文章目录1. 二叉搜索树1.1 二叉搜索树概念1.2 二叉搜索树操作1.3 二叉搜索树的实现1.4 二叉搜索树的应用1.5 二叉搜索树的性能分析2. AVL 树2.1 AVL树的概念2.2 AVL树节点的定义2.3 AVL树的插入2.4 AVL树的旋转2.5 AVL树的验证2.7 AVL树的性能3. 具体代码实现区3.1 二叉搜索树的…...
nginx配置代理多个前端资源
log: 背景 两套不同的前端使用同一个后端服务,前端使用的Nginx代理的dist包 前端 vueelementui 后端 Pythonflask Nginx代理设置 1.进入Linux机器,whereis nginx 查看Nginx安装位置 2.进到Nginx配置文件下 3.vim nginx.conf 通过多个server管理…...
Hermes Agent框架对接Taotoken聚合API的详细配置步骤指南
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Hermes Agent框架对接Taotoken聚合API的详细配置步骤指南 1. 准备工作 在开始配置之前,你需要准备好两样东西…...
你的桌面布局管家:PersistentWindows如何让窗口位置记忆永不丢失
你的桌面布局管家:PersistentWindows如何让窗口位置记忆永不丢失 【免费下载链接】PersistentWindows fork of http://www.ninjacrab.com/persistent-windows/ with windows 10 update 项目地址: https://gitcode.com/gh_mirrors/pe/PersistentWindows 你是否…...
Go语言内存管理与性能优化
Go语言内存管理与性能优化 一、内存管理基础 Go语言采用自动内存管理机制,开发者无需手动管理内存分配和释放。理解Go的内存管理机制对于编写高性能代码至关重要。 Go内存分配器 Go使用tcmalloc(Thread-Caching Malloc)作为底层内存分配器&am…...
BurpSuite汉化革命:打破语言壁垒,重塑中文安全测试体验
BurpSuite汉化革命:打破语言壁垒,重塑中文安全测试体验 【免费下载链接】BurpSuiteCN-Release BurpSuite汉化发布 项目地址: https://gitcode.com/gh_mirrors/bu/BurpSuiteCN-Release 在网络安全测试领域,Burp Suite无疑是渗透测试工…...
ARIS:基于技能化工作流的AI自主研究系统设计与实践
1. 项目概述:ARIS,一个让AI在你睡觉时做研究的自主工作流 如果你是一名机器学习或计算机科学领域的研究者,我猜你肯定有过这样的体验:一个绝妙的想法在深夜闪现,你兴奋地爬起来记下几行潦草的笔记,然后第二…...
低空经济公司官网与宣传材料常见的5个问题:为什么看起来先进却不够可信
在B2B企业的品牌升级和内容分发中,“低空经济公司官网与宣传材料常见的5个问题:为什么看起来先进却不够可信”不是一个单点问题,而是关系到客户理解效率、销售推进效率和品牌长期信任感的系统问题。低空经济企业在表达上最容易走向一个误区&a…...
深度学习遥感图像语义分割:从数据准备到模型优化
深度学习遥感图像语义分割:从数据准备到模型优化 摘要:随着遥感传感器技术的飞速发展,海量高分辨率遥感图像数据的获取越来越便捷,如何高效、精准地从这些数据中提取地物信息成为遥感解译领域的核心挑战。深度学习凭借其强大的特征自主学习能力,尤其是卷积神经网络(CNN)…...
3个步骤轻松下载B站视频:BilibiliDown全平台解决方案
3个步骤轻松下载B站视频:BilibiliDown全平台解决方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi…...
深度解析网易游戏NPK文件解包:从二进制迷宫到资源提取的完整实战指南
深度解析网易游戏NPK文件解包:从二进制迷宫到资源提取的完整实战指南 【免费下载链接】unnpk 解包网易游戏NeoX引擎NPK文件,如阴阳师、魔法禁书目录。 项目地址: https://gitcode.com/gh_mirrors/un/unnpk 你是否曾经好奇网易热门游戏如《阴阳师》…...
STM32CubeMX配置I2C驱动ADS1115,从零开始实现高精度电压采集(附完整工程源码)
STM32CubeMX配置I2C驱动ADS1115:从零实现工业级电压采集系统 在嵌入式开发中,高精度模拟信号采集一直是工程师面临的挑战。当我们需要测量微弱电压信号或实现多通道同步采集时,STM32内置ADC往往难以满足精度要求。本文将手把手教你使用STM32C…...
