- 博客(19)
- 收藏
- 关注
原创 弱类型对“||” 和 “&&”的处理
在javascript中数据类型可以分为“真值“和“假值”。顾名思义,真值转换为bool时值为true,假值转换为bool时值为false。常见数据转换为bool时的值: null false undefined false object true function true 0 false 除0数字 true 非...
2017-06-19 10:29:52 85
原创 require.js使用教程
require.js API:http://requirejs.org/docs/api.html#config 参考文档:http://www.tuicool.com/articles/bu6Zbi require.js优点 1.实现JS文件的异步加载,避免网页被堵塞 2.管理模块之间的依赖性,便于代码的编写和维护 基本语法及使用 1.引用require.js 在页面头部...
2017-06-14 18:02:04 557
原创 AMD
AMD规范文档:https://github.com/amdjs/amdjs-api/wiki/AMD 异步模块定义(Asynchronous Module Definition AMD)API 详述了一种能够保证模块及其依赖能异步加载的定义模块机制。这特别适用于浏览器环境,该环境下模块的同步加载会导致性能,可用性,调试以及跨域访问等问题。 这与科技公司AMD和它生产的处理器没有关系...
2017-06-13 15:37:32 236
原创 js异步再看
之前有一篇《异步运行》,偶然写了一段代码对得到的结果不是很理解,重新查资料得到这篇文章。代码如下: <body> this is test <script> setTimeout(function(){ alert(100) },0); </script> <script type="text/jav...
2017-06-12 18:01:58 157
原创 js代码位置对程序的影响
html文档是由浏览器从上到下依次加载的,javascript代码位置主要影响的是获取网页元素。如果你的代码中包含获取网页元素的代码例如document.getElementById(),那么你需要确保javascript代码要在你想要获取的元素的位置之后。如果在想要获取的元素之前调用这些代码,将无法获取该元素,例如: <script> document.getElement...
2017-06-09 17:26:11 207
原创 javascript参数
跟java相比javascript是一种很灵活(神经病)的语言 不管一个函数定义时有多少个形参,实际调用时传入多少个参数都是可以的,本质上是在函数运行时,在执行上下文准备阶段初始化形参,在运行阶段将实参赋值给形参,实参不够的形参定义为undefined。而所有的实参又在arguments中保存,可以通过arguments[i]进行调用 ...
2017-06-07 18:05:49 90
原创 if(obj.length === +obj.length)
underscore源码里面这样写的原因是什么呢? 上网找了一下几乎都是复制粘贴,讲的还有明显错误。在stackoverflow上找到一个觉得比较合理的答案:https://stackoverflow.com/questions/9188998/obj-length-obj-length-in-javascript (obj.length === +obj.length)效果其实等同...
2017-06-07 16:55:21 370
原创 java有值类型吗
转自:http://www.yinwang.org/blog-cn/2016/06/08/java-value-type Java 有值类型吗? 有人看了我之前的文章『Swift 语言的设计错误』,问我:“你说 Java 只有引用类型(reference type),但是根据 Java 的官方文档,Java 也有值类型(value type)和引用类型的区别的。比如 int,boole...
2017-06-06 16:04:28 89
原创 jQuery1.11.1源码初步解析
jQuery是web程序员的必备js库,估计90%以上的web项目都会用到它。今天周末,心血来潮,打算仔细瞧瞧其庐山真面目。记得以前也对其分析过一次,半途而废了,也没有记录下来。呵呵。废话少说,直接开始。高手请绕行,勿喷,有错误请指正。谢谢。 用eclipse打开jquery-1.11.1.js,源代码如下所示: Java代码 (function( global, fa...
2017-06-06 11:24:36 528
原创 深入--闭包
定义 MDN对闭包的定义为: 闭包是指那些能够访问自由变量的函数 那什么是自有变量呢?自有变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量 由此,我们可以看出闭包共有两部分组成:闭包 = 函数 + 函数能够访问的自由变量 举个例子 var a = 1; function foo(){ console.log(a); } foo(); ...
2017-06-05 17:58:12 125
原创 深入--执行上下文
在《深入--词法作用域与动态作用域》中,提出这样一道思考题 var scope = "global scope"; function checkscope(){ var scope = "local scope"; function f(){ return scope; } return f(); } checkscope(); ...
2017-06-05 15:39:41 85
原创 深入--作用域链
接着《深入--变量对象》讲讲作用域链 作用域链 在《深入--变量对象》中讲到,当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会从父级(词法层面的父级)执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象,这样由多个执行上下文的变量对象构成的链表就叫做作用域链 下面,让我们以一个函数的创建和激活两个时期来讲解作用域链式如何创建和变化...
2017-06-05 14:59:39 75
原创 深入--变量对象
《深入--执行上下文栈》中提到,当javascript执行一堆可执行代码(executable code)时,会创建相应的执行上下文(execution context) 每个执行上下文,都有三个重要属性: 变量对象(Variable Object,VO) 作用域链(Scope Chain) this 这篇重点讲创建变量对象的过程 变量对象 变量对象是与执...
2017-06-05 11:18:47 85
原创 深入--执行上下文栈
顺序执行? 如果要问js代码执行顺序的话,写过js的开发者直观印象,就是顺序执行,比如: var foo = function () { console.log('foo1'); } foo(); // foo1 var foo = function () { console.log('foo2'); } foo(); // foo2 但是再看下面这...
2017-06-02 18:01:43 102
原创 深入--词法作用域和动态作用域
javascript标题深入开头文章转自:https://github.com/mqyqingfeng/Blog 文章某些部分可能因为理解不同做一些修改 作用域指对某一变量或方法具有访问权限的代码空间,javascript采用词法作用域,也就是静态作用域。js没有块级作用域。 静态作用域,变量和方法的作用域在定义时就确定了 动态作用域,变量和方法的作用域在运行时才确定 ...
2017-06-02 17:15:17 132
原创 继承(原型链)
javascript中的继承是通过原型链来体现的 function Foo(){}; var f1 = new Foo(); f1.a = 10; Foo.prototype.a = 100; Foo.prototype.b = 200; console.log(f1.a); //10 console.log(f1.b);//200 为什么是这个结果呢? 访问一个...
2017-06-01 17:35:13 72
原创 instanceof
先给出一个例子 function Fn(){}; var fn = new Fn(); console.log(fn instanceof Fn);//true console.log(fn instanceof Object);//true 看下instanceof运算符的判断规则, 语言规范中对instanceof的定义看起来比较繁琐,不过用js代码来表示就很容易懂了...
2017-06-01 17:11:47 94
原创 函数与对象关系
函数是对象,通过下面代码就能验证 var fn = function(){}; console.log(fn instanceof Object);//true 函数跟对象之间的关系比较复杂 首先:所有对象都是通过函数创建的;有些人可能反驳,不对因为: var obj = {a:10,b:20}; var arr = [5,'x']; function fn = {};...
2017-06-01 16:19:31 225
原创 prototype原型与__proto__隐式原型
javascript中对象就是属性的集合,函数也是一种对象。它也是属性的集合 js默认给函数一个属性--prototype。这个函数值是一个对象(属性的集合,再次强调),默认有一个叫constructor的属性,指向这个函数本身。 有一个函数function F(); var f = new F(); 这样f对象就可以调用F.prototype中的属性,因为每一个对象都有一个隐藏...
2017-06-01 15:30:09 148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人