js
鱼惊秋
这个作者很懒,什么都没留下…
展开
-
前端面试--avaScript函数参数,传值还是传址?
首先,十万以及万分肯定的说一句, JavaScript 函数传递参数时,是值传递。虽然您可能不信,因为 ECMAScript 变量可能包含两种不同数据类型的值:基本数据类型,和引用数据类型。难道引用数据类型传递的时候难道也是值传递吗?答,没错。 引用类型的值是什么东西?当一个变量向另一个变量复制引用类型的值时,会将存储在栈中的值(栈中存放的值是对应堆...转载 2020-08-27 23:17:12 · 1011 阅读 · 0 评论 -
web前端跨域的一些解决方案
没有归纳之前对跨域的一些说法是模糊的,什么jsonp啊,跨域原理啊,心里只有一个大概的说法,知道这个东西,然后用的时候直接百度Ctrl+C,后来闲下来决定整理一波这些知识点,需知其所以然。模糊状态什么是跨域域名相同端口号相同协议相同那么以上条件只要有一个不同,都被当作是不同的源,会出现跨域的问题。为什么会出现这个问题呢?因为浏览器的同源策略。简单来说:同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。这个安全机制转载 2020-07-17 16:54:31 · 162 阅读 · 0 评论 -
前端面试--彻底理解js中this的指向
首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然网上大部分的文章都是这样说的,虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解是不准确的,所以在你理解this的时候会有种琢磨不透的感觉),那么接下来我会深入的探讨这个问题。 为什么要学习this?如果你学过面向对象编程,那你肯定知道干什么用的,如果你没有学过,那么暂时可以不用看这...转载 2020-07-17 16:44:32 · 222 阅读 · 1 评论 -
JavaScript中call,apply,bind方法的总结
why?call,apply,bind干什么的?为什么要学这个? 一般用来指定this的环境,在没有学之前,通常会有这些问题。var a = { user:"追梦子", fn:function(){ console.log(this.user); }}var b = a.fn;b(); //undefined我们是想打印对象a里面的user却打印出来undefined是怎么回事呢?如果我们直接执行a.fn()是可以的。var a = {...转载 2020-07-17 16:40:41 · 99 阅读 · 0 评论 -
前端面试--HTTP常用的14种状态码
状态码的职责是当客户端向服务器发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求还是出现了错误。状态码的类别: 类别 原因短语 1XX Informational(信息性状态码)...转载 2020-06-27 22:32:07 · 615 阅读 · 0 评论 -
前端面试---var、let、const声明变量的区别
let和var声明变量的区别:1.let所声明的变量只在let命令所在的代码块内有效。(块级作用域)for(let i=0;i<10;i++){// ... }console.log(i);// ReferenceError: i is not defined当前的i只在for循环中有效,当在全局环境中去寻找时是找不到的,所以程序报错var a = [];for (var i = 0; i < 10; i++) {a[i] = function () {...转载 2020-06-22 22:59:40 · 259 阅读 · 0 评论 -
前端面试--聊聊JavaScript异步中的macrotask和microtask
前言首先来看一个JavaScript的代码片段:console.log(1);setTimeout(() => {console.log(2);Promise.resolve().then(() => {console.log(3)});}, 0);new Promise((resolve, reject) => {console.log(4)resolve(5)}).then((data) => {console.log(data);})se...转载 2020-06-22 22:04:47 · 272 阅读 · 0 评论 -
前端面试篇--JS的深拷贝和浅拷贝,看这篇差不多够了,其他的不用看了
面试回答: 浅拷贝是拷贝了对象的引用,当原对象发生变化的时候,拷贝对象也跟着变化;深拷贝是另外申请了一块内存,内容和原对象一样,更改原对象,拷贝对象不会发生变化;面试官给我说:浅拷贝是拷贝一层,深层次的对象级别的就拷贝引用;深拷贝是拷贝多层,每一级别的数据都会拷贝出来;回来查了一下资料,并没有发现面试官说的这种关于深拷贝浅拷贝的说法,看了几篇文章,终于理解了其实总结来看,浅拷贝的时候如果数据是基本数据类型,那么就如同直接赋值那种,会拷贝其本身,如果除了基本数据类型之外还有一层对象,那么对于...转载 2020-06-18 13:13:43 · 314 阅读 · 0 评论 -
浏览器是如何渲染页面的
浏览器页面渲染流程浏览器从HTTP服务器获取html文档,到呈现页面给用户,会经过以下几个步骤:1、解析文档构建DOM树浏览器的解析内容可以分为三个部分:HTML/XHTML/SVG:解析这三种文件后,会生成DOM树(DOM Tree)CSS:解析样式表,生成CSS规则树(CSS Rule Tree)JavaScript:解析脚本,通过DOM API和CSSOM API操作DOM Tree和CSS Rule Tree,与用户进行交互。以上三类文件的执行顺序会根据其在文档中的位置及其标签属性转载 2020-06-12 11:46:20 · 461 阅读 · 0 评论 -
跟我学习javascript的垃圾回收机制与内存管理
一、垃圾回收机制—GCJavascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。JavaScript垃圾回收的机制很简单:找出不再使用的变量,然后释放掉其占用的内存,但是这个过程不是实时的,因为其开销比较大,所以垃圾回收器会按照固定的时间间隔周期性的执行。不再使用的变量也就是生命周期结束的变量,当然只可能是局部变量,全局变量的生命周转载 2020-06-11 16:25:54 · 116 阅读 · 0 评论 -
javascript中的return、return true、return false、continue区别
1、语法为:return 表达式;2、w3c中的解释: 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 也就是:当代码执行到return语句时,函数返回一个结果就结束运行了,return后面的语句根本不会执行。举个栗子:function myFun() { console.log("Hello"); return "World"; ...转载 2019-05-05 15:17:25 · 325 阅读 · 0 评论 -
360浏览器window.open被拦截
window.open是javascript函数,该函数的作用是打开一个新窗口或这改变原来的窗口,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会拦截你,那么如何避免呢。注意,只有直接使用js调用 window.open(url); 打开新窗口时,才会被拦截,如果是改变原理额窗口:window.open(url,'_self'); 则不会被拦截。那么 js调用...转载 2019-04-04 18:01:25 · 2354 阅读 · 0 评论