JS高级
程序媛啊啊啊
这个作者很懒,什么都没留下…
展开
-
js中var、let、const的区别详解
不知道是不是有小白跟我一样习惯的所有定义变量的时候都用var… 知道真相的我眼泪掉下来系列。接下来我就将这三个详细通过代码来描述一下。1、var 定义的变量挂载在window上.通过var定义的变量是挂在windos上的,而let与const并不会。var a = 1;let b = 2;const c = 3;console.log(a,window.a); // 1 1console.log(b,window.b); // 2 undefinedconsole.log(c,w原创 2020-06-05 17:35:05 · 440 阅读 · 0 评论 -
闭包——违反作用域规则的语法
说到闭包,大家可能会比较头疼,也是面试题比较常考的。接下来就形象的来说一些闭包。程序运行的法则——作用域说起闭包,首先肯定要说的是作用域,这里也简单说一下。我们平时在写代码的时候经常会遇到’“xxx” is not defined’,那究竟程序是怎么判断是不是’defined’的呢?这时候肯定要制定一些规则,程序怎么去找这些函数、变量。首先作用域就是这些函数、变量可用的范围。也就是说我想要...原创 2020-03-22 16:28:45 · 103 阅读 · 0 评论 -
高阶函数——函数作为函数的参数、函数作为函数的返回值
(一)函数作为函数的参数当调用一个函数A时,需要向函数A内部传入一段程序时,可以选择将一个函数B当做实参传递给另一个函数A的形参,并在另一个函数中执行。 /* 功能:吃完东西后做事情 参数: name 食物名称 string callback 注入一段代码 function */ function eat (foodName,callback) { con...原创 2019-11-20 17:58:29 · 1001 阅读 · 1 评论 -
怎么获取js函数中的实参个数、形参个数、函数的名称——函数的其他成员
function fn(x, y, z) { console.log(fn.length) // => 形参的个数 console.log(arguments) // 伪数组实参参数集合 console.log(arguments.callee === fn) // 函数本身 console.log(fn.caller) // 函数的调用者 console.log(fn....原创 2019-11-19 18:27:07 · 1641 阅读 · 4 评论 -
函数内this指向不同的场景与改变this指向的几种方式
(一)函数内this指向不同的场景1.1 普通函数时调用时,this指向window function fn () { console.log(this); //this指向 window } fn();1.2 构造函数调用时,this指向当前所创建的对象 // 构造函数 function Student(name, age) { this.name = name; ...原创 2019-11-19 18:12:48 · 439 阅读 · 0 评论 -
js中实现继承的几个方法
在js中不像java里面有专门的继承机制,但是我们可以自己写实现继承,下面我总结了几种实现继承的方法。(一)对象的继承概念:继承是类型和类型之间的关系,对象的“继承”本质是对象的拷贝,把一个对象的所有另一个对象没有的成员拷贝给另一个对象。 // 第一个对象 var obj1 = { name: '张三', age: 18 }; // 第二个对象 var ob...原创 2019-11-19 14:22:03 · 117 阅读 · 0 评论 -
js中的原型详解
(一)为什么会有原型(原型的出现是为了解决什么问题)我们一般在js里创建对象时,都会这么写: /* 构造函数→人类 */ function Person(name, age) { // 属性 this.name = name; this.age = age; // 方法 this.sayHi =...原创 2019-11-18 16:10:03 · 332 阅读 · 0 评论