笔记
Let me shine
这个作者很懒,什么都没留下…
展开
-
canvas原生JavaScript实现刮刮乐
原理鼠标按住移动的时候,实现刮刮乐的效果,那就是鼠标按下的同时鼠标移动,那就清除画布。松开鼠标,鼠标移动不再清除画布了,那就得清除事件。canvas画布获取画布元素var canvas = document.getElementById('canvas');获取绘图对象getContextvar ctx = canvas.getContext('2d');画线ctx.lineWidth = 3;//线宽ctx.strokeStyle = 'red';//线条颜色//开始的原创 2020-09-28 11:04:16 · 449 阅读 · 0 评论 -
原生JavaScript实现拖动校验
滑动验证思路思路页面布局采用定位,背景颜色变化bg的宽度为0,其宽度会随着滑块的移动而移动。页面结构<!--验证--><div class="box"> <!--滑块--> <div class="btn"></div> <!--文字--> <p class="text">请滑动滑块</p> <!--背景--> <div class=原创 2020-09-28 09:38:33 · 323 阅读 · 0 评论 -
JavaScript正则表达式
正则表达式定义字面量var r1 = /foo*/构造函数var r2 = new RegExp(‘foo*’)test();//方法可以正确的匹配r2.test(‘foo7878’);//true正则表达式的规则/foo/;//表示是输入的内容有foo,那么就都能匹配/\bfoo\B/;// 只匹配foo,\b表示字符的边界不能拥有字符,但是空格是可以的。\B表示字符边界必须有字符值,空格不算/\d\D/;//\d必须是纯数字。\D匹配的是非数字字符/\w\W/;//\w数字字母下原创 2020-09-26 20:32:13 · 145 阅读 · 0 评论 -
3.3ES5作用域
ES5作用域靠function分割。没有块级作用域。全局作用域和局部作用域同名,使用就近原则(优先用的是局部作用域的),该预解析就解析。var a = 10;function f1(){ var b=2*a; var a = 20; var c = a+1; console.log(b); console.log(c); //解析过程 var b; var a; var c; b = 2*a; a = 20;原创 2020-09-25 20:53:41 · 192 阅读 · 0 评论 -
3.2预解析
ES5预解析把函数或者变量预先解析到他们被使用的环境中function --> function(){} 赋值的是整个函数块var --> undefined解析过程,变量和函数同名,优先留下函数的值(函数的优先级更高)console.log(a);//undefinedvar a = 1;// 解析过程var a;console.log(a);//undefineda = 1;console.log(a,b,c,d,e);var a = 10;var b;.原创 2020-09-25 20:47:39 · 142 阅读 · 0 评论 -
3.1拷贝
深拷贝封装深拷贝针对多级assign合并对象,也只是浅拷贝var a = { id:1, name: 'a', obj: { id: 999 }}function fun(obj) { var o = {}; Object.assign(o, obj); return o;}var a2 = fun(a);//赋值的新对象a2.name = 'a2';a2.obj.id = 888;console.log(a);原创 2020-09-25 20:43:53 · 105 阅读 · 0 评论 -
2.对象属性查询,对象方法,深浅拷贝的理解
数组定义构造函数var arr = new Array();//使用构造函数定义,只有一个参数的时候,表示数组的长度,多个参数表示数组元素字面量var arr1 = [];//字面量遍历数组forfor(var i=0;i<arr.length;i++){ arr[i]}forEach,没有终止,没有返回值arr.forEach((item,index)=>{ item//是数组的元素 index//数组下标 return//。没有用})原创 2020-09-25 19:08:49 · 221 阅读 · 0 评论