你不知道的JavaScript(六)Box&Unbox】的更多相关文章

JavaScript中的this,刚接触JavaScript时大家都在大肆渲染说其多么多么的灵巧重要,然而自己并不关心:随着自己对JavaScript一步步深入了解,突然恍然大悟,原来它真的很重要!所以,自己花费了大约2周的时间去查贴.翻阅之前读的书籍,将this的全貌展示如下. 先出几道题: var a = { value: 'a', fn:function() { alert(this.value); }};var b = a.fn;b(); //undefined var a = { va…
原文 一. 序言 最近我在读一本书:<你不知道的JavaScript>,这书分为上中卷,内容非常丰富,认真细读,能学到非常多JavaScript的知识点,希望广大的前端同胞们,也入手看看这本书,受益匪浅. <你不知道的JavaScript上卷> 现在我读完这本书的一些心得与总结: 很多人在做项目时候,遇到bug是我们程序猿最令人头疼的一件事,不过,无论多大多小的bug,都会被我们debug,所以,一切的bug都有原因,只要慢慢静下心来细想想这段代码的流程结构是否正确,哪一步骤出了错…
第一部分: 作用域和闭包 一.作用域 1. 作用域:存储变量并且查找变量的规则 2. 源代码在执行之前(编译)会经历三个步骤: 分词/此法分析:将代码字符串分解成有意义的代码块(词法单元) 解析/语法分析:将词法单元流转换成抽象语法树(AST) 代码生成:将抽象语法树转换成可执行代码 3. LHS查询: 变量出现在赋值操作左侧, RHS查询: 变量出现在赋值操作右侧 4. 作用域嵌套:在当前作用域中无法找到某个变量的时候,引擎就会在外层的嵌套作用域中继续查找,直到找到该变量,或抵达最外层的作用域…
最近在读一本进阶的JavaScript的书<你不知道的JavaScript(上卷)>,这次研究了一下“this”. 当一个函数被调用时,会创建一个活动记录(执行上下文). 这个记录会包含函数在哪里被调用(调用栈).函数的调用方法.传入的参数等信息. this就是记录的其中一个属性,会在函数执行的过程中用到. this既不指向函数自身也不指向函数的作用域. this实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用. 一.调用位置 调用位置就在当前正在执行的函数的前一个调用中…
最近在读一本进阶的JavaScript的书<你不知道的JavaScript(上卷)>,里面分析了很多基础性的概念. 可以更全面深入的理解JavaScript深层面的知识点. 一.函数作用域 1)函数作用域 就是作用域在一个“Function”里,属于这个函数的全部变量都可以在整个函数的范围内使用及复用. function foo(a) { var b = 2; function bar() { // ... } var c = 3; } bar(); // 失败 console.log( a,…
你不知道的Javascript(上卷)这本书在我看来是一本还不错的书籍,这本书用比较简洁的语言来描述Js的那些"坑",在这里写一些博客记录一下笔记以便消化吸收. 1 编译原理 在此书中,开始便提出:Javascript是一门编译型语言,我一开始以为这是国内翻译的锅,翻译的不够准确,后来我还专门去github看了,作者确实是将Js描述为一门编译型语言(compiled language).然而我认为作者更想表达的是Js也拥有和Java一般的特定的编译过程.而不是传统得认为只是单纯的进行&…
你不知道的JavaScript上卷笔记 前言 You don't know JavaScript是github上一个系列文章   初看到这一标题的时候,感觉怎么老外也搞标题党,用这种冲突性比较强的题目吸引眼球,以致最初真没去看内容.直到出了中文版<你不知道的JavaScript>,一看评价大家都说好,买来一读,内容果然很好,很多地方,让我这个半路转行JavaScript的人豁然开朗.中文版现在出了上卷,中卷应该很快会推出,下卷就要等久一点了 作用域和闭包 作用域是什么 1.现代JavaScri…
原文:从头开始学JavaScript (六)--语句 一.条件分支语句:if 基本格式: if (<表达式1>){    <语句组1>}else if (<表达式2>){    <语句组2>}else{    <语句组3>} 执行流程: 二.循环语句 2.1前测试循环语句:在循环体内的代码被执行之前就对出口条件求值. 2.1.1while语句 基本格式: do {    <语句组>} while (<表达式>)  执行流程…
<你不知道的JavaScript>是一个不错的JavaScript系列书,书名可能有些标题党的意思,但实符其名,很多地方会让你有耳目一新的感觉. 1.typeof null === "object"// true ES6中JavaScript的类型有:null.undefined.string.number.boolean.object和symbol.但为啥上面的表达式为true呢?这其实是JavaScript的一个bug.最初设计是根据类型对应的前三位是不是0来判断是否为…
本文首发在我的个人博客:http://muyunyun.cn/ <你不知道的JavaScript>系列丛书给出了很多颠覆以往对JavaScript认知的点, 读完上卷,受益匪浅,于是对其精华的知识点进行了梳理. 什么是作用域 作用域是一套规则,用于确定在何处以及如何查找变量. 编译原理 JavaScript是一门编译语言.在传统编译语言的流程中,程序中一段源代码在执行之前会经历三个步骤,统称为"编译". 分词/词法分析 将字符串分解成有意义的代码块,代码块又称词法单元.比如…