- 博客(28)
- 资源 (3)
- 收藏
- 关注
原创 jQuery-1.11.3源码中的判断数据类型
32 var class2type = {};34 var toString = class2type.toString; 290 type: function( obj ) {291 if ( obj == null ) {292 return obj + "";293 }294 return typeof obj ===...
2018-02-11 19:08:22
235
转载 JavaScript原型彻底理解2---继承中的原型链
一、继承的概念 继承是所有的面向对象的语言最重要的特征之一。大部分的oop语言的都支持两种继承:接口继承和实现继承。比如基于类的编程语言Java,对这两种继承都支持。从接口继承抽象方法 (只有方法签名),从类中继承实例方法。 但是对JavaScript来说,没有类和接口的概念(ES6之前),所以只支持实现继承,而且继承在 原型链 的基础上实现的。等了解过原型链的概念之后,你会发
2018-01-30 14:27:21
236
转载 JavaScript中原型对象的彻底理解
一、什么是原型原型是Javascript中的继承的继承,JavaScript的继承就是基于原型的继承。1.1 函数的原型对象 在JavaScript中,我们创建一个函数A(就是声明一个函数), 那么浏览器就会在内存中创建一个对象B,而且每个函数都默认会有一个属性 prototype 指向了这个对象( 即:prototype的属性的值是这个对象 )。这个对象B就是函
2018-01-30 13:43:06
214
原创 解读jQuery-1.11.3源码 - 1 . 整体架构
(function(global,factory){ factory(global)}(typeof window!=='undefined'?window:this,function(){ var jQuery=function(){ return {} } window.jQuery=window.$=jQuery; return jQuer...
2018-01-29 15:42:08
439
原创 解读jquery-1.11.3源码之rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g
解读 rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g 正则:这个正则是jquery的trim的去掉前后空格的:\s:空格\uFEFF:字节次序标记字符(Byte Order Mark),也就是BOM,它是es5新增的空白符\xA0:禁止自动换行空白符,相当于html中的 参考文档
2018-01-29 11:38:34
2267
转载 ECMAScript 5(ES5)中bind方法简介
一直以来对和this有关的东西模糊不清,譬如call、apply等等。这次看到一个和bind有关的笔试题,故记此文以备忘。 bind和call以及apply一样,都是可以改变上下文的this指向的。不同的是,call和apply一样,直接引用在方法上,而bind绑定this后返回一个方法,但内部核心还是apply。 直接看例子:12
2018-01-08 14:46:45
748
原创 vue-template
在用模板时一直只显示第一个标签内容,原来vue2.0后需要加一个根元素,vue1.0是不需要的<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equ
2017-11-16 15:52:57
491
原创 Vue实现tab切换
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <script src="https://unpkg.com/vue"></script> <style> *{margin:0;padding:0;} body{padding:15px;} a{tex
2017-08-10 18:25:07
2381
原创 ES6 - let 命令
1、基本用法 ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在代码块内有效:{ let a = 10; var b = 1;}a // Uncaught ReferenceError: a is not definedb // 1上面代码在代码块中,分别用let和var 声明了两个变量。在代码块外调用这两个变量,结果let声明的变量报错,va
2017-07-05 16:09:58
269
翻译 作为前端,你会选择哪种格式的图片
图片优化是站内优化不可回避的一块所在。而常见的图片格式有jpg、gif、png、bmp等,对于一个合理的网页来说,选择合适的图片格式十分重要。 JPG:它属于一种压缩图片,是一种大小与质量平衡的压缩图片格式,(低的压缩比 - 高的图片质量:文件的大小便是大的;高的压缩比 - 低的图片质量:文件的大小便是低的)。jpg一般用在允许轻微失真的像素色彩丰富的图片中,它不适用于做简单色彩(色调少)的图片。
2017-06-12 09:45:07
3019
原创 JavaScript中的运算符
下表是按照运算符的优先级排序的,前面的运算符优先级要高于后面的运算符优先级。被水平分割线分割开来的运算符具有不同的优先级标题为A的列表示运算符的结合性,L(从左至右)或R(从右至左),标题为N的列表表示操作数的个数。标题为‘类型’的列表示期望的操作数类型,以及运算符的结果类型(在‘->’符号之后)。 操作数的个数 运算符可以根据其操作数的个数进行分类。JavaScript中的大多数运算符是一
2017-06-07 16:25:43
395
原创 JavaScript作用域链
JavaScript中全局变量在程序中始终都是有定义的。局部变量在声明它的函数体内以及其所嵌套的函数内始终是有定义的。 如果将一个局部变量看作是自定义实现的对象的属性的话,那么可以换个角度来解读变量作用域。 每一段JavaScript代码(全局代码或函数)都有一个与之关联的作用域链。这个作用域链是一个对象列表或者链表,这组对象定义了这段代码‘作用域中’的变量。当JavaScript需要查找变量x
2017-06-07 14:30:22
258
原创 函数作用域和声明提前
在一些类似C语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明他们的代码段之外是不可见的,我们称之为块级作用域。而JavaScript中没有块级作用域。JavaScript取而代之地使用了函数作用域:变量在声明的函数体以及这个函数体嵌套的任意函数体内都是有定义的。 在如下所示的代码中,在不同位置定义了变量i,j和k,它们都在同一个作用域内 - 这三个变量在函数体内军事有定义的
2017-06-07 11:34:47
352
原创 JavaScript类型转换
*空单元格表示不必要也没有执行转换 值 转换为 字符串 数字 布尔值 对象 undefined ‘undefined’ NaN false throws TypeError null ‘null’ 0
2017-06-03 15:14:35
275
原创 JavaScript - 不可变的原始值和可变的对象引用
JavaScript中的原始值(undefined、null、布尔值、数字和字符串)与对象(包括数组和函数)有着根本区别。 原始值是不可更改的:任何方法都无法更改一个原始值。对数字和布尔值来说显然如此 - 改变数字的值本身就说不通,而对于字符串来说就不那么明显了,因为字符串看起来像由字符组成的数组,我们期望可以通过指定索引来修改字符串中的字符。实际上,JavaScript是禁止这样做的。字符串中所
2017-06-03 10:34:38
506
原创 JavaScript中的包装对象
JavaScript对象是一种复合值:它是属性或已命名值的集合。通过‘.’符号来引用属性值。当属性值是一个函数的时候,称其为方法。通过o.m()来调用对象o中的方法。 我们看到字符串也同样具有属性和方法:var s="hello world"; //一个字符串var word=s.substring(s.indexOf(" ")+1,s.length); //使用字符串的属性和方法字符串既然不是
2017-06-03 10:23:04
275
原创 JavaScript中的全局对象
全局对象在JavaScript中有着重要的用途:全局对象的属性是全局定义的符号,JavaScript程序可以直接使用。当JavaScript解释器启动时(或任何Web浏览器加载新页面的时候),他将创建一个新的全局对象,并给它一组定义的初始属性:全局属性:比如undefined、Infinity和NaN全局函数:比如isNaN()、parseInt()和eval()构造函数:比如Date()、Re
2017-06-02 17:34:17
619
原创 JavaScript中的真值和假值
任意JavaScript的值都可以转换为布尔值,下面这些值会被转换成false:undefinednull0-0NaN"" //空字符转所有其他值,包括所有对象(数组)都会转换成true。false和上面6个可以转换成false的值有时称作‘假值’,其他值称为‘真值’。
2017-06-02 17:17:54
1446
原创 JavaScript数据类型 - 数字
和其他编程语言不同,JavaScript不区分整数值和浮点数值,JavaScript中的所有数字均用浮点数值表示。然而需要注意的是,JavaScript中实际的操作则是基于32位整数。 当一个数字直接出现在JavaScript程序中,我们称之为数字直接量。JavaScript支持多种格式的数字直接量。 整型直接量 在JavaScript程序中,用一个数字序列表示一个十进制整数。031000
2017-06-02 16:55:01
336
原创 JavaScript中的数据类型
JavaScript的数据类型分为两类:原始类型 和 对象类型。 原始类型 包括:数字Number、字符串String、布尔值Boolean 两个特殊的原始值:null(空)和 undefined(未定义) 对象类型 包括:object 两个 特殊的对象:数组Array 和 函数Function
2017-06-02 16:46:36
230
原创 JavaScript可选的分号
和其他许多编程语言一样,JavaScript使用分号(;)将语句分隔开,这对增强代码的可读性和整洁性是非常重要的,缺少(;)分隔符,一条语句的结束就成了下一条语句的开始,反之亦然。在JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号。关于JavaScript中可选分号的问题有几个细节需要注意。 如下代码,因为两条语句用两行书写,第一个分号是可以省略的:a=3;b=4;如果按
2017-06-02 15:26:09
859
原创 JavaScript:名字和版本
JavaScript是由Web发展初期的网景(Netscape)公司创建。“JavaScript”是Sun Microsystem公司(现在的Oracle)的注册商标,用来特指网景(现在的Mozilla)对这门语言的实现。网景将这门语言作为标准提交给了ECMA - 欧洲计算机制造协会 - 由于商标上的冲突,这门语言的标准版本改了一个丑陋的名字“ECMAScript”。同样由于商标的冲突,微软对这门语
2017-06-01 21:23:36
403
原创 CSS属性列表 - 布局属性
属性 版本 简介 display CSS2/3 设置或检索对象是否及如何显示 float CSS1 该属性的值指出了对象是否及如何浮动
2017-06-01 19:25:25
565
原创 CSS属性列表 - 定位属性
属性 版本 简介 position CSS2/3 检索对象的定位方式 z-index CSS2 检索或设置对象的层叠顺序
2017-06-01 16:24:58
374
原创 HTML4.0和HTML5 事件之间的差异
HTML 元素可拥有事件属性,这些属性在浏览器中触发行为,比如当用户单击一个 HTML 元素时启动一段 JavaScript。下面列出的事件属性,可以把它们插入 HTML 标签来定义事件行为。 属性 值 描述 4 5 onabort script 发生
2017-06-01 14:08:11
454
原创 HTML4.0和HTML5 属性之间的差异
HTML标签拥有属性。您可以在每个标签的参考页中找到相应的特殊属性。这里列出的属性是通过每个标签的核心属性和语言属性(有个别例外)。 HTML4.0中不再支持的属性:accesskey HTML5中新属性:contenteditable、contextmenu、draggable、irrelevant、ref、registrationmark、template
2017-06-01 13:56:58
1214
原创 用Grunt实现自动化
首先要装上 Grunt 命令行以及 Grunt 本身: sudo npm install -g grunt-cli npm install –save-dev grunt Grunt 要靠插件完成任务,Grunt 插件列表(http://gruntjs.com/plugins)中列出了所有可用 插件。我们需要 Mocha、JSHint 和 LinkChecker 的插件。在写本书时,还没有
2017-05-31 14:14:03
279
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人