从零开始搭建Hexo博客
从零开始搭建Hexo博客
git常用命令总结
Git常用命令 代码仓库 创建仓库 进入需要创建代码库的文件夹 cd 文件路径 创建/初始化仓库 git init 拉取远程仓库到本地(建议使用) git clone 添加文件到仓库 添加文件到暂存区 添加单个文件 git add 文件名 添加所有文件 git add . 添加的过程中需注意以下两点: .gitignore中指定的文件会被忽略 空目录不会添加 提交到本地仓库 git commit 填写commit message并保存 不建议使用git commit -m "commit message",建议提交遵循commit message规范 查看工作区状态 git status 对比工作区文件变化 git diff 建议将beyond compare配置为diff工具,用于diff以及merge冲突。 仓库配置 配置全局用户名和邮箱 个人开发机配置: git config --global user.name "[name]" 比如:git config --glob ...
07JavaScript引用类型
引用类型 在JavaScript中,变量是某个对象的属性,函数是某个对象的方法 在浏览器环境里面,定义的全局变量就是window对象的属性 引用类型的分类 引用类型 描述 Date 类型 获取和设置当前日期时间 Math 类型 用于数学计算 Global 类型 全局对象,提供全局属性和全局方法 Array 类型 用于有序的存储多个值 RegExp 类型 用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具 Error 类型 用于匹配代码错误并提供对应提示内容 Function 类型 用于定义 JavaScript 中的函数 Object 类型 用于定义 JavaScript 中的对象 Date类型 创建一个Date类型的对象 var date1 = new Date() var date2 = new Date var date3 = Date() Date提供now()方法,可以得到一个从 1970 年1月1日 00:00:00 至当前系统时间的毫秒数值。 Date类型初始化时间也可以指定日期,语法 var date ...
06JavaScript作用域与对象
变量作用域 // 声明全局变量 - 全局作用域 var msg = 100; // 声明局部变量 - 某个函数作用域 function fn() { // 局部变量 - 只能在当前函数作用域中访问 var msg2 = 200; console.log(msg2,msg); } fn() console.log(msg) 变量提升 // 先调用后声明 console.log(msg); //打印undefined var msg = 100; console.log(msg); //打印100 以上代码会先输出undefined然后输出100 。约等于以下写法 var msg; console.log(msg); msg=100; console.log(msg); 所以变量提升也就是变量的声明被提升了 即使我们在定义这个函数之前调用它,函数仍然可以工作。这是因为在 JavaScript 中执行上下文的工作方式造成的。 JavaScript 仅提升声明,而不提升初始化。如果你先使用的变量,再声明并初始化它,变量的值将是 undefined。变量提升也 ...
05JavaScript函数
函数声明 // 函数声明方式 function name() { // code } // 函数表达方式 var name = function () { // code }; 函数与变量同名时的问题 使用函数声明方式时 变量会覆盖函数,与顺序无关 var fn = "message"; function fn() { return 100; } console.log(fn); //输出message fn();//报错 TypeError: fn is not a function 使用函数表达式方式时 函数会覆盖变量(变量先声明,函数后声明),与顺序有关。 简单来说就是变量的重复声明 var fn = "message"; var fn = function () { return 100; }; console.log(fn); //输出 [Function: fn] 所以我们的得出结论: 函数的声明方式和函数的表达式方式,在内存的结构上应该是不同的 当使用 ...
JavaScript面试题
数组 以下写法的区别 var num1 = 100;var num2 = new Number(100) var str1 = 'message';var str2 = new String('message') var bool1 = true;var bool2 = new Boolean(true) var arr1 = [];var arr2 = new Array(); 对于数字、字符串与布尔类型的数据两种声明方式变量都是原始类型,而数组是引用类型。所以只有数组与其他三种有区别。 得到undefined值得情况 声明变量但不初始化 var msg; 声明变量并初始化为undefined var msg = undefined; 函数默认的return语句所返回得值为undefined function fn() { console.log("1"); } 函数设置return返回undefined function fn() { return undefined; } 访问一个对象中不存在 ...
04JavaScript数组
数组 数组的定义 常见的数组有三种:索引数组、关联数组、稀疏数组。 其中只有索引数组在官方文档中提及,后两种均未提及。 索引数组:索引值为数字得数组 var arr1 = [1, 2, 3, 4, 5]; console.log(arr1[0]); // 通过索引访问 关联数组(对象替代):索引值为字符串得数组 var arr2 = new Array(); arr2["name"] = "lilei"; arr2["age"] = 18; console.log(arr2); 稀疏数组:数组长度与数组元素个数不一致 var arr3 = new Array(); arr3[15] = 100; arr3[34] = 200; console.log(arr3); 以上三种数组的长度 console.log("arr1的长度:", arr1.length); console.log("arr2的长度:", arr2.length); console.log("arr3的长度:", arr3.length); /* arr1的长度: 5 arr2的长度: 0 arr3 ...
计算机通信流程
同一网段内计算机通信流程 参考地址:https://www.processon.com/view/5d784083e4b01080c73b9ca8 如上图为一个简单的同一网段内主机的示例。 如果计算机A向计算机B发送消息,那么 应用层会获取计算机B的ip地址(例如192.168.3.98,端口号为3456),并且将数据封装交给传输层 传输层会利用TCP协议将数据封装端口号(源端口号|目的端口号|数据),并交给网络层 网络层利用ip协议为数据封装IP地址(源IP地址|目的IP地址|源端口号|目的端口号|数据),并交给数据链路层 数据链路层进行判断判断自己的ARP表是否存在目的MAC地址。 存在 利用以太网协议给数据封装MAC地址(源MAC地址|目的MAC地址|源IP地址|目的IP地址|源端口号|目的端口号|数据),并交付物理层。 不存在 向本网段内发送一条ARP广播,含义为谁是IP 192.168.3.98,你的MAC地址是多少。 此时计算机B收到广播后,发现IP是找自己的则先将计算机A的ip与MAC记录到自己的ARP表里,然后给计算机A回复一个ARP响应包, ...
03JavaScript运算符
基本运算 基本运算包括加减乘除。 当数字与任意字符串都相加时相当于字符串拼接 console.log(100 + "100"); //结果为 100100 console.log(100 + "test"); //结果为 100test 当数字与一个字符串类型的数字相减时就返回正确的结果,与非数字的字符串相见返回NAN console.log(100 - "10"); //结果为 90 console.log(100 - "test"); //结果为NaN 乘法、除法与减法类似。 console.log(100 * "test"); //结果为 NaN console.log(100 * "10"); //结果为 1000 console.log(100 / "test"); //结果为 NaN console.log(100 / "10"); //结果为 10 由此可以得到:加法运算时,无论字符串是什么都会进行拼接;而减法、除法、乘法则会尽力转换字符串为number类型,如果无法转换结果为NaN,否则返回运算结果。 取余运算 当左边的操作数位正数时,那么结果也为整 ...












