你知道JavaScript中的结果值是什么吗?

2016-10-04
阅读 3 分钟
3.5k
你知道JavaScript中的每条语句、甚至表达式都有一个结果值吗? 当你在浏览器中测试代码时,经常会在控制台的输出结果的最后面多出一条,大部分为undefined,这个undefined就是一个结果值。 ES7的do表达式 先从ES7的一个提案说起吧:do表达式do{...}(注意:不是do{...}while();中的do) {代码...} 表达式do{...}的作用就...

switch语句的妙用

2016-10-03
阅读 1 分钟
2.2k
这里a和case列表中从上而下逐一做比较,如果匹配就执行case中的代码,若有break则跳出,无break则继续往下匹配,直到新的匹配和break或switch代码块结束。注意:a和case值的匹配算法是执行严格相等比较的(‘===’),通常a和case的值都是简单值。

'{ }'在不同上下文中的作用

2016-10-02
阅读 2 分钟
2k
在{ }的外面包裹( )时,也被当对象处理,如( {a:1} ),而( { var a = 1; } )不符合对象定义的语法,会提示语法错误

从连续赋值到:词法分析、函数执行原理

2016-10-02
阅读 2 分钟
2.8k
结果是什么?console.log(o1);这句简单undefined,而console.log(o2);这句呢?答案是5,o2变成了全局变量了 这是实际执行顺序:

模块化你的JS代码

2016-09-29
阅读 5 分钟
4k
因为在全局作用域中声明的变量和函数都自动成为全局对象Window的属性,这经常会导致命名冲突,还会导致一些非常重要的可维护性难题,全局变量越多,引入错误BUG的概率就越大!所以我们应当尽可能少地使用全局变量,模块化的目的之一就是为了解决该问题的!

利用模板将HTML从JavaScript中抽离

2016-09-29
阅读 3 分钟
3.2k
对于少量的标签段,应该考虑采用客户端模板。客户端模板是一些带‘插槽’(占位符)的标签片段,这些占位符会被JavaScript程序(模板引擎)替换为数据,然后把该替换好的标签片段插入到页面中。

几句话就能让你理解:this、闭包、原型链

2016-09-25
阅读 2 分钟
1.9k
所有对象都是基于Object.prototype,Object.prototype就是JavaScript的根对象,在Object.prototype中定义的方法都可以被其它对象访问到,当然也可以被重写了,所以直接在Object.prototype上调用的是原始功能的toString()方法,该方法会放回参数对象的内置属性[[class]]的值,这个值是个字符串,比如'[Object String]'

深入理解:JavaScript原型与继承

2016-09-24
阅读 4 分钟
1.5k
所有的数据都是对象(javascript中除了字符串字面量、数字字面量、true、false、null、undefined之外,其他值都是对象!)