佳宸学习和分享笔记的地方

0%

canvas

基础方法

绘制弧/曲线

arc() 方法创建弧/曲线(用于创建圆或部分圆)。

1
context.arc(x,y,r,sAngle,eAngle,counterclockwise);
阅读全文 »

随机数组

Shuffle an Array

打乱一个没有重复元素的数组。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
// 以数字集合 1, 2 和 3 初始化数组。
int[] nums = {1,2,3};
Solution solution = new Solution(nums);

// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。
solution.shuffle();

// 重设数组到它的初始状态[1,2,3]。
solution.reset();

// 随机返回数组[1,2,3]打乱后的结果。
solution.shuffle();
阅读全文 »

爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

阅读全文 »

方法

方法描述
RegExp.prototype.exec一个在字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回 null)。
RegExp.prototype.test一个在字符串中测试是否匹配的RegExp方法,它返回 true 或 false
String.prototype.match一个在字符串中执行查找匹配的String方法,它返回一个数组,在未匹配到时会返回 null。
String.prototype.matchAll一个在字符串中执行查找所有匹配的String方法,它返回一个迭代器(iterator)。
String.prototype.search一个在字符串中测试匹配的String方法,它返回匹配到的位置索引,或者在失败时返回-1。
String.prototype.replace一个在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串。
String.prototype.split一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的 String 方法。
阅读全文 »

网络基础

UDP

UDP 协议是面向无连接的,正式传递数据之前不需要先连接起双方(不可靠性)。不会对数据报文进行任何拆分和拼接操作(高效)。

阅读全文 »

leetcode树 算法基础

二叉树的最大深度

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

阅读全文 »

基础排序算法JS实现

冒泡排序

前一个元素大于后一个元素就交换位置,最大的值会冒泡到最后,重复循环,每趟过后,比较的次数都要减1

阅读全文 »

位运算

左移 <<

1
10 << 1 // -> 20

左移就是将二进制全部往左移动,10 在二进制中表示为 1010 ,左移一位后变成 10100 ,转换为十进制也就是 20,所以基本可以把左移看成以下公式 a * (2 ^ b)

阅读全文 »

JS的类型转换

除去 Object 和 Symbol,有如下几种原始类型:

  • Number
  • String
  • Boolean
  • Undefined
  • Null
阅读全文 »

浏览器跨域问题

处于安全考虑 如果协议、域名或者端口有一个不同就是跨域,Ajax 请求会失败。

jsonp

利用<script>标签没有 跨域限制指向一个需要访问的地址并提供一个回调函数来接收数据。只限于 get 请求。

阅读全文 »