0805_指令式编程思维

2016-08-06  本文已影响58人  天才在战斗

知识点回顾

  1. markdown
  2. 全栈工程师
  3. 编程语言发展历程

ps: 这一块我断网了

指令式编程思维

顺序

var a = 0;
a = 2;
a += 1;

选择

if () {

} else {

}

循环

1.
a:
...
// 死循环
goto a;

2.
a:
if () goto b:
...

b:

3.
var flag = true;
while (flag) {

  if() {
    flag = ture;
  }
}

4.
for (var i=0; i<100; i++) {
  // break; continue;
}

例lession1.js:

打印*号
打印矩形*号

var printStr = "";
function printChar(k, c) {
  for (var i=0; i<k; i++) {
    printStr += c;
  }
}
function n() {
  printStr += "\n";
}
function f(c, k) {
  for (var j=0; j<c; j++) {
    printChar(k, "*");
    n();
  }
}
f(5,5);
console.log(printStr);

抽象成打印函数(多少列,符号), 打印多少行(矩形,行列), 打印正方形(边长)
打印一个图形, 最简单最复杂的就是依次打出, 然而会有很多重复事件, 人讨厌而机器喜欢, 这时发现规律, 将所有重复事件抽象成一个整体函数, 然而此时代码利用率极低, 所以进一步抽取, 将整体函数抽取成一个个具有某特定功能的小函数, 由此构建成可打印各种各样图形的函数.

例lession1.html

多人合作开发很容易出现命名空间的问题, 下面使用多种方法重在说明和解决命名空间的问题.

<html>
  <head>
    <title></title>
    <script type = "text/javascript">

      var a = 5;  // window.a = 5;(window是网页的全局,js的全局式global)
      function f() {
        var a = 3; // 这里因为作用域不同所以不会有命名空间问题
        alert(a); // 3
        // alert(window.a); // 在局部里使用window获得全局变量
        window.a = 6;
      }
      alert(a); // 5
      f();
      alert(a); // 6
      // 打印内容是536
    </script>

    <script type = "text/javascript">
      (function(){
        var user;

      })(); // 自执行, 解决命名空间问题
    </script>

    <script type = "text/javascript">
      var a = function(){}
    </script>

    <script type = "text/javascript">
      function f() {
        return function() {}
      }
      var x = f();
      x(); // 这里x执行的就是f函数返回的函数
    </script>
  </head>

  <body>
  </body>
</html>

作业

函数敲一遍

矩形

空心矩形

正方形

空心正方形

梯形

空心梯形

三角形

空心三角形

ubuntu 16.04

上一篇 下一篇

猜你喜欢

热点阅读