原生js面试题:作用域和作用域链,let声明的全局变量不是window对象的属性 JavaScript从入门到精通专栏收录该内容146 篇文章28 订阅订阅专栏 这篇博文是我在心情不好的情况下写的。 一、作用域作用域,就是变量起作用的区域(范围)。或者说,js代码执行时,查找变量的范围 ...
今天在控制台写删除数组第一个元素的代码时,发现了一个问题,以下是书中源码, 按这个源码,我进行了更改,使用了箭头函数,如下 然后发现报错,typeerror:this.reIndex is not a function。查找下发现箭头函数没有自己的this。 我又想了一下,变量arr调用方法removeFirPos ,那么这个this不就是指向了arr吗,后来一想。。。这不是非箭头函数时候的指向嘛 ...
2020-11-13 20:12 0 409 推荐指数:
原生js面试题:作用域和作用域链,let声明的全局变量不是window对象的属性 JavaScript从入门到精通专栏收录该内容146 篇文章28 订阅订阅专栏 这篇博文是我在心情不好的情况下写的。 一、作用域作用域,就是变量起作用的区域(范围)。或者说,js代码执行时,查找变量的范围 ...
[x] 知识点1 全局变量和window属性上定义的变量的区别: 全局变量不能通过delete删除,而window属性上定义的变量可以通过delete删除 [x] 知识点2 尝试访问未声明的变量会报错,..is not defined 但是通过查询window查询 ...
所有在全局作用域中声明的变量、函数都会变成window对象的属性和方法。 即: var age = 55; 可以通过window.age访问 然而全局变量和与在window对象上定义的属性还是有一点区别的: 全局变量不能通过delete操作符删除,二在window上定义 ...
先来看一道题 let id = 2; let json = { id: 1, show:function(){ setTimeout(function(){ console.log(this.id); },2000 ...
全局对象也叫为顶层对象,是js里面预定义的对象,作为js的全局函数和全局变量的占位符。(在网页里是window对象、在node里面是Global对象) 全局对象上的属性和方法可以直接使用,不用指定所属对象(a)。 在全局作用域声明的变量和函数是作为window对象的属性和方法而存在 ...
自己通过看typescript官方文档里的let声明,与阮一峰老师翻译的的es6学习文档,总结以下三点 1、var声明可以多次重复声明同一个变量,let不行 2、let变量只在块级作用域里面有效果,var 变量不存在块级作用域(块级作用域指用{}包装的代码块,个人理解) 3、let变量 ...
最近在看C Primer Plus 12.5章节,发现一段样例代码使用的全局变量,再次记录一下 简而言之: 1. 在.c源文件定义全局变量 2. 在.h头文件用extern声明这个全局变量 3. 如果其他.c文件需要使用这个全局变量,只要包含头文件就可以了,不用在c文件重新extern声明 ...
在ES5中,顶层对象的属性和全局变量是等价的,var 命令和 function 命令声明的全局变量,自然也是顶层对象。 但ES6规定,var 命令和 function 命令声明的全局变量,依旧是顶层对象的属性,但 let命令、const命令、class命令声明的全局变量,不属于顶层 ...