什么是算法
高德纳《计算机程序设计艺术》里对算法的归纳:
输入:一个算法必须有零个或以上输入量
输出:一个算法应有一个或以上输出量
明确性:算法的描述必须无歧义,实际运行结果是确定的
有限性:必须在有限个步骤内结束
有效性:又称可行性。能够被执行者实现
高德纳《计算机程序设计艺术》里对算法的归纳:
输入:一个算法必须有零个或以上输入量
输出:一个算法应有一个或以上输出量
明确性:算法的描述必须无歧义,实际运行结果是确定的
有限性:必须在有限个步骤内结束
有效性:又称可行性。能够被执行者实现
1.手机和电脑处于同一个wifi
2.在电脑上启动一个http server
1 | npm i -g node-static |
2 | static --host-address=0.0.0.0 |
3.找到电脑的局域网IP,访问列如:http://192.168.1.102:8080/index.html
4.边预览边改代码
Git 属于分散型版本管理系统,是为版本管理而设计的软件。
创建公开密钥认证所需的ssh key
1 | $ ssh-keygen -t rsa -C "your_email@example.com" |
2 | Generating public/private rsa key pair. |
3 | Enter file in which to save the key |
4 | (/Users/your_user_directory/.ssh/id_rsa): 按回车键 |
5 | Enter passphrase (empty for no passphrase): 输入密码 |
6 | Enter same passphrase again: 再次输入密码 |
id_rsa 文件是私有密钥,id_rsa.pub 是公开密钥。
var 声明的变量是函数作用域变量。
1 | var a = 1; |
2 | var a = 2; |
3 | 等价于 |
4 | var a; |
5 | var a; |
6 | a = 1; |
7 | a = 2; |
var 声明的变量提到作用域的前方,简称变量提升。
看一个例子
1 | var a = 1; |
2 | function foo(){ |
3 | alert(a); |
4 | var a = 2; |
5 | } |
6 | foo.call() |
alert(a)打出来的是什么?
这三个方法都返回被操作字符串的一个子字符串,而且也都接受一或两个参数。
slice() 第一个参数指定子字符串的开始位置,第二个参数指定的是子字符串的结束位置(但不包括)。
substring() 第一个参数指定子字符串的开始位置,第二个参数指定的是子字符串的结束位置(但不包括)。
substr() 第一个参数指定子字符串的开始位置,第二个参数指定的是返回字符个数。
把若干个节点上的相同事件的处理函数event listener绑定到它的父节点上去, 在父节点上统一处理,减轻对event listener的管理负担。
1.监听还不存在的元素或者已经存在的元素
2.减少监听器的个数
1.操作系统最先知道用户点击了鼠标,浏览器次之
2.child 被点击了,意味着 parent 也被点击了
3.如果我同时监听了 child 和 parent,那么谁先通知我?这是个问题。
parent 先通知,child 后通知
1 | <body> |
2 | <div class="parent"> |
3 | <div class="child"></div> |
4 | </div> |
5 | <script> |
6 | var parent = document.getElementsByClassName("parent")[0]; |
7 | var child = document.getElementsByClassName("child")[0]; |
8 | child.addEventListener('click',function(){ |
9 | console.log("child") |
10 | },true) |
11 | parent.addEventListener('click',function(){ |
12 | console.log("parent"); |
13 | },true) |
14 | document.body.addEventListener('click',function(){ |
15 | console.log("body"); |
16 | },true) |
17 | </script> |
18 | </body> |
console对象是JavaScript的原生对象,可以输出各种信息到控制台,并且还提供了很多额外的有用方法。
它的常见用途有两个。
调试程序,显示网页代码运行时的错误信息。
提供了一个命令行接口,用来与网页代码互动。
判断第一个参数是否为真,false的话抛出异常并且在控制台输出相应信息。
assert方法接受两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。
1 | console.assert(true === false, '判断条件不成立') |
2 | // Assertion failed: 判断条件不成立 |
1 | <a href="http://www.baidu.com" onclick="return false">baidu</a> |
1 | <a id=xxx href="http://www.baidu.com">baidu</a> |
2 | <script> |
3 | xxx.onclick = function(){ |
4 | return false |
5 | } |
6 | </script> |