自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 带你了解JavaScript的运行机制——Event Loop

1.js是单线程的。首先,众所周知,js是单线程的,为什么这种低效的运行方式依旧没有被淘汰那?这是由它的用途决定的;js主要用途是用户交互和DOM操作,举例来说假如js同时有两线程,一个线程在某个DOM节点上添加内容,另一个线程却删除了这个节点,这时候浏览器就不知所措了,该以哪个线程为标准那?(为了提高运行性能,新的html5里添加了web worker,其能在主线程内添加子线程,但是限制了其无...

2018-11-26 10:09:37 209

原创 获取dom元素的样式 style defaultView.getComputedStyle

当你想要获取某一dom元素的css样式时,直接想到的就是获取其style属性document.getElementById('div').style但是实际上并不如你所愿,style属性里的各个值大部分都是空的。因为往往样式都是通过css生成的。Jquery里有.css('color')的方法,它其实就是通过原生的 getComputedStyle 来实现的。以下是实现方式:...

2018-05-01 12:52:02 478 1

原创 数字转千分位 js 保留小数位

保留原有形式,有小数点的保留小数位,整型的依然返回整型(String)formatData(num) { num = num + ''; if (!num.includes('.')) { num += '.' } return num.replace(/(\d)(?=(\d{3})+\.)/g, function($0, $1) { retu

2018-04-30 11:58:14 4243

原创 阿拉伯数字转中文 精确到 万

function numToChinese(num){ num += "";//转为字符串; let chinese=""; const bigNum = "零一二三四五六七八九"; const Unit = ["","十","百","千","万"]; num = num.split("").reverse(); num.forEach((val, index) => { chin

2018-01-23 17:43:49 233

原创 原生js 对象属性监听,对象重写,defineProperty getter setter

const param = { name: "bottle", age: 23}for(let item in param){ let val = param[item]; if(param.hasOwnProperty(item)){//判断是否为自有属性 Object.defineProperty(param, item, {//属性重写(或者添加属性) get(){

2018-01-23 09:52:10 1047

原创 函数节流(throttle)与函数去抖(debounce)

debounce:把触发非常频繁的事件合并成一次执行 throttle:设置一个阀值,在阀值内,把触发的事件合并成一次执行;当到达阀值,必定执行一次事件

2017-09-25 19:12:06 262

原创 JQuery.extend深度讲解,浅谈Object.create

1. $.extend 简单来说就是 实现单个对象的复制或者多个对象的合并对象的复制就对象复制的问题,初学者一般会直接: var newObj = originObj; 这肯定是不对的,你会发现当你改变newObj的时候,originObj也随之改变了。因为newObj只是一个指向originObj的地址。 然后比较复杂的方法就是遍历originObj一个个对newObj赋值,垃圾方法!

2017-05-05 16:29:42 567

原创 Promise重写confirm,alert弹出框 .then()

之前用回调函数写过 confirm,alert弹出框:http://blog.csdn.net/qq_33619285/article/details/56052011 刚刚了解了promise,所以尝试着重写一下,用promise代替回调函数所有代码,可以运行:<!DOCTYPE html><html> <head> <meta charset="UTF-8">

2017-04-17 15:31:29 4175

原创 insertAdjacentHTML 与 insertAdjacentText

插入HTML内容与文本内容,功能上与innerHTML和innerTEXT相同。 insertAdjacentHTML 与 insertAdjacentText的用法完全相同,不同之处就是 insertAdjacentText插入的是单纯的文本信息 用法:element.insertAdjacentHTML(position, String);参数position的取值:beforeBegin

2017-04-17 15:05:42 277

原创 js箭头函数 => arrow

//单参数返回后面的表达式x => x*x;//相当于function(x){ return x*x;}//省略了return和{...}//多参数,返回后面的表达式(x,y) => x*y;//相当于function(x,y){ return x*y;}//无参数,() =>{ console.log("no_param_function") };//相当于

2017-04-14 10:54:42 639

原创 js判断类型 是否是数组Array

var a = { "name":'suonidfahao', "job": 'webEnginner',} var b = [1,2,4,4];console.log(a instanceof Array); //falseconsole.log(b instanceof Array); //true

2017-04-12 16:49:12 2534

原创 js中的instanceof 和 typeof

var Cat = function(){ this.name = "maomi"; this.callName = function(){ console.log(this.name); } } var cat1 = new Cat(); console.log(cat1 instanceof Cat);//true

2017-04-12 14:32:52 408

原创 get set操作对象属性(getter,setter)js

getget动态改变对象中所绑定的属性值:var arrayTest = ["test","job"]; var obj = { get a(){ if (arrayT

2017-03-03 14:09:12 1532

原创 const, let和var的作用域及闭包

let let定义的变量作用域是 声明它的块: 如上面的 for、if、function都作为一个块:

2017-03-01 10:08:46 456

原创 argument,callee,caller及callee的用法

function funcArg(a, b) { console.log(funcArg.caller); console.log(arguments.callee); console.log(arguments);}function execArg() { funcArg(10, 23);}execArg();//callee能够打印其本身function c

2017-02-20 23:11:56 460

转载 js获取textarea或者input光标位置,控制光标位置

<head> <meta charset="UTF-8"> <title></title></head><body> <textarea name="text" rows="12" cols="28" id="select"></textarea> <!--<input type="text" name="select" id="select" />-->

2017-02-20 23:09:37 2702

原创 DOMMouseScroll,onmousewheel 鼠标滚动事件js

document.body.onmousewheel = function() { console.log(event.wheelDelta); //向上滚动为120,向下是-120 };

2017-02-20 23:07:35 362

原创 alert,confirm弹出框重写

function ReAlert(title, content, Func) { $('#alertModal').modal('show'); $('#alertModal .sureBtn').off('click').click(function() { Func(content); }) };

2017-02-20 23:04:12 2155

原创 ajax上传form表单(type='file')FormData

以上是一般形式,用的比较多。但是当我们遇到input[type=”file”]时就不知道要如何向后台传输数据了,”.val()”肯定是不行的,所以就讲到FormData这个构造函数:除此之外,你还可以借助FormdData的append()方法来给data添加一些额外的数据:form.append("slogan","suonidafahao!");

2017-02-20 22:32:46 1353

原创 IndexedDB:html5本地数据库存储

html5新增的本地存储数据库 IndexDB,相比cookie和WebStorage更加强大,本文介绍简单的增删改查。demo执行前: var request = indexedDB.open('dataBase', 1);//打开/创建一个数据库,名为student,版本为1. //indexedDB.deleteDatabase('class');//删除名为class的数据库

2017-02-04 15:33:28 623

原创 nodeJs链接Mysql,做增删改查

nodejs连接Mysql,首先安装了mysql之后,在cmd界面安装nodeJs的mysql模块: npm install mysql mysql中创建数据库“nodetry1”,再创建表table2: 指定id为主键: var mysql = require('mysql');//选择数据库和表var TEST_DATABASE = 'nodetry1';var TEST_TAB

2017-02-04 10:28:29 415 1

原创 js模块化编码

var modula1 = (function(){var a = "innerParam";//内置参数,外部读取不到function f1(x){x += '内置函数,外部不可调用';console.log(x);};var f2 = function(){f1(a);console.log("返回这个函数")};var f3 = function(){

2017-02-03 10:05:38 235

转载 js new操作符

>  html>  head>  meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  title>Insert title heretitle>  head>  body>  script type="text/javascript">  /*没有返回值  function Te

2017-02-03 09:43:35 188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除