首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js解析

情景一 当我们打印一个未定义的变量时 console.log(num) 抛出异常num未定义 Uncaught ReferenceError: num is not defined 情景二 当我们运行下面代码时...这里主要是因为JS解析造成的 js引擎运行分为两步:解析和代码执行 解析 js引擎会把js里面所有的var 还有function 提升到当前作用域的最前面 解析分为变量解析(变量提升...)和函数解析(函数提升) 变量解析:把所有的var变量提升到当前作用域的最前面,这里只提升变量声明,不提升赋值操作 这里我们就可以解释情景二出现undefined的情况 由于变量提升情景二的代码其实最后是这样执行的...把所有的函数声明提升到当前作用域的最前面 这也解释了情景三的执行是没有异常的 代码执行 按照代码顺序从上到下执行 解析案例 下面代码执行的结果是什么?...//2.代码执行 fn(); console.log(c)//9 console.log(b)//9 console.log(a)//全局没有a变量 所有显示未定义

2.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

第一节解释、作用域、this原理

(易错点:fn存储的是一个地址,代表的是当前函数的整体) 3、解释、变量提升 var num=12; 1>在当前的作用域中,js代码执行之前,浏览器首先会默认的把所有带var和function...的进行提前的声明或者定义 声明:var num; 定义:num=12; 2>对于带var和function关键字的在解释的时候操作还是不一样的 var -->在解释的时候只是提前的声明...function-->在解释的时候是声明+定义都完成了 3>解释只发生在当前作用域当中,例如:开始只对Window下的进行解释,只有函数执行的时候才会对函数中 的进行解释...--------------------------- 解释是毫无节操的一种机制 1》在解释的时候不管条件是否成立都要把带var的进行提前声明 2》解释的时候只解释“=”左边的,右边的是值,不参与解释...3》自执行函数定义的function在全局作用域下不进行解释 4》函数体中return下面的代码虽然不执行了,但是需要解释,return后面跟着的function 是不进行解释的 5》在js中如果变量的名字和函数的名字重复了

46620

JS数组定义及详解

JS数组定义及详解 一、总结 一句话总结:在js中,文本下标的数组元素,不计入数组长度,以文本下标形式添加到数组,实际是以属性形式添加到数组对象中的。...二、JS数组定义及详解 1、什么是数组 数组就是一组数据的集合 其表现形式就是内存中的一段连续的内存地址 数组名称其实就是连续内存地址的首地址 2、关于js中的数组特点 数组定义时无需指定数据类型 数组定义时可以无需指定数组长度...数组可以存储任何数据类型的数据(比如说一个元素保存整型,一个元素保存字符串型,这个在JS中是可以的) 创建数组的语法: var arr=[值1,值2,值3];...//隐式创建 var arr=new Array(值1,值2,值3); //直接实例化 var array=new Array(size); //创建数组并指定长度 JS中符号含义...[0] = 1; 12 arr3[1] = 2; 13 arr3[2] = 3; 14 document.write(arr3[2] + ''); 3、关于数组长度 数组对象.length 在js

3.4K40

加载之——js 文件如何实现只加载不执行

1.导出一个函数 如果使用 加载一个js 文件,如果加载的js 是一个自执行文件,那么会出现错误。...src="/test.js"> 使用标签会进行加载和执行,由于没有加载依赖函数bluer,控制台会出现以下问题: test.js:2 Uncaught...ReferenceError: bluer is not defined 如果要正确加载,可以在加载js 时是一个函数 //test2.js function test() { bluer(...2.使用xhr 或者fetch 加载 可以使用xhr 或者 fetch 来获取js 文件,可以得到js 字符串,在需要获取的时候在使用eval方法进行调用,以下以fetch 为例,具体调用如下: fetch...rel属性常用如下: stylesheet 引入样式表 preload 预先加载当前页面资源 prefetch利用浏览器的空闲时间加载页面将来可能用到的资源 dns-prefetch 提前对DNS获取

5.7K10

js - 加载+监听图片资源加载制作进度条

即处理加载。 总结下来,下次这种需求需要提前注意以下几点: 一、图片而不是背景图 本来,我所用到的图都是用背景图制作的(因为非接口返回的图片都要求用背景图)。...目标锁定了js里的img.complete。注意划重点是js的属性。...所以这里使用上要注意,因为我获取的dom对象是jq的,要转成js的再调complete属性,于是代码直接是: if(MyImg[0].complete){ // 用于缓存图片 sumAdd...四、加载进度计算并展示 好了,现在需求升级。 为了友好的用户体验,你在后台加载图片的时候,用户不能只看到一个加载中,等半天不知道到底有没有反应。...Math.ceil(Number(this.count)); if(boxText >= 100){ boxText = 100; //接下来执行加载完毕

9.6K22
领券