javascript
benben0729
职业为猿的汪,爱好象、鼠、蛇、蛙
展开
-
javascript之offsetHeight/offsetWidth
element.offsetHeight(element.offsetWidth) 是一个只读属性,它返回了该元素的像素高度,包含了边框和内边距(垂直方向),并且返回的是一个整数。如果存在且渲染的话,不包含:before或:after等伪类元素的高度。<!DOCTYPE html><html><head> <title></title>&...原创 2018-07-09 16:16:52 · 406 阅读 · 0 评论 -
javascript 闭包经典问题
//闭包function fun(n,o) { console.log(o) return { fun:function(m){ return fun(m,n); } };}var a = fun(0); a.fun(1); a.fun(2); a.fun(3);//undefined,?,?,?var b = fun(0).fun(1)....原创 2018-10-10 17:48:05 · 120 阅读 · 0 评论 -
javascript 跨域请求
post方法一服务端header('Access-Control-Allow-Origin:*');$data = json_encode(array("id" => "1", "name" => "tom"));echo $data;前端$.ajax({ type: "POST", url: "http://127.0.0.1/~che原创 2018-10-28 15:36:00 · 103 阅读 · 0 评论 -
javascript经典闭包问题
//闭包function fun(n,o) { console.log(o) return { fun:function(m){ return fun(m,n); } };}var a = fun(0); a.fun(1); a.fun(2); a.fun(3);//undefined,?,?,?var b = fun(0).fun(1).f...原创 2018-10-28 15:37:12 · 196 阅读 · 0 评论 -
Cryptojs-加密算法
摘要算法MD5/HmacMD5用框架内置的MD5同样的结果。CryptoJS.require.MD5();console.log(CryptoJS.MD5("anlige"), true);console.log(CryptoJS.HmacMD5("anlige", "lilith"), true);SHA1/HmacSHA1用框架内置的SHA1同样的结果。CryptoJS.re...原创 2018-10-28 15:38:47 · 666 阅读 · 0 评论 -
cryptoJS 安装与使用
在线文档https://github.com/brix/crypto-js/blob/master/docs/QuickStartGuide.wiki#AES安装npm install crypto-js#安装之后看到node_modules目录直接放到public目录下使用#主要引入以下这个文件crypto-js/crypto-js.js示例#js端function ...原创 2018-10-28 15:40:39 · 43981 阅读 · 0 评论 -
javascript 常用小技巧
注意第一行总是写上’use strict’;是因为我们总是以严格模式运行JavaScript代码,避免各种潜在陷阱。'use strict';console.log('Hello, world.');对象和字符串的转换var obj = {a: 'aaa', b: 'bbb'};var objStr = JSON.stringify(obj); // &quot;{&quot;a&quot;:&quot;aaa&原创 2018-11-12 13:08:53 · 168 阅读 · 0 评论 -
javascript innerHTML与innertext与value区别
innerHTML:innerHTML&nbsp;浏览器会将inneHTML后面的内容作为html来解析。document.getElementById("myspan").innerHTML="&lt;a&nbsp;href='http://www.sina.com'&gt;到新浪&lt;/a&gt;&nbsp;"原创 2018-10-28 15:31:53 · 497 阅读 · 0 评论 -
export、import、export default区别
export用于对外输出本模块(一个文件可以理解为一个模块)变量的接口import用于在一个模块中加载另一个含有export接口的模块使用范围require: node 和 es6 都支持的引入export / import : 只有es6 支持的导出引入module.exports / exports: 只有 node 支持的导出export & import// d...原创 2018-11-12 13:15:33 · 157 阅读 · 0 评论 -
javascript 变量提升
javascript是一种弱类型、动态的、解释性的脚本语言例1:<script type="text/javascript"> console.log(a);//输出结果 undefined var a=10;</script>#以上代码输出 undefined #原因: 变量提升(把变量声明提升到当前执行环境的最顶端) #上段代码相当于...原创 2018-11-27 09:17:16 · 128 阅读 · 0 评论 -
javascript 原生ajax,jsonp的实现
原文地址http://ghmagical.com/article/page/id/AASiankfBJWpajaxAJAX的核心是XMLHttpRequest。一个完整的AJAX请求一般包括以下步骤:实例化XMLHttpRequest对象连接服务器发送请求接收响应数据我将AJAX请求封装成ajax()方法,它接受一个配置对象params。function ajax(param...原创 2018-11-27 09:19:57 · 430 阅读 · 0 评论 -
js、css外部文件的相对路径问题
如果js、css外部文件有使用到相对路径时,需要注意其相对路径的基准是不一样的。比如说,在index.html中引用到了外部的js和css文件,这两个文件都通过相对路径引用了某一张图片;这些文件所在的目录如下:.├── js| └── index.js├── css| └── index.css├── images| └── bg.jpg└── index.html...原创 2019-01-31 12:57:39 · 218 阅读 · 0 评论 -
javascript Date与string之间的转换
date to stringlet s = new Date().toLocaleDateString(); console/log(s)//2017/4/15string to datevar date = new Date("2018-9-21 14:58:43");//就是这么简单原创 2019-02-01 17:25:32 · 4589 阅读 · 0 评论 -
javascript 正则表达式
实例属性pattern = /abc/igm;名称描述pattern.ignoreCase返回一个布尔值,表示设置了修饰符pattern.global返回一个布尔值,表示是否设置了g修饰符pattern.multiline返回一个布尔值,表示是否设置了m修饰符pattern.lastIndex返回一个数值,表示下一次开始搜索的位置patter...原创 2019-01-30 14:34:59 · 120 阅读 · 0 评论 -
彻底理解promise
原文:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014345008539155e93fc16046d4bb7854943814c4f9dc2000在JavaScript的世界中,所有代码都是单线程执行的。由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器...转载 2019-02-15 09:14:24 · 292 阅读 · 0 评论 -
javascript 模仿块级元素
在javascript中是没有块级元素的比如for(var i=0;i<10<;i++){ }alert(i);在其他语言中,for循环之外是不能再访问i元素的,这就是块级元素决定的,而js中没有块级元素,仍然可以访问i元素模仿块级元素(function(){ //块级元素部分})()用圆括号将匿名函数括起来表示这是一个表达式,而紧跟圆括...原创 2018-09-28 19:24:23 · 217 阅读 · 0 评论 -
事件对象和target事件属性
事件对象什么是事件对象呢?当我们触发一个事件时,便会产生一个事件对象,这个对象中包含着这个事件的相关信息,包括导致事件的元素、事件的类型、以及其它与特定事件相关的信息等。这个对象是在执行事件时,浏览器通过函数传递过来的。input.onclick = function (evt) { //接受 event 对象,名称不一定非要 event alert(evt); //MouseEvent,...原创 2018-07-09 16:34:23 · 1735 阅读 · 0 评论 -
javascript常用函数
eval():计算表达式的结果Boolean():强制转换成布尔值String():强制转换成字符型Number():强制转换数值型typeof():判断变量数据类型setTimeout(code,delay):延时器。Delay毫秒之后执行一次codeclearTimeout(timer):清除延时器。Timer是设置延时器的返回值setInterval(code,delay):定时器。每隔de...原创 2018-07-13 11:28:11 · 161 阅读 · 0 评论 -
js中遍历数组对象的几种方式
第一种:最直接明了的方法for(var i=0;i<arr.length;i++) //TODO Something第二种:使用for...infor (var item in arr) //TODO Something第三种: 使用for ...of 这个需要ES6支持for (let item of arr) //TODO Something...原创 2018-07-07 10:06:05 · 17643 阅读 · 0 评论 -
javascript事件
Js事件: onload:当网页加载完成时,只能给<body>用 onclick:当点击时,所有标记都适用。 onscroll:当拖动滚动条时。 onmouseover:当鼠标放上时。 onmouseot:当鼠标移开时。 onsubmit:当提交表单时。 onreset:当重置表单时 onfocus:当获得焦点时,把光标定位到文本框中(主要用于表单验证)...原创 2018-07-29 15:25:22 · 184 阅读 · 0 评论 -
javascript页面跳转,location.href与window.open()
在js中我们经常会遇到页面跳转的问题我们最常用的方法就是window.location.href=url;或者window.open(url);使用window.location.href跳转是重定向到新页面而使用window.open(url)相当于打开一个新的页面,当然我们也可以给第二个参数使得不打开新的页面window.open(url,'_top');通过设置_top在本页面打...原创 2018-08-09 14:21:51 · 6347 阅读 · 0 评论 -
彻底理解javascript的回调函数(推荐)
在javascript中回调函数非常重要,它们几乎无处不在。像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply()函数的,或者有一些简短的关于callback的使用示例。 函数也是对象 想弄明白回调函数,首先的清楚地明白函数的规则。在javascript中,函数是比较奇怪的,但它确确实实是对象。确切地...转载 2018-08-08 18:21:16 · 275 阅读 · 0 评论 -
JS中的call()方法和apply()方法用法总结
最近又遇到了JacvaScript中的call()方法和apply()方法,而在某些时候这两个方法还确实是十分重要的,那么就让我总结这两个方法的使用和区别吧。1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法。2. 相同点:这两个方法的作用是一样的。都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。一般来说,th...转载 2018-08-08 18:26:53 · 82 阅读 · 0 评论 -
事件冒泡总结
事件冒泡IE 的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。以下面的HTML 页面为例:<!DOCTYPE html><html><head><title>Event Bubbling Example</...原创 2018-09-02 22:05:07 · 126 阅读 · 0 评论 -
事件捕获总结
来源js高级程序设计事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。事件捕获的用意在于在事件到达预定目标之前捕获它。如果仍以前面的HTML 页面作为演示事件捕获的例子,那么单击<div>元素就会以下列顺序触发click 事件。(1) document(2) <html>(3) <body>(4) <d...原创 2018-09-02 22:07:39 · 117 阅读 · 0 评论 -
事件委托
在学习事件委托时,一定要先弄明白事件冒泡和事件捕获的含义对“事件处理程序过多”问题的解决方案就是事件委托。事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。例如,click 事件会一直冒泡到document 层次。也就是说,我们可以为整个页面指定一个onclick 事件处理程序,而不必给每个可单击的元素分别添加事件处理程序。以下面的HTML 代码为例。...转载 2018-09-02 22:09:30 · 510 阅读 · 0 评论 -
javascript 原型链的理解
在js中一切皆对象 对象都有一个prototype的属性,但是这个属性是对象的一个内部属性,不能从外部访问,所以就增加了一个访问器__proto__用来指向原对象的prototype属性#通过代码来理解var p = new Person('张三',20);#var p = {}首先创建一个对象#p.__proto__=Person.prototype,将p对象的__proto__设置...原创 2018-09-02 22:10:53 · 86 阅读 · 0 评论 -
DOM对象 target属性
target属性返回的是事件的目标节点结合事件捕获去理解事件捕获我们知道是document -》 <html> -》<body> -》<div>这么顺序捕获的<ul><li>go beijing</li><li>go shanghai</li><l原创 2018-09-02 22:28:32 · 827 阅读 · 0 评论 -
JavaScript中 with的用法
with的基本用法with 语句的原本用意是为逐级的对象访问提供命名空间式的速写方式. 也就是在指定的代码区域, 直接通过节点名称调用对象。 with 通常被当做重复引用同一个对象中的多个属性的快捷方式,可以不需要重复引用对象本身。 比如,目前现在有一个这样的对象:var obj = { a: 1, b: 2, c: 3};如果想要改变 obj 中每一...转载 2018-09-03 10:59:32 · 150 阅读 · 0 评论 -
javascript 遍历数组对象
数组对象var arr = ["value1","value2","value3"];var obj = { aa:"value1", bb:"value2", cc:function(){ console.log("value3") }}原生方法//for in 遍历数组for(var i;i<arr.l原创 2018-10-02 10:37:05 · 422 阅读 · 0 评论 -
为对象添加方法
理解了对象,其实很简单下面通过一个示例来简单描述需求为数组对象添加一个方法console(),arr.console()打印出数组Array.prototype.console = function(){ console.log(this);}var a = [1,2,3,4,5];a.console();#结果: (5) [1, 2, 3, 4, 5]...原创 2019-02-20 17:03:43 · 669 阅读 · 0 评论