GET和POST是我们最常用的提交表单数据的方法。前面在原生node.js部分提到过,我们可以

  • 引入url模块,通过url.parse(req.url, true)的方法来解析GET方式提交的数据;
  • 引入querystring模块,通过querystring.parse(str)的方法来解析POST方式提交的数据;

在使用express框架的时候,解析数据的方法略有不同。

阅读全文 »

FreeCodeCamp改版的课程里把后端开发课程(Back End Development Certification)改成了API和微服务课程(Apis And Microservices Certification),因为主要内容主要集中在Node.js,没有涉及到其他的后端语言。正好最近在练习Node.js和学习MongoDB,所以我同时更新响应式布局和API这两部分内容。

这一部分课程分为4部分:

更新完的内容我会将链接同步过来。

这一部分npm的内容重点介绍了package.json里的信息,让学员补齐如作者、版本、描述、证书等信息。关于版本提到了两个小技巧:

  • 正常情况下版本号就是:major.minor.patch(主版本号.次版本号.补丁版本)
  • ~version会匹配最近的补丁版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但不包括1.3.0
  • ^version会匹配最新的小版本依赖包,比如^1.2.3会匹配所有的1.x.x,但不包括2.0.0
阅读全文 »

第二课中提到现代人有三大常见病症,分别是知识焦虑症,信息松鼠病和懒癌。
第二课的内容是针对信息松鼠症提出的,教我们如何处理掉收集到的信息。这里用到的解决方法其实是一个老生常谈的方法,就是费曼技巧

阅读全文 »

这部分没有具体的知识点,全都以习题的形式来巩固之前的内容。这里我直接将题目和解答思路放上来:

具体内容包括:

  1. 设置文字样式,包括html标签如strong, em等,以及css属性如font-size, font-weight, line-height等
  2. 设置盒模型,包括宽高、背景颜色、阴影、透明度等
  3. 常见定位方式,包括相对定位、绝对定位、固定定位、浮动,以及通过z-index调整元素的呈现方式,margin:auto实现居中
  4. 颜色的使用方法,包括如何使用互补色、三次色以及通过hsl设置
  5. 通过@keyframes设置动画效果
阅读全文 »

基础CSS部分的确较之前的内容有了很多改进,而且所有的内容都没有像有些教程硬性地灌输各种属性的内容,而是根据案例将不同的属性串起来,如果仔细分析案例会发现,教程内容也是在润物细无声地告诉你这些属性该怎么设置,可以用于哪些场景。

具体内容包括:

  1. CSS选择器(元素选择器、类选择器、ID选择器、属性选择器)
  2. 选择器之间设置CSS的优先级:!important > 内联 > ID> 类 > 元素
  3. 设置文本样式的基本方式,包括调整字体大小及使用的大小单位、引入字体
  4. 设置颜色的基本方式,包括使用颜色名称、16进制颜色代码、RGB值
  5. 设置盒模型的基本方式,包括padding, margin, border等
  6. 对html根元素进行设置及设置的继承
  7. 如何使用css变量
  8. 如何使用媒介查询,以及结合媒介查询修改css设置
阅读全文 »

我最开始学习编程的网站是Free Code Camp,是一个免费的学习前后端内容的网站。所有的学习内容都以习题闯关的方式呈现,教的比较简单,很容易上手,也很容易建立自信心。我是在做完了HTML,CSS和JS内容之后才开始觉得自己有点点明白编程要干嘛了,然后再自己找了各种有针对性的内容来提升。总体来说,FCC非常适合入门的时候学习,所以我给身边所有想要学习或者了解编程的朋友都推荐了整个网站,不会觉得枯燥,而且真的很容易学到内容。

这两天,freecodecamp国外版更新了整个题库,据说增加了2000多道习题,内容板块也新添加了如flex布局,CSS Grid,ES6等新内容。之前没有提供的比如React,Sass等内容都补充完整了,可以说是一次非常重要的更新。国内网站因为需要时间翻译,所以暂时没有更新。

阅读全文 »

基础HTML和HTML5部分介绍了:

  1. HTML常见的元素类型+基本属性
  2. HTML页面的基本构成,和包含的元素及属性
阅读全文 »

题目

In this kata, you must create a digital root function.

A digital root is the recursive sum of all the digits in a number. Given n, take the sum of the digits of n. If that value has two digits, continue reducing in this way until a single-digit number is produced. This is only applicable to the natural numbers.

Here’s how it works (Ruby example given):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
digital_root(16)
=> 1 + 6
=> 7

digital_root(942)
=> 9 + 4 + 2
=> 15 ...
=> 1 + 5
=> 6

digital_root(132189)
=> 1 + 3 + 2 + 1 + 8 + 9
=> 24 ...
=> 2 + 4
=> 6

digital_root(493193)
=> 4 + 9 + 3 + 1 + 9 + 3
=> 29 ...
=> 2 + 9
=> 11 ...
=> 1 + 1
=> 2

我的解答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function digital_root(n) {
function sum(n) {
let arr = [];
let result = 0;
n = n + '';
for(let i of n) {
result += parseInt(i);
}
return result;
}
let res = sum(n);
if(res > 9) {
return sum(res);
} else {
return res;
}
}

思路:
因为结果需要一直重复轮加,直到最终结果小于10,所以会考虑到递归。在函数内部创建一个基础的函数,先算出n所有位数相加的结果,如果大于10,再对结果使用基础函数。
基础函数的思路是,先将参数数字n转换为字符串,使其具有可遍历性,然后轮加,求得最终结果,返回给digital_root函数。

0%