了解你的工具可以极大的帮助你完成任务.尽管 JavaScript 的调试非常麻烦,但在掌握了技巧 (tricks) 的情况下,你依然可以用尽量少的的时间解决这些错误 (errors) 和问题 (bugs) . 我们会列出14个你可能不知道的调试技巧, 但是一旦知道了,你就会迫不及待的想在下次需要调试 JavaScript 代码的时候使用它们! 虽然许多技巧也可以用在别的检查工具上,但大部分的技巧是用在 Chrome Inspector 和 Firefox 上的. 1. ‘debugger;’ ‘…
了解你的工具可以极大的帮助你完成任务.尽管 JavaScript 的调试非常麻烦,但在掌握了技巧 (tricks) 的情况下,你依然可以用尽量少的的时间解决这些错误 (errors) 和问题 (bugs) . 我们会列出14个你可能不知道的调试技巧, 但是一旦知道了,你就会迫不及待的想在下次需要调试 JavaScript 代码的时候使用它们! 现在开始. 虽然许多技巧也可以用在别的检查工具上,但大部分的技巧是用在 Chrome Inspector 和 Firefox 上的. 1. ‘debugg…
调试JS的时候,搜索一下这个标题…
更快更高效地调试你的 JavaScript 了解你的工具在完成任务时有很重要的意义. 尽管 JavaScript 是出了名的难以调试,但是如果你掌握了一些小技巧,错误和 bug 解决起来就会快多了. 我们收集了 14 个你必须要知道的调试技巧,希望你可以牢记以便下次你需要它们来帮助你调试你的 JavaScript 代码. 让我们开始吧 大多数技巧都是用于 Chrome Inspector 和 Firefox,尽管有些可能也适用于其他调试器. 1. "debugger;" 除了 cons…
1.变量转换 看起来很简单,但据我所看到的,使用构造函数,像Array()或者Number()来进行变量转换是常用的做法.始终使用原始数据类型(有时也称为字面量)来转换变量,这种没有任何额外的影响的做法反而效率更高. var myVar   = "3.14159", str     = ""+ myVar,//  to string int     = ~~myVar,  //  to integer float   = 1*myVar,  //  to float…
1.数组 在 JavaScript 中,数组可以容纳任何类型的值,可以是字符串.数字.对象(object),甚至是其他数组(多维数组就是通过这种方式来实现的) .----<你所不知道的JavaScript(中)>P11 看看下面的代码: var a = [ 1, "2", [3] ]; a.length; a[0] === 1; // true a[2][0] === 3; // true var b = [ ]; b.length; b[0] = 1; b[1] = &q…
ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型等. 1.内置类型 JavaScript 有七种内置类型: • 空值(null) • 未定义(undefined) • 布尔值(boolean) • 数字(number) • 字符串(string) • 对象(object) • 符号(symbol, ES6 中新增) 除对象之外,其他统称为“基本类型”. 对象称为“引用类型”. 我们可以用 typeof 运算符来查看值的类型,它返回的是类型…
一.闭包是什么? · 闭包就是可以使得函数外部的对象能够获取函数内部的信息. · 闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. · 闭包就是一个“捕获”或“携带”了其被生成的环境中.所属的变量范围内所引用的所有变量的函数. 还有很多很多解释...... 函数对象可以通过作用域链互相关联起来,函数体内部的变量都可以保存在函数作用域内,这叫做“闭包”.      --<JavaScript权威指南> 当函数可以记住并访问所在的词法作用域…
let 众所周知,在ES6之前,声明变量的关键字就只有var.var 声明变量要么是全局的,要么是函数级的,而无法是块级的. var a=1; console.log(a); console.log(window.a); function test(){ var b=2; function print(){ console.log(a,b); } print(); } test(); //1 2 console.log(b); //Uncaught ReferenceError: b is no…
  变量的赋值操作会执行两个动作, 首先编译器会在当前作用域中声明一个变量(如果之前没有声明过), 然后在运行时引擎会在作用域中查找该变量, 如果能够找到就会对它赋值.----<你所不知道的JavaScript(上)> P7 而要讲的 LHS 和 RHS 就是上面说的对变量的两种查找操作,查找的过程是由作用域(词法作用域)进行协助,但是引擎执行怎样的查找, 会影响最终的查找结果. 1.LHS(Left Hand Side)和 RHS(Right Hand Side) 当变量出现在赋值操作的左侧…