![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript基础
奔跑吧、GZB
这个作者很懒,什么都没留下…
展开
-
JavaScript运行机制(事件循环)
javascript运行时是单线程的。但是JavaScript为什么是单线程的吗?javascript又为什么需要异步?JavaScript又是如何依靠单线程实现异步的?我们又为什么要掌握JavaScript的单线程?首先来先看下面的例子。setTimeout(function(){console.log('我执行了')},1000)这段代码相信大家都非常熟悉,一个常见的定时...原创 2018-09-24 16:43:54 · 937 阅读 · 0 评论 -
JavaScript中数据类型及判断
判断js中的数据类型有一下几种方法:typeof、instanceof、 constructor、 prototype,接下来主要比较一下这几种方法的异同。首先写一个测试用例:let test = { num: 0, str: '', boolean: true, unf: undefined, nul: null, symbol:Symb...原创 2018-11-20 21:57:05 · 166 阅读 · 0 评论 -
尾调用优化
尾调用优化其实在阮一峰老师的es6中已经讲过了,但很多人可能并没有重视它,它同样会经常出现在笔试面试中,典型应用为斐波那契数列的优化,所以在这里我单独拿出来说一下。什么是尾调用?尾调用是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。function f(x){ return g(x);}上面代码中,函数f的最后一步是调...原创 2018-11-05 23:09:35 · 616 阅读 · 0 评论 -
深入解析es6中的声明提升
在es6中新增了let,const,class这三个关键字,js用来声明的关键字有了var,function,let,const,class五个。我们都知道,在es5中,变量和函数的声明都会提升。es5中的代码执行顺序是这样的:1.首先查找所有的函数声明(function关键字),初始化函数体,如果有同名的则进行覆盖2.查找变量声明(var关键字),初始化为undefined,如果...原创 2018-10-28 22:44:23 · 327 阅读 · 0 评论 -
call,apply和bind详解
call,apply和bind的作用都是改变this指向,但使用方法不同。一.call和applycall和apply其实是同一个东西,区别只有参数不同,call是apply的语法糖,所以就放在一起说了,这两个方法都是定义在函数对象的原型上的(Function.prototype),call和apply方法的作用都是改变函数中的this指向,第一个参数传入一个对象,然后传入函数执行所需的参...原创 2018-10-23 19:00:22 · 238 阅读 · 0 评论 -
浅谈深拷贝和浅拷贝(js)
如何区分深拷贝与浅拷贝?简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明是浅拷贝,如果B没变,那就是深拷贝。深入点来说,就是B复制了A,如果B复制的是A的引用,那就是浅拷贝,如果B复制的是A的本体,那就是深拷贝。在深入了解深拷贝和浅拷贝之前,我们先得了解堆栈和数据类型。一.堆栈和数据类型在js中,数据类型分为两种,基本类型和引用类型。基本类型指的是简单...原创 2018-10-05 15:11:06 · 22669 阅读 · 6 评论 -
js原型链详解
在讲原型链之前,我们先要了解对象和原型对象。对象每个普通对象都有一个名为_proto_的内部属性,指向它所对应的构造函数的原型对象,原型链基于_proto_。var o2 = {};console.log(o2) b=[1,2,3] console.log(b)原型对象每一个函数都有一个原型对象,函数都有prototype属性,它指向函数的原型对象。...原创 2018-09-27 16:38:41 · 184 阅读 · 0 评论 -
js作用域链及闭包
JS中的作用域链在es5中没有块级作用域,只有函数作用域与全局作用域,作用域是链式的,内层函数可以访问到外层函数中的变量,外层函数访问不到内层函数中的变量。es6中添加了块级作用域。1.在函数作用域外部无法访问到函数内部变量,内部可以访问到外部的变量var height = 100function add() { console.log(height); //100 var...原创 2018-08-24 21:21:57 · 271 阅读 · 0 评论 -
javascript中this详解
判断方法this永远指向一个对象,但普通函数与箭头函数this指向不同。普通函数:普通函数的this是动态的,由函数是如何被调用的来决定。①this所在函数是否使用了new以构造函数方式来调用函数,如果是则指向新创建的对象②this所在函数是否使用(对象.属性)的方式调用函数(如Obj.say),即函数为对象的属性,如何是则指向这个对象③如果以上两条均不是则指向全局对象...原创 2018-09-21 19:33:19 · 636 阅读 · 1 评论 -
javascript实现继承的方法
1.原型链继承function SuperType(){ this.property = true;}SuperType.prototype.getSuperValue = function(){ return this.property; }function SubType(){ this.subproperty = false;}SubType.prot...原创 2018-11-20 22:22:33 · 128 阅读 · 0 评论