js高级 笔记02

目录

01 object提供的一些静态方法

02 词法作用域

03 作用域链

04 arguments的使用

05 开启严格模式

06 高阶函数

07 闭包


01 object提供的一些静态方法

        Object.create() 对象继承

        Object.assign(对象1,对象2)  对象合并

                可以将对象2 里面的可枚举属性和自身的属性合并到对象1里面 返回合并后的对象

                 如果属性有重复的  那么对象2中的属性值会覆盖对象1的属性值

        Object.keys() 获取对象所有键放到Array数组里面

        Object.values() 获取对象所有值放到Array数组里面

        Object.entries() 获取对象所有键值放到Array数组里面

                返回值是一个二维数组 每个小数组的0号元素是键 1号元素是值

        Object.freeze() 冻结对象  无法增删改属性

        Object.isFrozen() 判断对象是否被冻结

                对象可以换成新地址 但是原有的对象内部无法修改

        Object.seal()密封对象

        Object.isSealed() 判断对象是否被密封

                对象被密封后 不可以增删属性 但是原有的属性是可以修改的

        Object.getPrototypeOf(对象)    返回指定对象的原型

        Object.is(value1,value2)  比较两个值是否相等  

                例: console.log(Object.is(NaN,NaN)); // true

02 词法作用域

        词法(代码)作用域 就是代码在编程过程中体现出来的作用范围   

        代码一旦写好了不用执行 作用域范围就已经确定好了 这个就是所谓的词法作用域

03 作用域链

        js中的作用域分为两种:

             作用于所有代码执行的环境(整个script标签内部) 或者说一个独立的js文件 就是全局作用域

             作用于函数内部的代码环境 就是局部作用域 (因为和函数有关系 所以有的时候也叫做函数作用域)

        作用域链:

                内部函数访问外部函数的变量 采取的是链式查找的方式来决定取哪个值 这种结构

                我们称之为作用域链   就近原则

04 arguments的使用

        只要有函数就有arguments对象

        arguments对象 里面存储了所有传递过来的参数

        arguments的返回值 是一个伪数组 并不是真正意义上的数组

        伪数组:

                1.具有数组的length属性  

                2.按照索引的方式进行存储的

05 开启严格模式

         'use  strict ' ; // 开启严格模式

        1.严格模式下变量名必须先声明再使用

        2.严格模式下 不能随意删除声明好的变量

        3.严格模式下全局作用域中的函数中的this是undefined

        4.在严格模式下 构造函数不加new调用就报错

        5.在严格模式下 定时器中 this还是指向window

        6.在严格模式下 函数里面的参数不允许重名

06 高阶函数

        

07 闭包

        闭包指的是有权访问另一个函数作用域中变量的函数

        闭包的作用: 主要是延伸了变量的作用范围

        局部变量:

                1.局部变量 外部没办法直接使用

                2.局部变量使用完毕后 会被js垃圾回收清理

        如果形成了闭包 局部变量就不会被清理

        闭包函数的基本结构:

                1.函数嵌套函数

                2.外层函数有局部变量

                3.里层函数使用外层函数的局部变量

                4.里层函数可以被反复的调用

        垃圾回收:

                对内存管理的机制  主要清理的就是局部变量 只对函数内部生效

                所以就会清理释放  对全局变量不会被清理 全局的是添加给window的

                是不会被回收的  所以不要创建全局的变量  浪费内存空间 如果不想局部变量被回收

                就可以使用闭包  因为里层的函数用到了外层函数内的局部变量  里函数会返回外部

                里函数的生命周期得到了延续  所以闭包里的变量会被延续下来

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

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

相关文章

C语言简单的数据结构:单链表的有关算法题(2)

题目: 4. 单链表相关经典算法OJ题3:合并两个有序链表5. 循环链表经典应⽤-环形链表的约瑟夫问题6. 单链表相关经典算法OJ题5:分割链表 接着我们介绍后面的三道题,虽然代码变多了但我们的思路更加通顺了 4. 单链表相关经典算法OJ题…

前端请求404,后端保无此方法

1、微信小程序前端路径404 2、后端报无此路径 3、查看路径下对应的方法 发现忘了在list方法前加GetMapping(“/list”),加上即可

Python用于创建和可视化环形图的工具库之pycirclize使用详解

概要 Python pycirclize库是一个用于创建和可视化环形图的工具,它提供了丰富的特性和功能,可以帮助用户展示环形结构数据的关系和比例。本文将深入探讨pycirclize库的安装、特性、基本功能、高级功能、实际应用场景等方面。 安装 安装pycirclize库非常简单,可以通过pip命令…

2024年华中杯数学建模竞赛全攻略:ABC题思路解析+代码实现+数据集+论文撰写+全程答疑

引言 (比赛后所有题目资料在文末获取呀) 华中杯数学建模竞赛是数学建模领域的一项重要赛事,它不仅考验参赛者的数学建模能力,还考验了编程技能、数据分析能力和论文撰写能力。为了帮助参赛者更好地准备2024年的竞赛,本…

记一次webshell排查但又无webshell的应急

某次应急中,客户吓坏了,说是内网流量分析设备中有很多webshell连接告警,作为一名卑微但又不失理想的安服仔,毅然直奔前线… 过程 去到现场后,直接打开客户的流量分析设备,的确看到一堆冒红的webshell连接…

【Java开发指南 | 第十二篇】Java循环结构

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 循环1、while循环2、do-while循环3、for循环 break 关键字数组for循环continue 关键字 循环 与C语言相同,Java中有三种主要的循环结构: while 循环do…while 循环for 循环 1、while循…

python二级题目-仅使用 Python 基本语法,即不使用任何模块,编写 Python 程序计算下列数学表达式的结果并输出,小数点后保留 3 位。

x(((3**4)5*(6**7))/8)**0.5 .format 用法一: print({}.format(1)) 1 print(这个是format的用法{}。。。.format(3)) 这个是format的用法3 ’大括号1:{},大括号2:{},大括号3:{}‘.format(3,4,5) print(’大括号1:{},大括号2:{},大括号3:{}‘.form…

内业减少80%人工操作,林地地形轻松测!

林业作为维护生态平衡和保护环境的关键领域,其科学管理和合理利用是当前林业工作的重中之重。林业调查旨在全面了解当前林业资源的状况,其中林地地形测量是林业调查的基础工作。通过对林地地形的准确测量,可获取森林的地理位置、面积、地貌、…

(CVPR,2024)CAT-Seg:基于成本聚合的开放词汇语义分割

文章目录 摘要引言方法计算成本与嵌入空间成本聚合类别成本聚合CAT-Seg框架 实验 摘要 开放词汇的语义分割面临着根据各种文本描述对图像中的每个像素进行标记的挑战。在这项工作中,我们引入了一种新颖的基于成本的方法,以适应视觉语言基础模型&#xf…

设计模式———单例模式

单例也就是只能有一个实例,即只创建一个实例对象,不能有多个。 可能会疑惑,那我写代码的时候注意点,只new一次不就得了。理论上是可以的,但在实际中很难实现,因为你无法预料到后面是否会脑抽一下~~因此我们…

RocketMQ顺序消息消费重试DEMO

Producer - 加入了id为key,msg为bean的json字符 public class AddProducer {public static void main(String[] args) throws Exception {DefaultMQProducer producer new DefaultMQProducer("a-group");producer.setNamesrvAddr("192.168.0.211:9…

损失函数:Cross Entropy Loss (交叉熵损失函数)

损失函数:Cross Entropy Loss (交叉熵损失函数) 前言相关介绍Softmax函数代码实例 Cross Entropy Loss (交叉熵损失函数)Cross Entropy Loss与BCE loss区别代码实例 前言 由于本人水平有限,难免出现错漏&am…

密码学 | 椭圆曲线密码学 ECC 入门(二)

目录 4 椭圆曲线:更好的陷门函数 5 奇异的对称性 6 让我们变得奇特 ⚠️ 原文地址:A (Relatively Easy To Understand) Primer on Elliptic Curve Cryptography ⚠️ 写在前面:本文属搬运博客,自己留着学习。如果你和我一样…

【Linux】应用层协议:HTTP

URL 在之前的文章中我们实现了一个网络版本的计算器,在那个计算器中揉合了协议定制以及序列化反序列化的内容,我们当时也自己定制了一套协议标准,比如请求和响应的格式应该是什么?如何读到一个完整的报文?支持的运算符…

【XR806开发板试用】在 xr806 上移植 LVGL

本文参与极术社区的《基于安谋科技STAR-MC1的XR806开发板试用》活动。 不多废话,直接开搞,先上效果图 准备 开发环境啥的,已经有很多文章了,这里就不再提搭建开发环境的相关内容了。 一个屏幕(1.8’ 128x160) LVGL源码(v8.0.2…

京东微服务microApp使用总结

前言 基于现有业务门户进行微服务基础平台搭建 主应用框架:vue3vite 子应用框架:vue2webpack / vue3vite在这里插入代码片 本地调试即可:主应用子应用进行打通(注意:两者都是vue3vite) 问题总结 1.嵌入…

压缩感知的概述梳理(3)

参考文献 Adaptive embedding: A novel meaningful image encryption scheme based on parallel compressive sensing and slant transform 文献内容 梳理 列表形式 并行压缩感知核心元素与流程 信号 x 长度:N表示:(x \sum_{i1}^{N} a_i\psi_i \su…

密码学 | 椭圆曲线密码学 ECC 入门(三)

目录 7 这一切意味着什么? 8 椭圆曲线密码学的应用 9 椭圆曲线密码学的缺点 10 展望未来 ⚠️ 原文地址:A (Relatively Easy To Understand) Primer on Elliptic Curve Cryptography ⚠️ 写在前面:本文属搬运博客,自己留…

Argus DBM 一款开源的数据库监控工具,无需部署Agent

开箱即用 无需部署Agent,开箱即用。我们使用JDBC直连您的数据库,输入IP端口账户密码即可。 全平台支持 Argus目前支持对Mysql, PostgreSQL, Oracle等数据库类型的监控,我们也会尽快适配其它数据库,致力于监控所有数据库。我们提…

ctfshow web入门 SQl注入web171--web179

从这里开始SQl建议大家去看这篇文章学习一下先 MySQl web171 法一联合查询 题目 $sql "select username,password from user where username !flag and id ".$_GET[id]." limit 1;";爆数据库名 -1 union select 1,database(),3 -- 爆表名 -1 union s…
最新文章