js高级 笔记02

news2024/11/16 16:32:27

目录

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.coloradmin.cn/o/1605387.html

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

相关文章

压缩感知的概述梳理(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…

软件测试面试:关键问题解析

在软件开发领域,测试是确保软件质量的重要环节。面试是评估软件测试人员技能和经验的关键时刻。在一个软件测试面试中,面试官通常会问一系列问题来评估面试者的知识、技能和解决问题的能力。本文将介绍一些常见的软件测试面试问题,并给出一些…

电脑开不了机?不要慌,三招教你快速解决!

电脑开不了机是我们在日常使用中可能遇到的一个严重问题,它会影响我们的工作和生活。了解如何解决电脑开不了机的问题对于维护电脑正常运行至关重要。本文将介绍三种常见的解决电脑开不了机的方法,帮助您快速恢复电脑的正常使用。 方法1:检查…

刷题日记——进制转换3(机试)

题目——进制转换3 锲而不舍——先给自己立一个纪念碑 思路 根据输入信息,将输入值从m进制转换成10进制将10进制数据转换成n进制数据输出 输入值从m进制转换成10进制 将输入值视作字符串 依次取出字符串字符, 如果是数字: 减去‘0’得到真…

初识 React:安装和初步使用指南

文章目录 前言一、React 是什么?1.组件化开发2.虚拟 DOM3.单向数据流4.生态系统丰富 二、安装1.准备工作2.下载react 三、探索 React 应用总结 前言 在当今的 Web 开发领域,React 已经成为了一个备受推崇的技术。它的组件化、灵活性和高效性使得它成为了…

栅格地图、障碍物地图与膨胀地图(栅格地图)

在ROS中,地图是非常基本的元素,特别对于2D激光SLAM而言,栅格地图可以说是必不可少的元素。机器人在需要前往目标点时,需要在栅格地图中找到一条合适的路径从当前点到达目标点,这部分内容在move_base中有了详细的接口&a…

MySql数据库从0-1学习-第五天事务和索引

事务 事务 是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作 要么同时成功,要么同时失败。 注意事项,默认事务是自动提交的,也就是说,当执行一条DML语句,MySql会立即隐…

“低价竞争”仍在继续,分期免息成商家新武器

近日,在京东618商家生态伙伴大会上,京东推出各项政策,尽全力让所有合作伙伴赢在京东618、赢在京东。京东金融也将在618大促期间,为各位商家带来极具竞争力的金融产品和大促政策。 举例来说,大促期间,“京东…

分类预测 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据分类预测

分类预测 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据分类预测 目录 分类预测 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据…

小试牛刀!

1.从双倍数组中还原原数组&#xff08;力扣&#xff0c;vector&#xff09; java式c解法。 class Solution { public:vector<int> findOriginalArray(vector<int>& changed) {int n changed.size();if(n % 2 1) return {};map<int, int> mp;for(int c…

02 - Git 之命令 + 删除 + 版本控制 + 分支 + 标签 + 忽略文件 + 版本号

1 Git相关概念 1.1 以下所谈三个区&#xff0c;文件并不只是简单地在三个区转移&#xff0c;而是以复制副本的方式转移 使用 Git 管理的项目&#xff0c;拥有三个区域&#xff0c;分别是 Working area工作区&#xff08;亦称为 工作树Working Tree&#xff09;、stage area …

【Web】HTML基础

专栏文章索引&#xff1a;Web 有问题可私聊&#xff1a;QQ&#xff1a;3375119339 目录 一、HTML介绍 1.HTML 定义 2.标签语法 3.HTML 基本骨架 4.标签的关系 5.HTML 注释 二、标签 1.排版标签 1.1 标题标签 1.2 段落标签 1.3 换行标签 1.4 水平线标签 1.5 文本格…

【Spring】之基础概念和使用

&#x1f3c0;&#x1f3c0;&#x1f3c0;来都来了&#xff0c;不妨点个关注&#xff01; &#x1f3a7;&#x1f3a7;&#x1f3a7;博客主页&#xff1a;欢迎各位大佬! 文章目录 1. Spring的概述1.1 什么是容器&#xff1f;1.2 什么是IoC&#xff1f;1.3 什么是DI&#xff1f…

(二十八)Flask之wtforms库【上手使用篇】

目录&#xff1a; 每篇前言&#xff1a;用户登录验证&#xff1a;用户注册验证&#xff1a;使用示例&#xff1a; 抽象解读使用wtforms编写的类&#xff1a;简单谈一嘴&#xff1a;开始抽象&#xff1a; 每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【…

多任务学习,在共享层,究竟在共享什么?

在多任务学习中&#xff0c;共享层所共享的主要是网络结构和参数。具体来说&#xff0c;当多个任务在共享层进行参数硬共享时&#xff0c;它们使用的是相同的网络结构&#xff08;例如三层全连接神经网络&#xff09;&#xff0c;并且这些网络层的权重&#xff08;weights&…

Java工具类:批量发送邮件(带附件)

​ 不好用请移至评论区揍我 原创代码,请勿转载,谢谢! 一、介绍 用于给用户发送特定的邮件内容,支持附件、批量发送邮箱账号必须要开启 SMTP 服务(具体见下文教程)本文邮箱设置示例以”网易邮箱“为例,其他如qq邮箱或企业邮箱均可,只要在设置中对应开启SMTP及授权码等操…

css中设置元素大小的属性block-size

block-size 是 CSS 中的一个属性&#xff0c;它用于设置元素的块级尺寸&#xff08;即元素的高度&#xff09;。这个属性是 height 和 max-height 的逻辑组合&#xff0c;允许你同时设置元素的最小和最大高度。 这些属性旨在让布局不再依赖于传统的物理方向&#xff08;如上下左…

爬虫 | 基于 Python 实现有道翻译工具

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本项目旨在利用 Python 语言实现一个简单的有道翻译工具。有道翻译是一款常用的在线翻译服务&#xff0c;能够实现多种语言的互译&#xff0c;提供高质量的翻译结果。 目录 一、项目功能 二、注意事项 三、代码解析 1. 导入…

eclipse配置SVN和Maven插件

3、 安装SVN插件 使用如下方法安装 Help–Install New Software 注意&#xff1a;目前只能安装1.8.x这个版本的SVN&#xff0c;如果使用高版本的SVN&#xff0c;在安装SVN和maven整合插件的时候就会报错&#xff0c;这应该是插件的bug。 点击Add name: subclipse location…

隐式/动态游标的创建与使用

目录 将 emp 数据表中部门 10 的员工工资增加 100 元&#xff0c;然后使用隐式游标的 %ROWCOUNT 属性输出涉及的员工数量 动态游标的定义 声明游标变量 打开游标变量 检索游标变量 关闭游标变量 定义动态游标&#xff0c;输出 emp 中部门 10 的所有员工的工号和姓名 Orac…