Perfree

简简单单的生活,安安静静的写博客

什么是闭包?
闭包很多人都说闭包是一个函数,但是我的理解它是一个对象,其实您可以通过debugger在控制台中可以看到它是一个对象,它包含了被引用的局部变量 控制台中一个名为Closure的对象就是闭包,您可以看到它有2个属性,就是我相应的变量名(key)以及变量的值(value) 那么闭包是如何产生的呢? 闭
谈谈this 的指向
正常情况下,执行函数的方式,就决定了this的指向 直接调用 var name = '遥近' function fn (name) { console.log(this) console.log(this.name) } fn() // this指向window 输出遥近
谈谈跨越
跨越指的就是违背了浏览器的同源策略,只要协议、域名、端口有任何一个不同,就会产生跨越了 jsonp进行跨域 这个是利用原生的script标签天然可以跨越的特性进行跨越请求 就比如我们平常引入cdn链接一样,其他它就存在跨越了 所以我们就可以通过script来解决跨域的问题 document.getE
什么是原型链?
谈到原型链就先得说说什么是原型了 什么是原型 原型指的是函数的prototype属性,以及对象的__proto__属性,而需要注意的是,因为我函数也属于对象,所以函数存在我刚刚述说的2个属性 而函数prototype属性的值是一个对象,他至少有2个属性: constructor 、 __proto_
什么是构造函数
在 JavaScript 中,用 new 关键字来调用的函数,称为构造函数。它们的函数名一般首字母为大写 而其实准确的来说JavaScript是没有构造函数的,只有函数的构造调用,叫构造函数只是为了迎合其他语言,才这么说的! 因为JavaScript只有通过new调用才会创建出构造函数,而其他语言,
了解语法糖
其实像我们平时创建对象和函数的时候,一般都是使用了语法糖的形式创建的 通过语法糖创建的对象 //语法糖形式创建的对象 var yaojin = { name:"遥近", age:18 } 不是通过语法糖形式创建的对象 //不是通过语法糖形式创建的对象 var yaoj
谈谈作用域和作用域链
作用域 作用域您可以理解成它是存放代码的地方,它决定了变量和对象的可访问范围 作用域分为全局作用域 和 局部作用域 全局作用域 只要能在任何地方都可以访问到并且使用它,那么该对象或者变量就具有全局作用域的特征 只要具有全局作用域特征的变量和对象,其实就是在window对象当中添加对应的变量和方法 f
Array方法小汇总
文章中的部分参数,只是平常经常传递的值作为一个参考,详情看MDN Array.concat() 用来连接数组参数: 数组==返回值: 新的数组实例== // Array.concat let arr1 = [1] arr2 = arr1.concat() // 如果不进行数组的合并,直接
[转载]JavaScript代码片段
30 seconds of code 收集有用的 Javascript 片段, 你可以在30秒或更少的时间里理解。 使用Ctrl + F 或 command + F搜索代码段。 欢迎投稿, 请阅读投稿指南。 代码段是在 ES6 中编写的, 请使用Babel transpiler确保向后兼容
Set和Map对象
什么是Set ES6 提供了新的数据结构 Set。==它类似于数组,但是成员的值都是唯一的==,没有重复的值。 Set作用 Set函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数 例如数组去重或者字符串去重 [...new Set(array)] [...new Set

标签