自由变量

article/2025/10/13 11:05:59

1,作用域和自由变量

作用域代表了一个变量的合法范围,一个变量的作用域是程序源代码中定义的这个变量的区域。

作用域

1,全局作用域

不在任何函数内声明的变量(函数内省略var的也算全局)称作全局变量
就是在最外层定义的变量就被称为全局变量,全局都可以使用,所以是全局作用域。

2,局部作用域

在函数内声明的变量具有函数作用域,属于局部变量,就是在函数内部定义的变量,
只在函数内部有用,所以是局部作用域。

3,ES6的定义的块级作用域

声明变量的方法 有var let const
var 声明的变量可以变量提升 变量提升是将变量的声明提升至当前作用域的最顶部,而变量的赋值不会提升
let/const声明的变量让当前代码块变成一个暂时性的死区
内部变量不能在外部使用 他们声明的变量不存在变量提升
区别: const声明的变量必须给默认值 const声明的是常量不能重新赋值
const声明的变量的值如果是引用数据类型 则数据内部的数据可以修改

4,自由变量

假如在全局中定义了变量a,在函数中使用了这个a,这个a就是自由变量,可以这样理解,凡是跨了自己的作用域的变量都叫自由变量。

2,闭包

闭包就是一个函数的参数是另一个函数,或者一个函数的返回值是另一个函数,就被称为闭包。详细内容看博主这篇文章哦。

3,改变this指向的方法

因为有函数嵌套函数,或者其他的复杂结构,所以就会造成this指向改变的问题。而要改变this指向有三种方法。

有三个方法能改变this指向,fn.bind()、 fn.call() 、fn.apply()
他们都是改变this指向的方法 第一个参数都是this的指向
区别:
bind返回一个函数
call的参数是以散落的形式传递给函数
apply是以数组的形式传递参数
bind有返回值 返回值是调用bind方法的函数本身
call 没有返回值 他的第一个参数是要this的指向。第一个参数是谁,函数内部的this就指向谁其他参数以散落的形式传递给函数作为实参
apply 没有返回值 他的第一个参数是要this的指向。第一个参数是谁,函数内部的this就指向谁其他参数以数组的形式传递给函数作为实参

4,原型和原型链

1,原型的概念

JavaScript 的所有对象中都包含了一个 [proto] 内部属性,这个属性所对应的就是自身的原型
JavaScript 的函数对象,除了原型 [proto] 之外,还有 prototype 属性,
当函数对象作为构造函数创建实例时,该 prototype 属性值将被作为实例对象的原型 [proto]

2,prototype ,constructor,_ _proto_ _三者之间的区别是什么关系

构造函数的prototype指向原型对象
实例对象的_ proto _指向构造函数的prototype所指向原型对象
原型对象的constructor指向构造函数

3,原型链的概念

对象访问属性和方法时,首先会在当前对象中寻找,找不到就去对象的原型中寻找,找到就使用,
找不到就去原型的原型中寻找,直到找到或undefined为止,就形成了原型链
最顶层的原型对象, 这个对象就是Object.prototype,
这个对象中保存了最常用的方法,如 toString、valueOf。这样我们才能在对象中使用这些方法


http://chatgpt.dhexx.cn/article/bA35EcJp.shtml

相关文章

谓词逻辑——自由变元与约束变元

谓词逻辑 命题逻辑在是具有局限性的。 命题逻辑在处理语句成分中有诸如“否”、“并”、“或”和“如果那么”时, 取得了令人满意的结果, 但人类语言比这丰富得多, 我们如何处理如“存在”, “所有”,“在中”&#x…

JS - 自由变量与作用域链

先解释一下什么是“自由变量”。 在A作用域中使用的变量x,却没有在A作用域中声明(即在其他作用域中声明的),对于A作用域来说,x就是一个自由变量。如下图 如上程序中,在调用fn()函数时,函数体中第…

2. 自由度

目录 1. 自由度的定义 2. 自由度的计算 2.1 刚体的自由度 2.2 运动副 2.3 自由度算例 2.4 自由度计算公式 3. 总结 1. 自由度的定义 自由度在很多领域中会出现,对于机器人而言,我们这里谈的也就是机构的自由度。任何一台机器人都可以认为是一个机…

自由度

刚体的自由度 自由度指物体能够对坐标系进行独立运动的数目,物体所能进行的运动如下图: 一个物体可以相对于坐标系,进行三个平移和三个旋转运动,即一个简单的物体有六个自由度。 2 运动副与关节 运动副是两构件直接接触并能产…

约束度与自由度

约束度与自由度 无论是在机械原理与机械设计课程,还是在理论力学课程中,我们都会遇到约束度与自由度,但我未曾想在宇哥的线性代数课上也能听到这两个熟悉的名词。在线性代数第四讲线性方程组课程中,宇哥在讲到齐次线性方程组的有解…

这是你希望的自由职业么

每到周末文章的打开率和阅读量就变得惨淡的不行,索性就不分享干货,闲聊一下九月份私活结束后的自由职业经历。看看这是否是你向往的自由职业生活状态么? 九月份,忙完了手头的项目,也没心思找工作,一心想着借…

计算机屏幕截图按什么键,电脑按什么键自由截图

在我们工作生活中经常需要用到电脑截图来截取保存些重要信息,不过对于电脑新手来说还是不太清楚电脑怎么截图,问小编电脑按什么键自由截图。那今天小编就给大家介绍一个电脑截图的快捷方式,希望能帮到大家。 台式电脑使用快捷键进行截图&…

什么是机器人的自由度

自由度是机器人的一个重要技术指标,它是由机器人的结构决定的,并直接影响到机器人的机动性。 1. 刚体的自由度 物体上任何一点都与坐标轴的正交集合有关。物体能够对坐标系进行独立运动的数目称为自由度(DOF,degree of freedom)。…

讲讲什么是自由度

总第223篇/张俊红 我们在前面的方差分析中有提过一个概念就是自由度,在前面文章中给了一个计算就是自由度样本数-1。这一篇就来具体聊聊什么是自由度。 先来看看百度百科的解释: 自由度(degree of freedom, df)指的是计算某一统计量时,取值不…

什么是自由软件?

关注星标公众号,不错过精彩内容 来源 | www.gnu.org 编排 | strongerHuang 可能你认为免费软件,就是自由软件,那么你肯定错了,下面来听听专家怎么描述自由软件的。 strongerHuang 1 自由软件定义 开源(Open source&…

解构“自由”

“知乎”上有一个高票答案,研究了“什么样的人最自由”这个问题,作者“清流”说1: 我以前跟我的第一任老板讨论过一个问题:人类想要自由还是不想?结论是,绝大多数人本质上是不想要自由的,他们想…

Kettle工具入门

Kettle工具入门 Kettle工具入门 Kettle是什么?为什么要用Kettle?怎么用Kettle? 下载运行简单应用 表到表转换json到表的操作参考 Kettle是什么? Kettle是水壶。 “多喝热水”是我们对女朋友美好的祝福。因为未经处理的生水&#…

kettle安装及使用

文章目录 1、kettle简述1.1、kettle是什么 2、kettle安装配置2.1、先决条件2.1.1、安装jdk8 2.2、kettle下载2.3、打开kettle 3、kettle基本概念3.1、转换和作业3.2、运行工具3.2.1、SPOON3.2.2、KITCHEN和PAN3.2.3、Carte kettle基本使用及常见问题 1、kettle简述 1.1、kettl…

Kettle的下载安装教程和使用简介(内含第一个kettle转换案例)

本文首先介绍Kettle工具的安装及基本概念,然后通过一个案例实操介绍Kettle工具的使用。 本文重要的内容如下: Kettle的安装 1.Java的安装 登录Java的官网后,进入到下载页面:http://www.oracle.com/technetwork/java/javase/downl…

kettle Hello World教程

kettle Hello World教程 1、HelloWorld 示例 通过这个例子,介绍kettle的一些基础知识及应用: n 使用Spoon工具 n 转换的创建 n 步骤及连线 n 预定义变量 n 在Spoon中预览和执行 n 使用pan工具在终端窗口执行转换 概述 我们要实现的目标是…

kettle入门

目录 前言 一、kettle是什么 二、kettle 安装与基本使用 2.1 kettle 安装 2.2 kettle的基础使用 2.21 做一个简单的转换样例 2.2.2 小技巧 三、转换常用组件使用 3.1 输入模块 3.1.1 生成记录 3.1.2 表输入 3.2 输出模块 3.2.1表输出 3.3.2 插入/更新 3.3.3 更新 …

最新版kettle安装教程!!!

终于又想起来要把ketlle装好了,原先我是在虚拟机用的kettle,可是切换还是太麻烦了,今天想说装一个mac版的。进到官网发现它已经换地址了。。。 好巧不巧,刚好是6月5号换的。sad。 1、下载kettle 其实kettle的下载文件是mac和wi…

Kettle使用教程(一)

Kettle自己有三个主要组件:Spoon,Kitchen,Pan。其中Spoon是一个图形化的界面,用于windows的时候,先设置环境变量:pentaho_java_home,例如:C:\Program Files\Java\jdk1.7.0_25&…

Kettle — 安装和部署

前提 Kettle是纯Java编写的ETL开源工具,目前Kettle7和Kettle8都需要Java8或者以上才能正常运行。所以开运行Kettle前先检查Java环境是否正确配置,Java版本是否是8或者以上。 Kettle安装 1)创建Kettle的目录,并将Kettle的zip包解…

kettle实战教程-纯实战开发

kettle实战教程-纯实战开发 欢迎关注笔者的公众号: java大师, 每日推送java、kettle运维等领域干货文章,关注即免费无套路附送 100G 海量学习、面试资源哟!!个人网站: http://www.javaman.cn/kettle/kettle-actual Kettle简介:Ket…