今天是2018年4月3日,昨天我看了一点点黄焖鸡的内容,然后呢?然后什么也没做。其实在我完成practice之后,就应该做总结的,但是我拖了一天,事实上是我不想做这个了,但是后来我发现我并没有将里面的内容完全消化,所以这个工作时必须的。
留这段无关痛痒的话只是为了告诫我自己:反思是必须的,而且不要拖!
以下开始正式总结:
总结分两个部分,第一个部分是总结学了什么,第二部分是对practice的总结。
一、开课一周,我学到了什么?
1.初步了解结构化编程和面向过程编程:
1)结构化编程的原则是:自顶向下,逐步细化;清晰第一,效率第二;书写规范,缩进格式;基本结构,组合而成;
2)面向过程编程的方法是:步骤分解,将大步骤分解成小步骤,然后将每一个步骤命名,接着去实现每一个步骤。
2.JS知识基本概念:
注释符号、数据类型、算术运算、逻辑术语、判断语句、循环语句、函数、作用域等基础概念。
3.JS知识基本操作:
数组、分支与循环、字符串、对象、函数等相关基本操作。
二、完成practice部分,有什么收获?
1.了解到怎样去思考问题,如何去解决问题:
在做get_integer_interval_2时,这是我做的第三个题,根据两个数得到自增自减区间,这个题我花费了三个小时。一开始完全不知道怎么入手,在请问助教的时候,助教问我这道题你怎么想,我硬着头皮说:先判断number_a和number_b的大小,然后循环...
助教说我的思考方向是对的,然后说你看到这个题,首先你要想怎么去得到这个答案,它输出的是一个数组,那么你要循环,然后去判断,一步步想好怎么做,再去敲代码,我似乎有了感悟,于是我将整个思路想清楚了,最后写出了代码,对我来说,它非常复杂,事实上它确实复杂了,题目没有要求的也写了代码。但是那是在写完之后才发现的,也就是说我看了题目要求之后,自己想当然的认为代码需要哪些东西,然后一股脑的实现,现在想起来确实是浪费太多时间了。
在那之后的练习题都是先看要求然后思考怎么去实现,需要哪些代码,再去实现。
2.熟悉了JS运算的相关操作:
1)首先是基本的遍历数组、对象,按要求取出一些元素,如取偶数、奇数、特定的数(最大、最小),统计特定元素的个数;
2)基本算数运算:求平均值、中位数、总数,映射出另一个集合;
3)数组转换:二维数组转一维数组,一维数组转二维,对象转数组;
4)常用运算方法:排序、去重,求交集、合集、并集、差集。
3.常用的运算方法:
在这个部分中,用到的都是解决问题时需要的方法,但是搜索出来的答案非常多,而且有的很难对自己有作用,所以以下的链接,都是个人认为比较好的答案。
1) 计算数组中某数字的个数
2) js中数组排序sort方法的原理分析(sort排序)
3)JavaScript数组去重的十种方法
4)js splice 属性实现数组的删除,插入,替换
5)js 小数取整的函数
6)js 字符串数组转换成数字数组
7)程序员必须知道的10大基础实用算法及其讲解
4.怎样搜索能更快地得到自己想要的答案:
对于这一部分,我不能说我写的总结就能够帮助别人迅速找到答案,我只是依照自己做那几十道题搜索答案时的经验,来谈一下自己对这方面的看法;
practice部分的题目,有一部分确实有困难,刚开始的时候我搜索问题,比如JS数组找出相同元素个数,然偶得到的答案非常让人失望,在经过不知道多少次的搜索之后,我觉得想要找到自己想要的东西:
首先要分析问题,将问题分解成多个步骤,然后确定那个步骤中以自己现有的知识解决不了问题,然后搜索关键词。
网友评论