使用 canvas+JS绘制钟表
效果图如下:
附上代码:
1 |
|
效果图如下:
附上代码:
1 |
|
var color = [“red”, “green”, “blue”];
(1) if (color instanceof Array) {}
(2) if (Array.isArray(value)) {}
var color = [“red”, “green”, “blue”];
(1) toString()/toLocalString() ,把数组转化为字符串
color.toString() // “red,green,blue”
(2) valueOf()还是返回数组
## 操作数组的方法
反转数组 reverse()
排序 sort() (会先调用toString,再将得到的字符串排序)
(1) concat() 连接数组 array1.concat(array2,”2”,”4”) 原数组不变
(2) slice(x1); // 返回从x1位置开始到末尾的一个新数组 原数组不变
slice(x1, x2); // 返回从x1位置开始到x2位置(不包含x2)的一个新数组
var color1 = [“red”, “green”, “blue”, “white”];
var color2 = color1.slice(1,3); // [“red”, “white”]
(3) splice(x1, n); // 要删除的第一项的位置x1,要删除的项数n,返回被删除的项
var color1 = [“red”, “green”, “blue”, “white”];
var removed = color1.splice(1,2,”aa”,”bb”);
// removed是 [“green”, “blue”]
// color1是 [“red”, “aa”, “bb”, “white”];
(1) indexOf() 返回查找到的位置,没找到返回-1
(2) lastIndexOf()
var numbers = [1,2,3,4,5,4,3,2,1];
numbers.indexOf(4); // 3 从前往后查找
numbers.lastIndexOf(4); // 5 从后往前查找
every() 对数组每一项运行给定函数,该函数每一项返回true则返回true
some() 对数组每一项运行给定函数,该函数任一项返回true则返回true
filter() 对数组每一项运行给定函数,返回该函数会返回true的项组成的数组
map() 对数组每一项运行给定函数,返回每次函数调用结果组成的数组
forEach() 对数组每一项运行给定函数,没有返回值
reduce() 前向后 和 reduceRight() 后向前
IE和其他浏览器在一些方法上存在差异:
1.获取事件,IE通过window.event
2.获取触发事件的节点 W3C标准: e.target
IE: e.srcElement;
3.阻止冒泡 W3C标准:stopPropagation()
IE中: cancelBubble = true;
4.阻止默认操作 W3C标准: preventDefault()
IE中: returnValue = false;
5.事件监听 W3C标准: document.addEventListener(‘click’, func, false)
IE中: document.attachEvent(‘click’, func)
1 | <!DOCTYPE html> |
运行效果(每点击一次值加1)
1.var: 没用块级作用域,变量声明提升(可以先使用再声明变量),未用var声明的变量会被添加一个全局作用域,而用var声明的变量作用域是当前上下文。
2.const:const用来声明常量,一旦声明,其值就不能改变,所以用const声明变量时必须立即初始化。
const声明的常量具有块级作用域,不允许重复声明常量,不存在常量提升。
1 | const PI = 3.14; |
3.let: let声明的变量也具有块级作用域,不允许重复声明变量,不存在变量提升。
1 | { |
1.二进制和八进制分别用前缀0b(或0B)和0o(或0O)表示
2.ES6在Number对象上提供了Number.isFinite()和Number.isNaN()方法,用来检查Infinite和NaN这两个特殊值。
Number.isFinite()和Number.isNaN()这两个新方法和传统的全局方法isFinite()和isNaN()的区别:
传统方法先调用Number()将非数值转化为数值再进行判断,而新方法只对数值有效,对非数值一律返回false。
3.Number.isInteger()用来判断一个值是否为整数。
1 | 注意: 在JavaScript内部,整数和浮点数是同样的储存方法,3.0和3视为同一个值 |
4.安全整数和Number.isSafeInteger()
安全整数范围:-2^{53}——2^{53}(不含两个端点)
5.Math对象的扩展
Math.trunc()用于去除一个数的小数部分,返回整数部分
1 | Math.trunc(5.8) // 5 |
Math.sign()用于判断一个数是正数、复数、零
1 | 正数 返回+1 |
Math.cbrt()计算一个数的立方根
Math.clz32()返回一个数的32位无符号整数形式有多少个前导0
Math.imul()返回两个数以32位带符号整数相乘的结果,结果也为32位带符号整数
Math.fround()返回一个数的单精度浮点数形式
Math.hypot()返回所有参数的平方和的平方根
1 | var f = v => v; |
找到要上传项目的根目录,右击git bush进入git命令行
输入git init , 目录下会产生.git的隐藏项目
输入git add . 命令(注意add与 . 之间有空格)
. 是指添加到该目录下的所有文件,也可以添加特定文件
提交到本地仓库 git commit -m “description for this commit”
上传代码 git remote add origin https://github.com/用户名/项目名.git (可以去github网站复制该项目的远程仓库地址)
git pull origin master 把远程服务器github上的文件拉开
git push origin master 把项目上传到远程仓库