读书有感
一头秀发炮哥哥
这个作者很懒,什么都没留下…
展开
-
从输入URL到页面加载完成,发生了什么?
从输入URL到页面加载完成,发生了什么? 用户输入https://www.madapao.vip 浏览器通过DNS,把url解析成IP 和IP地址建立TCP链接,发送HTTP请求 服务器接收请求,查库,读文件等,拼接好返回的HTTP响应 浏览器接收到首屏html,开始渲染 解析html为dom 解析css为css-tree dom+css生成render-tree绘图 加载script的js文件...原创 2019-12-10 15:15:01 · 103 阅读 · 0 评论 -
js——undefined和undeclared
先看例子: var a; a; //undefined b; //b is not defined 这样的报错会让我们认为b也是undefined 更让人抓狂的是: var a; typeof a; //undefined typeof b; //undefined 虽然两个都输出undefined,但是两个是不同的,b是一个undeclared变量,typeof b并没有报...原创 2019-11-18 22:22:37 · 336 阅读 · 0 评论 -
js——值和类型
js中的变量是没有类型的,只有值才有,变量可以随时持有任何类型的值。 var a = 42; typeof a; //number a = true; typeof a; //boolean typeof typeof a;//总是返回--string ...原创 2019-11-18 22:09:48 · 84 阅读 · 0 评论 -
js---内置类型(1)
js的内置类型 空值(null) 未定义(undefined) 布尔值(boolean) 数字(number) 字符串(string) 对象(object) 符号(symbol,es6中新增) 我们通常用typeof来判断一个变量的类型 typeof undefined === 'undefined'; //true typeof true === 'boolean'; //true ty...原创 2019-10-29 23:29:39 · 154 阅读 · 0 评论 -
彻底玩转this指向
四个常规、一个特殊 四个常规: 1.new绑定 function foo(a) { this.a = a } var bar = new foo(2) console.log(bar.a) //2 使用new调用的函数,则其中this将会被绑定到那个新构造的对象。 2.显式绑定 let web = { webName: "蚂蚁部落" }; function fn() { console.l...原创 2019-10-15 11:21:33 · 108 阅读 · 0 评论 -
动态作用域
我们先看下一段代码 function foo() { console.log(a) } function bar() { var a = 3; foo() } var a = 2; bar() 词法作用域:输出2 如果有动态作用域 动态作用域:输出3 当然javascript并不错在动态作用域,只有词法作用域 但是th...原创 2019-10-09 09:44:53 · 772 阅读 · 0 评论 -
js——闭包
闭包 今天我们谈闭包,纯粹个人理解 function foo(){ var a=2; function bar(){ console.log(a) } return bar } var baz = foo(); baz();//2 理解 在foo()执行后,通常foo()的整个内部作用域会被销毁,因为引擎有垃圾回收器用来释放不在使用的内存空间。由于看上去foo()的内容不在使用,...原创 2019-09-26 18:48:43 · 136 阅读 · 1 评论 -
立即执行函数表达式
立即执行函数表达式 var a = 2; (function foo(){ var a = 3; console.log(a); //3 })() console.log(a); //2 由于函数被包含在一对()括号内部,因此成为一个表达式,通过在末尾加上另外一个()可以立即执行这个函数,比如(function foo(){…}())。第一个()将函数表达式,第二个()执行了这个函数。 ...原创 2019-09-26 10:06:19 · 110 阅读 · 0 评论 -
js变量提升
先上总结:定义提升,赋值不会提升 大家记住这句话,接下来我们开讲: 例1 console.log(a) var a = 2; 输出undefined,它的实际执行过程: var a; console.log(a) a = 2; 这是最简单的例子,var a;是定义的过程,而a = 2是赋值过程 例2(难一diudiu) foo(); function foo(){ console.log(a...原创 2019-09-19 10:34:54 · 64 阅读 · 0 评论 -
函数作用域
在任意代码片段外部添加包裹函数,可以将内部的变量和函数定义“隐藏”起来,如下 function foo(){ var a = 3; console.log(a) } 这种方式不理想,会foo函数会“污染”到全局作用域,而且需要foo()调用才会执行 更好的方案 (function foo(){ var a = 3; console.log(a) })() 优点: foo不属于全局...原创 2019-09-18 00:21:31 · 74 阅读 · 0 评论 -
有趣的js作用域
1. 定义变量 举例: var a = 2; 解释: 两个主人翁: 编译器 引擎 两步操作: 编译器定义一个内存,命名为a 引擎把2赋值给内存a LHS查询和RHS查询 var a = 2; var b= 1 + a; LHS查询:查询到一个变量,对其进行赋值的过程 (如:a=2的过程) RHS查询:查询到一个变量,并用其值的过程 (如:b= 1 + a 用到了a的值) ...原创 2019-09-11 17:27:40 · 96 阅读 · 0 评论