函数传参:按值还是按引用?

今天在写代码(见这里)的过程中,在一个验证表单的问题上,对于函数传参的过程发生了一点混乱,这引发了我对函数传参过程的思考

1. 首先理解什么是参数

ECMAScript函数的参数与大多数其它语言中函数的参数有所不同。ECMAScript函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型。也就是说,即便你定义的函数只接收两个参数, 在调用这个函数时也未必一定要传递两个参数。可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言,之所以会这样,原因是ECMAScript中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数。在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。

查看更多

常见的几种排序算法总结

对于非科班生的我来说,算法似乎对我来说是个难点,查阅了一些资料,趁此来了解一下几种排序算法。
首先了解一下,什么是程序
一个程序主要包括以下两方面的信息:
1、对数据的描述,在程序中要指定用到哪些数据类型以及这些数据的类型和数据的组织形式,这就是数据结构
2、对操作的描述,即要求计算机进行操作的步骤,就是算法
对于一种程序设计人员来说,算法,数据结构,程序化设计方法和程序语言是其所应的知识,算法是灵魂,数据结构是加工对象,语言是工具。

查看更多

HTML渲染顺序

我们知道,同一个HTML文件,各浏览器所呈现的内容最终是一致的,但是浏览器对HTML文档的渲染顺序是否相同呢?如CSS,JS文件在head,body中,各浏览器究竟是按照怎样的顺序就行渲染的呢?
(此文以Chrome,Firefox,IE为例)

前提,CSS,JS文件都较大,在低网速下测试,可以观察到不同浏览器的行为,其中在CSS中规定h1的字体颜色为红色。

查看更多

Flex布局学习

传统的网页布局中,我们经常使用display:block+margin+padding+float+position来实现,但随着网页越来越复杂,对于某些不确定宽高的元素想要实现垂直居中实际上是比较困难的,而随着CSS3中Flex布局的出现,解决了传统布局中一些不易实现的问题。

Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。

查看更多

hexo+Github pages搭载博客

hexo是基于Node.js的一款静态博客框架,如果想要搭建博客,不想自己写页面的话可以考虑用hexo,其中有很多的简洁主题可供选择,同时hexo支持markdown语法,编辑文章更加方便,快捷。

注:此篇教程以windows系统为例

一、准备工作

1.1 安装软件

首先,需要安装以下几款软件
1、Gitbash 下载地址
2、Node.js 下载地址
3、Github账号 注册地址

查看更多