- 博客(23)
- 收藏
- 关注
原创 关于 JS 回调函数中使用 this 出现问题的思考
在《你不知道的 JS》中对 this 有详细的讲解。关于回调函数中 this 使用,我有了这样的理解。Talk is cheap, show me code.var fn = function(callback) { var value = 1; return callback();}var value = 0;var foo = { value: 2, bar: f...
2018-12-05 22:47:43 1458 1
原创 理解 JavaScript 作用域
上一篇文章中分析了 JS 中的数据类型和变量。这一篇文章将分析作用域,以及回答上一篇文章中变量提升的原因。什么是作用域作用域是一套规则,保存着变量,等待被引擎所查找。var a = 1;console.log(a); // => 1console.log(b); // => ReferenceError当打印 a 时,引擎就去作用域中查找 a,找到把结果返回。如果查找...
2018-11-27 18:17:57 216
原创 分析 JavaScript 的数据类型与变量
这篇文章,我们来聊聊 JS 中的数据类型与变量。这是最基础的一类问题,但却很重要。比如:如何理解参数的按值传递?什么是暂时性死区?什么是变量提升?全局变量和 window 的属性有什么区别?为什么?… …以上的问题均来自面试。如果你并不清楚,我觉得你有必要接着读下去。基本数据类型在 JS 中,基本数据类型有 6 种,即数值、字符串、布尔值、null、undefined、Sym...
2018-11-14 22:23:38 267
原创 Lodash 源码 | 2 Lodash 如何判断数据类型 II
上篇文章分析了在 Lodash 中如何可靠地检测对象类型(纯对象)。在 JS 中,引用类型不仅仅有纯对象,常见的还有数组、函数、类数组对象等等。除了引用类型,还有一个大类叫做基本数据类型,包括数值、字符串、布尔值、null、undefnied、Symbol。所以,在这一篇文章中,就要来分析在 Lodash 中如何判断其他常见的数据类型的?以及在原生 JS 中,这些数据类型又存在哪些“坑”?Pa...
2018-11-12 20:45:34 3616
原创 Lodash 源码 | 1 Lodash 如何判断数据类型 I
阅读 Lodash 的第一部分源码是关于如何可靠地判断数据类型的。Lodash 一共有 31 个 API 用于判断数据类型,今天分析其中 3 个,另外 27 个 API 会在后续的文章中分析。JS 中对于对象类型的判断,极为复杂,不仅需要考虑语言本身的设计问题,还需要具备原型与原型链的知识,以及 ES6 相关的储备。在 Lodash 中提供了 isObject(), isObjectLike...
2018-11-11 18:43:41 1895
原创 Lodash 源码 | 0 我选择从 Lodash 开始
What is LodashLodash 不仅仅是一个现代 JavaScript 工具库,更是一种数据处理的方式。import _ from 'lodash';var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; _.at(object, ['a[0].b.c', 'a[1]']);// => [3, 4]这个系列将以阅读源码的方式...
2018-11-11 18:42:26 1526
原创 ElementUI 表单验证数据的正确姿势
ElementUI 表单验证数据的正确姿势需要验证熟悉程度,验证条件有必须填入必须为数字范围为 0 -100参考 ElementUI 的官方文档,可以有这样的验证规则,验证第一个条件:rules: { acquaintance: [{ required: true, message: '请输入熟悉程度', trigger: 'blur' ...
2018-07-25 11:09:44 39963 5
原创 JavaScript数组
数组的创建 JavaScript 中的数组每一项可以保存任何类型的数据,并且,JavaScript 数组的大小时动态调整的。JavaScript 中允许我们使用两种方式来创建数组:// 方式一:使用 Array() 构造函数var names = new Array();var colors = new Array(5);var ages = new Array(20, 18, 22);
2017-12-18 11:22:12 286
原创 [入门案例] Express+MongoDB
写在前面请确保已安装 node.js node.js安装教程请确保已安装 MongoDB MongoDB 安装教程Step 1. 项目初始化创建项目目录mkdir express_mongodb_democd express_mongodb_demonpm init -ynpm install --save expressnpm insatll --save express-handleb
2017-11-30 16:03:04 697 1
原创 深入理解盒模型
盒子模型是什么在 HTML 中,所有的文档元素被表示为一个元素盒子,这个盒子描述了元素在文档布局中所占的空间大小,并且相互影响。而确定这些盒子的尺寸、属性和位置是渲染引擎的目标。直接上图:打开 Chrome 浏览器,按下 F12 ,可以在 Elements->Styles 下找到这个盒子模型图。盒子模型从内向外,依次是内容区(即 width 和height),padding, border,以及 m
2017-10-26 16:23:42 361
原创 关于 vertical-align:middle 的误解
今天,我就借这张图总结一下居中问题。从图中来看,这里涉及到三处居中。第一处居中 是白色背景块相对于 body 水平垂直居中。 第二处居中 文字相对于白色背景块垂直居中 第三处居中 图片相对于白色背景块垂直居中先来看看如何实现,下面是我的 html 代码:<body> <div class="container"> <img src="logo.png" alt="logo
2017-09-13 19:03:27 578
原创 typeof 探秘
我们知道在 JavaScript 中有五种基本类型和对象(Object)。这五种基本类型是 Number, String, Boolean, null, undefined 。在 JavaScript 中,变量是没有类型的,或者说变量的类型是根据它的值动态变化的。所以在 JavaScript 中有一种检测变量数据类型的操作符,即 typeof 。一般情况下,typeof 都能正确检测出变量的数据类型
2017-09-10 12:53:36 405
原创 NaN探秘 - 不是数字的数字?
NaN (not a number) - 不是一个数字,这种说法不准确。NaN 是一个数字类型,表示的是“在执行数学运算时没有成功,而返回的一个失败的结果”。
2017-09-10 11:16:30 1394
原创 CSS的组织和管理
CSS的组织和管理 原文链接 - 从BEM谈大型项目中CSS的组织和管理 BEMBEM是一种CSS命名方法。 * B - Block,块,一组独立的模块,比如菜单。 * E - Element,元素,块的组成部分,比如菜单项。 * M - Modifier,修饰符,用于修饰块或元素的样式或行为,比如菜单项选中。下面从代码来看BEM命名法和传统命名法的区别:<!-- BEM命名法 -->
2017-08-16 18:30:39 810
原创 sass变量
滴,sass的第一次打卡。SASS - Syntactically Awesome StyleSheets,直译过来就是语法上令人惊叹的样式表。的确,SASS是对CSS的扩展,拥有 变量、mixin、导入、嵌套、自定义函数 等出色的功能。为了更快速高效、模块化的组织我的CSS代码,所以我要开始学习sass。今天,就要谈谈 sass 变量。sass 变量基本用法sass中的变量定义特别容易,使用 $
2017-08-05 20:11:50 793
原创 《JavaScript高级程序设计》读书笔记(五) - 引用类型之Function类型
引用类型之Function类型引用类型之Function类型Function类型函数声明与函数表达式作为值的函数函数内部属性函数属性和方法Function类型函数实际上是对象。每个函数都是Function类型的实例,而且与其他引用类型一样具有属性和方法。函数名实际上是一个指向函数对象的指针,不会与某个函数绑定。函数通常使用函数声明语句定义:function funcName(value1
2017-07-26 10:01:53 305
原创 《JavaScript高级程序设计》读书笔记(四) - 引用类型之Array类型
引用类型之Array类型引用类型之Array类型Array 类型读取设置数组的值检测数组转换方法栈方法队列方法重排序方法操作方法位置方法迭代方法归并方法Array 类型ES数组的特性: 1. 数组的每一项可以保存任何类型的数据; 2. 数组的大小可以动态调整。创建数组的方式: 1. 使用 Array 构造函数var colors = new Array();// or
2017-07-22 17:11:38 445
原创 《JavaScript高级程序设计》读书笔记(三) - 作用域、递归、闭包
执行环境及作用域执行环境(execution context)定义了变量或函数有权访问的其他数据,决定了它们各自的行为。 每个执行环境都会对应一个变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中,即为变量对象的属性或方法。这个对象是无法通过编写代码访问的,供解析器在后台处理数据时使用。 全局执行环境是最外围的一个执行环境,在web浏览器中被认为是 wind
2017-07-21 16:13:46 446
原创 《JavaScript 高级程序设计》读书笔记(一) - 基本概念(一)
前导:变量、数据类型、操作符。知识点不详尽,用于查漏补缺。变量用 var 操作符定义的变量将成为定义该变量的作用域中的局部变量。在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁。function test(){ var message = 'hi'; // 局部变量}test();alert(message); // 错误!省略 var 操作符声明的变量成为全局变量
2017-07-03 16:08:48 361
原创 排序算法之基数排序 - JavaScript实现
刚开始学,注释为自己的理解,敬请指正。// LSD Radix Sort// 比较整型var counter = [];// 定义一个函数 arr待排序数组 maxDigit数组中最大数的位数,例如[1,10,100]的maxDigit为3function radixSort(arr, maxDigit) { var mod = 10; var dev = 1; for
2017-05-16 12:17:21 1213
原创 JavaScript 函数(一)- 函数的定义及调用
JavaScript 函数(一)- 函数的定义及调用标签(空格分隔): JavaScript序 函数是这样一段JavaScript代码,它只定义一次,但可能被执行或调用任意次。JavaScript函数是参数化的:函数的定义会包括一个称为形参的标识符列表,这些列表在函数体中像 局部变量 一样工作。 在JavaScript里,函数即对象。函数的定义function fn(){};使用函数语句定
2017-05-08 10:39:42 857
原创 Java - static关键字
static关键字静态变量静态方法使用初始化块static关键字静态变量public class HelloWorld { // static修饰的变量为静态变量,所有累的对象共享 static String hobby = "programming"; public static void main(String args[]){ // 静态变量可以直接
2017-05-01 11:22:20 362
原创 操作jQuery集合
介绍如何使用jQuery()函数创建新的DOM元素创建新HTML元素参考以下代码:动态创建一个功能完整的图片元素管理jQuery集合 介绍多种细化、扩展及过滤jQuery结果集的方法确定集合大小 jQuery集合的行为与数组很像获取页面中所有的段落数量var $allPara = $('p').length;从集合获取元素通过索引查找元素get([index])方法,如果参数为负,从匹
2017-03-17 19:40:56 952
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人