![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript学习笔记
文章平均质量分 58
MatthewMaYao
剑未佩妥,出门已是江湖。
展开
-
面向过程与面向对象比较之tab选项卡切换
<body> <div id="div"> <input type="button" value="选项卡1" name=""> <input type="button" value="选项卡2" name=""> <input type="button" value="选项卡3" name=""> <div>111</div>原创 2017-02-16 13:31:33 · 388 阅读 · 0 评论 -
Object.defineProperty的双向绑定机制
一、深拷贝一个简单的实现let newObj = JSON.parse(JSON.stringify(obj))二、Object.defineProperty官方文档三、发布者/订阅者模式四、双向绑定一个简单的实现 <div id="txt"></div> <script> let obj = { a: '123' }原创 2018-05-04 17:14:59 · 261 阅读 · 0 评论 -
reduce实现排列组合
之前需求需要排列组合,然后参考这个链接后,发现了用js的高阶函数reduce去解决不定长二维数组的排列组合问题;var data = { color: ['color1', 'color2', 'color3'], size: ['size1', 'size2', 'size3'], style: ['style1', 'style2', 'style3']}Object.values原创 2018-05-04 17:13:48 · 672 阅读 · 0 评论 -
Vue组件通信、双向绑定
一、组件之间的通信父组件向子组件传递propsthis.$parents 应急方法(包括$children)子组件向父组件传递$emit和$on 自定义事件<div id="message-event-example" class="demo"> <p v-for="msg in messages">{{ msg }}</p> <button-message v-on:mess原创 2018-05-04 17:13:12 · 243 阅读 · 0 评论 -
Javascript Date对象
前言任何语言的Date类型都有自己的一套实现方法,JS中内置引用类型Date类型,特点很多,可以做一个记录。继承Date参考这个//参考实现// 需要考虑polyfill情况 Object.setPrototypeOf = Object.setPrototypeOf || function (obj, proto) { obj.__proto__ =原创 2018-05-04 17:11:59 · 121 阅读 · 0 评论 -
JS在函数中形参和局部变量同名的问题
前言上次牛客网做到这样一个题,非常有意思,陷阱非常多,当时觉得搞明白了,现在再看到,又糊涂了,发现了新的点,看一下:var foo={n:1};(function (foo) { console.log(foo.n); foo.n = 3; var foo = {n:2}; console.log(foo.n);})(foo);console.log(foo.n原创 2018-05-04 17:05:15 · 3216 阅读 · 2 评论 -
JS回调函数中无法改变外部变量的问题
今天又遇到了上次的问题,上次只是找了个方法解决,没有搞清楚原理;router.get('/', function (req, res, next) { var abc; Article.findArticle({}, function (err, res) { if (err) { console.log(err); } else原创 2017-09-10 11:04:20 · 7331 阅读 · 0 评论 -
原生JS实现图片懒加载
最近接的项目终于接近尾声,这段时间一直没有造轮子,在实现设计图还原的途中,发现还是有一些技术需要掌握,难者不会,会者不难,没有实际操作过的东西在项目中毫无头绪,而懒加载在实际开发中是一个很有效的东西,在页面中我们往往需要放上很多张图,性能是个大问题,一次性加载所有图片一般都会卡很久,因此,在需要预览的时候再加载,是一个很好的解决方案。 参考了https://www.denpe.com/javasc原创 2017-05-20 10:15:49 · 464 阅读 · 0 评论 -
Express+MongoDB+Robomongo环境配置
最近需要学一门后台技术,听说Node可以作为服务器端语言,于是乎~ 然而,配置环境是我最讨厌的事,不过,环境搭好才能写代码。 下面讲讲如何在windows服务器上配置express+mongodb环境; 工具: node-v6.10.0-x64.msi mongodb-win32-x86_64-2008plus-ssl-3.4.2-signed.msi robomongo-1.0.0-r原创 2017-03-17 13:19:28 · 931 阅读 · 0 评论 -
MongoDB变量如何传参给查询条件
最近需要在express中使用AJAX,通过AJAX给数据库更新用户表,但是用户数据很多,所以需要把查询条件写成动态的,即通过变量给mongodb中的update传参; 首先我们先来看看mongodb中update如何使用:db.collection.update( <query>, <update>, { upsert: <boolean>, multi:原创 2017-03-26 21:40:00 · 4827 阅读 · 0 评论 -
JS构造函数创建对象时的传参问题
当对象属性为字符串时function User(obj){ this.name = obj.name; this.password = obj.password;}var user = new User({ name:"name", password:"password"});window.onload = function(){ co原创 2017-03-09 20:35:15 · 4923 阅读 · 0 评论 -
JS图片类之苹果导航效果
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title></title></head><style type="text/css"> img{ /*border:1px solid #000;*/ margin: 0; padding: 0 }原创 2017-02-23 15:37:56 · 285 阅读 · 0 评论 -
Node.js 关于HTML文档中的req.url理解
index.jsvar http = require('http'),fs = require('fs');var server = http.createServer(function(req,res){ if(req.method == 'GET' && req.url.substr(0,7) == '/images' && req.url.substr(-4) == '.jpg')原创 2017-02-26 21:27:10 · 1252 阅读 · 0 评论 -
javaScript正则表达式
var pattern1 = /[abc]/gi;var pattern2 = new RegExp("[abc]","gi");//创建正则表达式的两种方法在//里写规则,在第二个/后加上标志: g:global,全局,应用于所有字符串; i:ignore,不区分大小写; m:multiline,多行模式;在//里,元字符必须转义,包括 ( ) [ ] { } \ ^ $ | ?原创 2017-02-19 20:18:04 · 262 阅读 · 0 评论 -
jQuery语法和常用函数总结
jQ对象是对DOM对象进行包装后产生的对象,DOM对象和jQ对象中的方法和属性不可互用 jQuery对象与DOM对象可相互转换,因此,可约定好定义变量的风格; var $variable = jQ对象; var variable = DOM对象; 相互转换://jQ对象转DOM对象var variable = $variable[0];//数组方法var variable = $vari原创 2017-02-16 13:29:45 · 378 阅读 · 0 评论 -
Javascript对象与继承
标识符指变量,函数,属性的名字,或者函数的参数; 对象是引用类型的值,是引用类型的一个实例;引用类型是一种数据结构; 所有引用类型默认都继承自Object类型,所有对象都继承自Object(JS高程);创建对象的方式1.工厂模式原理:在普通函数中创建一个对象,通过函数传参至对象内,返回对象;调用函数即可返回一个对象; 缺点:没有对象识别,及没有对象类型; 例子://1.工厂模式functi原创 2017-02-16 13:31:06 · 202 阅读 · 0 评论 -
C(m,n)算法
最近需求,要写排列组合算法,首先第一步是m个元素中选n个元素进行组合,也就是数学中C(m,n);方法有多种。递归let arr = [1,2,3]function combination(arr, nLen, m, singleArr, list) { if (m === 0) { let arrCopy = [] for (let j = 0; j < s原创 2018-05-04 17:15:44 · 3487 阅读 · 0 评论