当前位置: 首页 > news >正文

带你快速入门js高级-基础

1.作用域

  1. 全局
    1. script
    2. xx.js
  2. 局部
    1. 函数作用域
    2. {} 块作用域 const let

2.闭包

函数外有权访问函数内的变量, 闭包可以延长变量生命周期

function 函数名 () {return function () {// 这里的变量不会立刻释放}
}

3.垃圾回收

  1. 不在使用(引用的变量), 防止占用内存,需要被自动垃圾回收

  2. 全局变量: 其他位置可能在使用,不会当成垃圾 除非指定变量不在使用

    var user = { name:'zs', age:18 }user = null;  // 垃圾回收
    
  3. 局部变量: 函数体中的变量

    思考? 函数体中变量不回收, 函数调用完成后, 只要该变量不在被引用,

    function fn() {var age = 10;
    }
    

4.变量提升/函数提升

  // 变量提升 提升的变量声明// 变量赋值 不会提升console.log(age);var age = 17;var name = 'ls'function fn () {// 变量提升  当前作用域 最上面var nameconsole.log(name);name = 'zs'}fn();// 函数提升// 函数存在变量提升  函数的声明提升   // 提升有优先级:函数优先级高于变量console.log(fn);function fn() {console.log(1);}var fn = 10;

总结:1. 变量声明提升到当前作用域最上面 2.赋值不会被提升 3. 提升优先级: 函数>变量

5.动态参数

     function say (name='东方', age=18) {console.log('名字:',name, '年龄',age);}//  say()say('zs', 17)

总结: 调用方法时, 如传参就使用传递的参数 如果没传就使用默认值

6.函数剩余参数

        function fn (a, ...args) {console.log(args);}fn(10,20,34);

总结: 1. 剩余参数只能放在形参最后 2. 数组形式存放实参 3. 不计入函数的length

7.箭头函数

  // const p1 = new Person()// console.log(p1)const Star  = ()=>{// 1. 箭头函数不能使用arguments// 2. 箭头函数没有this  不能使用new 创建对象   箭头函数不能当作类// console.log(arguments);console.log(this);}let _that;function Person () {// console.log(arguments);_that = this;console.log(this);}// Star();// const s = new Star();const s = new Person();console.log(_that == s);// console.log(s, 's')// Person(1,2,3,4,5,'上山');// Star(1,2,3,4,5,'上山')

总结:

       1. 箭头函数无this, 不能实例化1. 箭头函数无arguments(伪数组)

相关文章:

带你快速入门js高级-基础

1.作用域 全局 scriptxx.js 局部 函数作用域{} 块作用域 const let 2.闭包 函数外有权访问函数内的变量, 闭包可以延长变量生命周期 function 函数名 () {return function () {// 这里的变量不会立刻释放} }3.垃圾回收 不在使用(引用的变量), 防止占用内存,需要…...

数据结构与算法-链表(力扣附链接)

之前我们对C语言进行了一定的学习,有了一些基础之后,我们就可以学习一些比较基础的数据结构算法题了。这部分的知识对于我们编程的深入学习非常有用,对于一些基本的算法,我们学习之后,就可以参加一些编程比赛了&#x…...

多线程JUC:等待唤醒机制(生产者消费者模式)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:多线程&JUC:解决线程安全问题——synchronized同步代码块、Lock锁 📚订阅专栏:多线程&am…...

无人机动力系统高倍率锂聚合物电池介绍,无人机锂电池使用与保养,无人机飞行控制动力源详解

无人机电池使用及保养 电池是无人机飞行的动力来源,也是一个消耗品,对电池充分了解,采取正确的使用方法,妥善进行维护保养将有助于提高飞行的安全性、延长电池的使用寿命。以下将详细对电池的使用和管理进行讲解。 高倍率锂聚合物电池的含义…...

[BeginCTF]真龙之力

安装程序 双击安装 出现了安装失败的标签&#xff0c;开发者不允许测试。 查看Mainfest入口文件 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android" android:versionCo…...

手写分布式存储系统v0.3版本

引言 承接 手写分布式存储系统v0.2版本 &#xff0c;今天开始新的迭代开发。主要实现 服务发现功能 一、什么是服务发现 由于咱们的服务是分布式的&#xff0c;那从服务管理的角度来看肯定是要有一个机制来知道具体都有哪些实例可以提供服务。举个例子就是&#xff0c;张三家…...

除夕快乐!

打印的简单实现&#xff0c;祝大家新的一年万事顺意&#xff01; 龙年大吉&#xff01; #include <stdio.h> #include <windows.h> #include <string.h>int main() {const char* message "除夕快乐!";int i;for (i 0; i < strlen(message);…...

17:定时器编程实战

1、实验目的 (1)使用定时器来完成LED闪烁 (2)原来实现闪烁时中间的延迟是用delay函数实现的&#xff0c;在delay的过程中CPU要一直耗在这里不能去做别的事情。这是之前的缺点 (3)本节用定时器来定一个时间&#xff08;譬如0.3s&#xff09;&#xff0c;在这个定时器定时时间内…...

Fink CDC数据同步(五)Kafka数据同步Hive

6、Kafka同步到Hive 6.1 建映射表 通过flink sql client 建Kafka topic的映射表 CREATE TABLE kafka_user_topic(id int,name string,birth string,gender string ) WITH (connector kafka,topic flink-cdc-user,properties.bootstrap.servers 192.168.0.4:6668…...

ubuntu原始套接字多线程负载均衡

原始套接字多线程负载均衡是一种在网络编程中常见的技术&#xff0c;特别是在高性能网络应用或网络安全工具中。这种技术允许应用程序在多个线程之间有效地分配和处理网络流量&#xff0c;提高系统的并发性能。以下是关于原始套接字多线程负载均衡技术的一些介绍&#xff1a; …...

leetcode (算法)66.加一(python版)

需求 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 示例 1&#xff1a; 输入&#xff1a;digi…...

DataX源码分析 TaskGroupContainer

系列文章目录 一、DataX详解和架构介绍 二、DataX源码分析 JobContainer 三、DataX源码分析 TaskGroupContainer 四、DataX源码分析 TaskExecutor 五、DataX源码分析 reader 六、DataX源码分析 writer 七、DataX源码分析 Channel 文章目录 系列文章目录TaskGroupContainer初始…...

2024年华为OD机试真题-螺旋数字矩阵-Java-OD统一考试(C卷)

题目描述: 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数n和行数m(0 < n ≤ 999,0 < m ≤ 999),从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3...n,最终形成一个m行矩阵。 小明对这个矩阵有些要求: 1.每行数字的…...

红队打靶练习:PHOTOGRAPHER: 1

目录 信息收集 1、arp 2、nmap 3、nikto 目录扫描 1、gobuster 2、dirsearch WEB 信息收集 enum4linux smbclient 8000端口 CMS利用 信息收集 文件上传漏洞利用 提权 信息收集 get user.txt get flag 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# a…...

【Linux】网络诊断 traceroute命令详解

目录 一、traceroute概述 1.1 traceroute命令简介 1.2 命令格式 1.3 原理 1.4 命令功能 二、使用实例 实例1&#xff1a;traceroute 用法简单、最常用的用法 实例2&#xff1a;跳数设置 实例3&#xff1a;设置探测数据包数量 实例4&#xff1a;显示IP地址&#xff0c…...

c#cad 创建-圆(二)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 这段代码是一个AutoCAD插件&#xff0c;用于在模型空间中创建一个圆形。 首先&#xff0c;我们需要定义一个命令类CreateCircleCommand&#xff0c;并在命名空间CreateCircleInCad中声明。 在CreateCircleCommand类中&a…...

面试高频知识点:2线程 2.1.5如何自定义实现一个线程池

在Java中&#xff0c;线程池是一种用于管理线程的机制&#xff0c;它可以有效地管理多个线程并且可以重复使用它们&#xff0c;从而减少了线程创建和销毁的开销&#xff0c;提高了线程的利用率。本文将介绍如何自定义实现一个简单的线程池&#xff0c;并提供相应的Java代码示例…...

【stm32】hal库学习笔记-ADC模数转换(超详细)

【stm32】hal库学习笔记-ADC模数转换&#xff08;超详细&#xff09; 本篇章介绍了ADC实现电压检测的三种方式 ADC原理及选型 ADC将连续的模拟电压信号转换为二进制的数字信号 选型参数 速度&#xff08;采样频率&#xff09; 功耗 精度 转换原理 ADC hal库驱动函数 普通…...

蓝桥杯基础知识6 pair

蓝桥杯基础知识6 pair pair 的定义和结构&#xff1a;在C中&#xff0c;pair是一个模板类&#xff0c;用于表示一对值的组合&#xff0c;头文件<utility>。 pair类 的定义&#xff1a; template<class T1, class T2> struct pair{T1 first; // 第一个值T2 seco…...

后端返回给前端的数据格式有哪些?

后端返回的数据格式有很多种&#xff0c;常见的包括JSON、XML、HTML、CSV等。这些格式各有特点&#xff0c;适用于不同的应用场景。 JSON&#xff08;JavaScript Object Notation&#xff09;&#xff1a;JSON是一种轻量级的数据交换格式&#xff0c;易于阅读和编写&#xff0c…...

多模态大模型评测框架VLMEvalKit:从原理到实践,实现高效公平的模型评估

1. 项目概述&#xff1a;一个开箱即用的多模态大模型评测工具箱 如果你最近在折腾多模态大模型&#xff0c;不管是想复现论文里的SOTA结果&#xff0c;还是想给自己训的模型做个“体检”&#xff0c;又或者只是想快速对比一下ChatGPT-4V、Gemini Pro Vision这些闭源巨头的实力…...

2025届必备的六大AI科研方案推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 从文本特征着手&#xff0c;才能降低人工智能生成内容被检出的概率。首先&#xff0c;要融入…...

使用Helm Chart在Kubernetes部署高可用authentik身份认证中心

1. 项目概述&#xff1a;为什么我们需要一个身份认证的“中央厨房”&#xff1f;在云原生和微服务架构大行其道的今天&#xff0c;一个典型的应用系统可能由几十甚至上百个独立的服务组成。每个服务都需要处理用户登录、权限验证、单点登录&#xff08;SSO&#xff09;这些基础…...

ESP32开发踩坑记:从HID库缺失到PlatformIO环境搭建的全流程复盘

ESP32开发踩坑记&#xff1a;从HID库缺失到PlatformIO环境搭建的全流程复盘 那天深夜&#xff0c;我盯着屏幕上"hid.h: No such file or directory"的报错信息&#xff0c;意识到自己掉进了嵌入式开发的第一个坑。原本想用Arduino做个体感鼠标来提升游戏体验&#xf…...

3个技巧快速掌握arp-scan局域网设备发现

3个技巧快速掌握arp-scan局域网设备发现 【免费下载链接】arp-scan The ARP Scanner 项目地址: https://gitcode.com/gh_mirrors/ar/arp-scan 在网络管理工作中&#xff0c;您是否经常遇到这样的困扰&#xff1a;明明设备连接了网络&#xff0c;却无法通过常规ping命令发…...

CAJ转PDF神器:caj2pdf-qt让学术文献格式转换变得如此简单

CAJ转PDF神器&#xff1a;caj2pdf-qt让学术文献格式转换变得如此简单 【免费下载链接】caj2pdf-qt CAJ 转 PDF 转换器&#xff08;GUI 版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/ca/caj2pdf-qt 还在为CAJ格式的学术文献无法在手机、平板或其他设备上阅…...

第八部分-企业级实践——37. 容器编排选型

37. 容器编排选型 1. 容器编排概述 容器编排平台负责管理容器的整个生命周期&#xff0c;包括部署、扩缩容、负载均衡、服务发现、滚动更新等。Docker Swarm 和 Kubernetes 是目前主流的容器编排方案。 ┌──────────────────────────────────…...

AI编程助手与代码质量守护:Trunk Cursor插件实战指南

1. 项目概述&#xff1a;当AI编程助手遇上代码质量守护者如果你和我一样&#xff0c;日常重度依赖Cursor这类AI编程助手来加速开发&#xff0c;那么你一定也遇到过类似的困扰&#xff1a;AI生成的代码片段虽然功能上“能用”&#xff0c;但在代码风格、格式一致性、甚至是潜在的…...

从AWE Designer到独立声卡:awb二进制文件固化Flash的实战解析

1. 从AWE Designer到独立声卡的核心逻辑 第一次接触AWE Designer的朋友可能会疑惑&#xff1a;为什么要把算法从PC端搬到开发板&#xff1f;简单来说&#xff0c;这就好比把厨师做好的预制菜打包成罐头——让美味脱离厨房环境也能随时享用。AWE Designer原本需要依赖电脑实时运…...

多云配置管理工具MCP:统一编排AWS、GCP等云资源的实战指南

1. 项目概述&#xff1a;一个高效的多云配置管理工具 最近在梳理团队的基础设施配置时&#xff0c;发现了一个挺有意思的开源项目&#xff0c;叫 malminhas/mcp 。乍一看这个名字&#xff0c;你可能会有点懵&#xff0c;这缩写代表什么&#xff1f;其实&#xff0c;MCP 在这里…...