首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Node.js】全局可用变量函数对象

总结 ---- 前言 在Node.js中提供了一些全局可用变量函数对象,全局就是不需要进行模块加载,可以直接使用。其中包括全局作用域函数对象。...也包括不在全局作用域,而在每个模块作用域都存在变量函数对象,在全局可用,但不是golbal对象属性。...---- _dirname和_filename变量 Node.js提供了两个与文件操作相关全局可用变量_dirname和_filename变量。...其中_dirname变量表示当前文件所在目录,_filename变量表示当前正在执行脚本文件名。...console对象 我们在学习中,经常使用到console.log()语句,console对象就是一个全局对象,用于提供控制台标准输出。

2.4K40

JS学习系列 06 - 变量对象

上一节我们讨论了执行上下文,那么在上下文中到底有什么内容,为什么它会和作用域链扯上关系,JS 解释器又是怎么找到我们声明函数变量,看完这一节,相信大家就不会再迷惑了。...函数上下文中变量对象函数上下文中,变量对象用活动对象 AO(Active Object)来表示。...代码是如何被处理 在第1节中我们讲过js 代码编译过程,其中有一步叫作预编译,是说在代码执行前几微秒会首先对代码进行编译,形成词法作用域,然后执行。...所有的函数声明(Function Declaration - FD) 由名称和对应值(函数对象 function object)组成一个变量对象属性被创建,如果变量对象已经存在相同名称函数属性,则完全替换这个属性...上边我们说过,在代码执行之前预编译,会为变量对象生成一些属性,先是形参,再是函数声明,最后是变量,并且变量并不会影响同名函数声明。

6610
您找到你想要的搜索结果了吗?
是的
没有找到

JS学习系列 06 - 变量对象

上一节我们讨论了执行上下文,那么在上下文中到底有什么内容,为什么它会和作用域链扯上关系,JS 解释器又是怎么找到我们声明函数变量,看完这一节,相信大家就不会再迷惑了。...函数上下文中变量对象函数上下文中,变量对象用活动对象 AO(Active Object)来表示。...代码是如何被处理 在第1节中我们讲过js 代码编译过程,其中有一步叫作预编译,是说在代码执行前几微秒会首先对代码进行编译,形成词法作用域,然后执行。...所有的函数声明(Function Declaration - FD) 由名称和对应值(函数对象 function object)组成一个变量对象属性被创建,如果变量对象已经存在相同名称函数属性,则完全替换这个属性...上边我们说过,在代码执行之前预编译,会为变量对象生成一些属性,先是形参,再是函数声明,最后是变量,并且变量并不会影响同名函数声明。

1.2K20

js变量提升 和函数提升

两个最简单例子理解变量声明提升和函数声明提升 一、变量提升 变量提升即将变量声明提升到它所在作用域最开始部分 例1: function fn () { var a ="hello...但是我需要说明是,变量提升 只是提升变量声明,并不会把赋值也提升上来 二、函数提升 js中创建函数有两种方式:一种是函数表达式,另外一种是函数声明方式。只有函数声明才存在函数提升!...() {} 总结和注意点 1、变量提升 1、通常JS引擎会在正式执行之前先进行一次预编译,在这个过程中,首先将变量声明及函数声明提升至当前作用域顶端,然后进行接下来处理 2、如果当前作用域中存在此变量声明...,无论它在什么地方声明,引用此变量时就会在当前作用域中查找,不会去外层作用域了 3、let和const关键字没有变量提升 2、函数提升 1、如果在同一个作用域中存在多个同名函数声明,后面出现将会覆盖前面的函数声明...3、函数优先权是最高,它永远被提升至作用域最顶部,然后才是函数表达式和变量按顺序执行

1.3K41

JS利用函数修改全局变量

现在博客系统评论遇到一个问题,用户点击“最后一页”链接之后就自动调取最后一页资料来显示。 我是将当前页用一个全局变量存储。...同时在“最后一页”链接里单击方法调用一个函数自动去修改页数为最后一页,然后再调用载入评论方法。 可是我发现点击“最后一页”第一次时候系统没反应,再点击一次就抓去最后一页资料了!...要说全局变量没改,应该是改了,就仿佛改了页数而载入评论方法失效了一样。...page = 1;   //初始化页数为第一页 var str = ""; $(document).ready(function() {     lostguest();           //载入评论方法...PS:后来找了一个变通方法,实现了这个效果。

4.9K40

JS 函数 arguments 类数组对象

箭头函数中没有 arguments 1. arguments 介绍 众所周知,js 是一门非常灵活语言。...当我们在 js 中调用一个函数时,经常会给函数传递一些参数,js 把调用函数时传入全部实参存储到一个叫做 arguments 类数组对象里面 arguments 是一个类数组对象,不是一个真正数组...这里做下总结 arguments 是类数组对象(伪数组),即不是一个真正数组,而是一个对象。...它有 length 属性,并且可以通过下标获取元素,但是它不能调用数组方法,就是因为它不是真正数组,这一点可以通过查看它原型验证 2. arguments 转为数组 arguments 是类数组对象...箭头函数中没有 arguments arguments 只存在于普通函数中,而在箭头函数中是不存在 下面代码抛出错误异常:Uncaught ReferenceError: arguments is not

5.4K20

js变量提升与函数提升详细过程

js变量提升与函数提升详细过程 先来看两个栗子,下面的两段代码分别输出什么?...这就涉及到js变量提升和函数提升具体过程了。 1、变量提升 js是怎么创建变量呢?...原本js定义变量地方,在js运行到这里时候,才会进行赋值操作,而没有运行到变量,不会进行赋值操作。 所以变量提升,提升其实是变量声明,而不是变量赋值。...2、函数提升 函数提升和变量提升类似,都是提升到作用域最开始位置,只不过变量提升是分两步,第一步是变量声明提升,第二步是变量赋值。...(a); // 1 console.log(a); // 1 } foo(); 所以从上面的栗子可以看到,变量提升是在函数提升之前,但是变量赋值部分是在js原型到变量定义位置才给变量赋值

1.5K30

JS入门难点解析5-变量对象

执行环境定义了变量函数有权访问其他数据,决定了它们各自行为。每个执行环境都有一个与之关联变量对象(variable object),环境中定义所有变量函数都保存在这个对象中。...变量对象 变量对象是与执行上下文相关数据作用域,存储了在执行上下文中定义变量函数声明。 不同执行上下文下变量对象稍有不同,我们主要看一下全局上下文下变量对象函数上下文下变量对象。...变量对象会包括: 函数所有形参 (如果是函数上下文) 由名称和对应值组成一个变量对象属性被创建 没有实参,属性值设为 undefined 函数声明 由名称和对应值(函数对象(function-object...函数上下文变量对象初始化只包括 Arguments 对象。 在执行上下文准备阶段会给变量对象添加形参、函数声明、变量声明等初始属性值。 在代码执行阶段,会再次修改变量对象属性值。 6....如果是变量提升,会打印:undefined。此处,a能成为全局变量是由于LHS,所以代码需要执行到a=1,其才能成为全局变量。(详见JS入门难点解析3-作用域)。

1.1K40

秒懂JS对象、构造器函数和原型对象之间关系

学习JS过程中,想要掌握面向对象程序设计风格,对象模型(原型和继承)是其中重点和难点,拜读了各类经典书籍和各位前辈技术文章,感觉都太过高深,花费了不少时间才搞明白(个人智商是硬伤/(ㄒoㄒ)/~...一、基本概念   1、对象:属性和方法集合,即变量函数封装。每个对象都有一个__proto__属性,指向这个对象构造函数原型对象。   ...2、构造器函数:用于创建对象函数,通过new关键字生成对象函数名一般首字母大写。   ...3、原型对象:每个函数都有一个prototype属性,它是一个指向原型对象指针(原型对象在定义函数时同时被创建) 二、创建对象方法   1、使用构造函数和原型对象共同创建 ?...通过构造函数创建实例对象p1和p2时候,其中name、age、job这些是通过构造函数生成(本地部分),sayName方法是通过继承原型对象来实现共享(远程部分),这样多个实例对象都是由本地(私有

1.7K70

JS入门难点解析2-JS变量提升和函数提升

(本篇着重现象,原理详见 JS入门难点解析5-变量对象) 1. JavaScript是否需要编译 这节内容并不会对此做深层次探讨,而是普及一个知识。...难道JS不是一行行顺序执行吗?...而本篇文章所要讨论内容——JS变量提升和函数提升就发生在编译阶段。(随着自己进一步了解执行上下文,觉得这里所指编译器作用有点类似于执行上下文生命周期第一阶段)。 2....变量声明与函数声明 2.1 变量声明和函数声明定义 首先我们来看一下,何谓变量声明与函数声明。 变量声明就是 var XXX;。...而我们接下来要讨论变量提升和函数提升实质上指的是变量声明提升和函数声明提升,赋值操作会留在原地。 3. 变量提升 所谓变量提升,就是变量声明在执行前会被提升到该作用域顶部。

1.2K30

Js变量

Js变量:  1:如果在var中没有初始化变量值,则默认为undefined.  2:可以不用var来申明一个变量,但是在过程级中申明一个变量时,就必须用var.   ...js数据类型  1:Jscript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型    主要(基本)数据类型是: 字符串 数值 布尔    复合(引用)数据类型是: 对象 数组    特殊数据类型是...: Null Undefined  2:测试是否已经声明变量 x :    if (typeof(x) == "undefined")      // 作某些操作 js内置对象  1:Jscript...提供了 11 个内部(或“内置”)对象。   ...它们是Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、Error 以及 String 对象

12.8K60
领券