这里先说两个概念:1、堆(heap)2、栈(stack)堆 是堆内存的简称。栈 是栈内存的简称。说到堆栈,我们讲的就是内存的使用和分配了,没有寄存器的事,也没有硬盘的事。各种语言在处理堆栈的原理上都大同小异。堆是动态分配内存,内存大小不一,也不会自动释放。栈是自动分配相对固定大小的内存空间,并由系统自动释放。 javascript的基本类型就5种:Undefined、Null、Boolean、Number和String,它们都是直接按值存储在栈中的,每种...
目录call() , apply(), bind()call() 和 apply()语法实验总结bind()语法实验总结 call() , apply(), bind() call() 和 apply() 语法 call()和apply() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。注意: 这两个方法类似,只有一个区别,就是 call() 方法接受的是一个参数列表,而 apply() 方法接受的是一个包含多个参数的数组。#语法 function.call(thisArg, arg1, arg2, ...) func.apply(thisArg, [arg...
由于严格模式下,禁止this指向全局对象,所以以下示例均运行在非严格模式下 情况一:全局 & 调用普通函数console.log(this === window); //true普通函数在调用时候(注意不是构造函数,前面不加 new),其中的 this 也是指向 window。var x = 10; function foo(){console.log(this); //Windowconsole.log(this.x); //10 } foo(); 情况二:构造函数 所谓的构造函数就是由一个函数 new 出来的对象,一般构造函数的函数名首...
词法作用域 闭包概念 作用 用法待续词法作用域词法作用域是指一个变量在源码中声明的位置作为它的作用域。同时嵌套的函数可以访问到其外层作用域中声明的变量。函数中的定义的局部变量只能由函数的内部成员访问,而函数中的內部成员可以访问外部元素。 例:function main() {// a 是 main 函数创建的局部变量var a = 'aaa'; // b() 是函数内部方法,一个闭包function b() { alert(a); // 它使用了父函数声明的变量 }b();}main();...
01 写在前面 模块化简单来说就是是指把一个复杂的系统分解到多个模块以方便编码。JS模块化的大致流程为:CommonJS(服务端) -> AMD(浏览器端)-> UMD(兼容了CommonJS和AMD) -> ES Module(ES6标准)。本文将从它们的用法进行介绍,简单实现其原理。并简易实现一个模块化打包工具webpack。本文将从以下几部分进行总结:CommonJS的用法及原理AMD的用法及原理ES2015标准化自动化构建简易实现webpack 02 CommonJS CommonJS 是...
DOM Document Object Model(文档对象模型) 定义了表示和修改文档所需的方法。 DOM对象即为宿主对象,由浏览器厂商定义,用来操作html和xml功能的一类对象的集合。也有人称DOM是对html以及xml的标准编程接口。 是一种与浏览器、平台、语言的接口,使用该接口可以轻松的访问页面中所有的标准组件。 DOM又分为三部分:DOM CORE(核心)、HTML-DOM、 CSS-DOM HTML-DOM可以理解为API.他将网页中的各个元素都看作一个对象,从而是网页中...
什么是闭包 根据官方语言解释:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。按照我的理解:但是你只需要知道应用的两种情况即可——函数作为返回值,函数作为参数传递。理解了这两种情况,你基本上知道闭包是怎么回事了;解说一下:通常来说,JS里面当一个函数被调用完成之后,window会自动将这个函数的作用域给销毁掉,这个作用域里面的变量也随之被销毁,这个是浏览器...
前言 本身在面试博客里只是想整理一下js的类型,突然越联想越感觉这块的知识体量比较大,扩展很多,但网上的很多理解繁杂还不太清晰,故此专门记录一下这几个点。 正文 js中的数据类型基本类型:number ,string,null,Boolen,undefined,symbol 引用类型:object (Array,Function,Date,Regxp在es6中规定都是object类型)两者的区别: 基本类型:可以直接操作的实际存在的数据段。存在在内存的栈中,比较的是值的比较! 引用类...