var方法

JS获取地址栏参数的方法

廉价感情. 提交于 2020-01-27 02:29:34
// 用正则表达式获取地址栏参数 function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null) { return unescape(r[2]); } else { return null; } } // 调用 alert(GetQueryString("name1")); alert(GetQueryString("name2")); 来源: https://www.cnblogs.com/zengjin93/p/5569519.html

ES6的一些基本用法

帅比萌擦擦* 提交于 2020-01-26 12:12:45
● let ● variable hoisting ● arrow Function, Lambda表达式 ● Destructuring Assignments 解构赋值 ● 默认参数值 Default Parameters ● 可变参数 ● 解构参数 ● 解构数组 ● 解构对象 ● 遍历 ● Generators ● String Templates ● 快速创建对象 ● 只读变量 ● Sets ● Maps ● Symbols ● WeakMaps ● Promises ● 创建类 ● Modules ● 内置函数 let 使用let声明的变量只在语句块内有效。 "use strict"; function blockBindingDemo(){ let a = 123; var b = 123; if(true){ let a = 456; b = 456; console.log("使用let语句块中的a为" +a);//456 console.log("使用var语句块中的b为" +b) } console.log("使用let语句块外的a为" +a);//123 console.log("使用var语句块外的b为" +b);//456 } blockBindingDemo(); 以上,以let方式声明的变量只在语句块内有效,而以var方式的变量是一个全局变量。

js 自带的 map() 方法

不想你离开。 提交于 2020-01-26 09:21:34
就是调用对象是一个Array,对Array类型增加了一个原型写法的函数,一般写一些扩展时经常用。比如判断一个元素是否在数组中之类的 Array.prototype.inArray= function (value){ for ( var i=0;i< this .length;i++){ if ( this [i] == value){ return true ; } } return false }; var arr=[ "1" , "2" , "3" ]; //以下同调用方式,在inArray函数中,使用this即可得到arr arr.inArray( "1" ); Array.prototype.inArray= function (value){ for ( var i=0;i< this .length;i++){ if ( this [i] == value){ return true ; } } return false }; var arr=[ "1" , "2" , "3" ]; //以下同调用方式,在inArray函数中,使用this即可得到arr arr.inArray( "1" ); js数组去重的三种常用方法总结 第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3

ES6 数组的方法 some ( )、every ( ) ,js 实现全选功能

烂漫一生 提交于 2020-01-26 04:26:22
some ( ) 遍历数组,查找是否有满足条件(返回的结果如果是true,)就直接跳出遍历,返回true var list = [ 1 , 2 , 3 , 4 , 5 , 6 ] ; var s = list . some ( function ( item , index , arr ) { return item > 3 ; } ) console . log ( s ) ; //true some ( ) 的实现过程: var list = [ 1 , 2 , 3 , 4 , 5 ] ; function some ( arr , fn ) { for ( var i = 0 ; i < arr . length ; i ++ ) { //如果数组的元素是空,则跳过 if ( arr [ i ] === undefined ) continue ; //如果fn()的返回结果是true,则返回true if ( fn ( arr [ i ] , i , arr ) ) return true ; } //默认返回false return false ; } var s = some ( list , function ( item , index , arr ) { return item > 4 } ) console . log ( s ) ; //true every

前端通用下载文件方法(兼容IE)

对着背影说爱祢 提交于 2020-01-26 03:31:49
之前在网上看到一个博主写的前端通用的下载文件的方法,个人觉得很实用,所以mark一下,方便以后查阅 源文地址 (源文还有上传/下载excel文件方法) 因为项目要求要兼容IE浏览器,所以完善了一下之前博主的方法 IE 浏览器:使用微软自带的msSaveBlob 方法,a标签的download属性不支持IE 谷歌浏览器(只测试过谷歌):创建a标签 ,添加download属性,模拟鼠标点击事件    //这里res.data是返回的blob对象 var blob = new Blob([res.data.fileData], {type: 'application/json;charset=utf-8'}); //application/vnd.openxmlformats-officedocument.wordprocessingml.document这里表示doc类型 var href = window.URL.createObjectURL(blob); //创建下载的链接 if (window.navigator.msSaveBlob) { try { window.navigator.msSaveBlob(blob, 'model.json') } catch (e) { console.log(e); } } else { // 谷歌浏览器 创建a标签

[开发笔记]-使用jquery获取url及url参数的方法

房东的猫 提交于 2020-01-25 10:38:12
使用 jquery获取url 以及使用 jquery获取url参数 是我们经常要用到的操作 1、jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用 jquery 的知识。 2、jquery获取url参数比较复杂,要用到正则表达式,所以学好javascript正则式多么重要的事情 首先看看单纯的通过javascript是如何来获取url中的某个参数: //获取url中的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r != null) return unescape(r[2]); return null; //返回参数值 } 通过这个函数传递url中的参数名就可以获取到参数的值,比如url为 http://localhost:33064/WebForm2.aspx?reurl=WebForm1.aspx 我们要获取reurl的值,可以这样写: var xx = getUrlParam

vue-双向数据绑定原理分析二--Mr.Ember

醉酒当歌 提交于 2020-01-25 07:41:21
vue-双向数据绑定原理分析二--Mr.Ember 摘要:双向数据绑定是vue的核心,通过是数据劫持结合发布者-订阅者模式的模式实现的。 上一讲 提到了怎么简单的模仿双向数据绑定,下面我们将会分析下vue双向数据绑定源码的简单实现。 实现原理 双向数据绑定是通过数据的劫持结合发布者-订阅者模式的方式实现的。 数据劫持、vue是通过Object.definedProperty()实现数据劫持,其中会有getter()和setter()方法。当读取属性值时,就会触发getter()方法,在view中如果数据发生了变化,就会通过Object.defineProperty()对属性设置一个setter函数,当数据改变了就会触发这个函数; 一. 实现一个监听器observer observer主要是通过Object.defineProperty()来监听属性的变动,那么将需要observer的数据对象进行递归遍历,包括子属性对象,都加上setter和getter,给这个对象的某个值赋值,就会触发setter,从而监听数据的变化。 Observer.prototype = { walk: function(data) { //执行函数 var self = this; // 通过对一个对象进行遍历,对这个对象所有的属性进行监听 Object.keys(data).forEach

JavaScript之数组对象

冷暖自知 提交于 2020-01-25 01:52:12
Array类型是ECMAScript中最常用的类型了。 一、 声明方式 1.使用Array构造函数 var arr1 = new Array(); 如果预先知道要保存数组的数量, 也可以给构造函数传递该数量,该数量会自动变成length属性值。 var str = new Array(10); console.log(str.length) // 10 也可以向数组中传递包含的值。 var arr = new Array('hello', 'world', 'js'); console.log(arr); // ['hello', 'world', 'js'] 在使用Array的时候也可以省略new操作符。 var str = Array(3); console.log(str.length); // 3 2. 数组字面量表示法 var name = ['mike', 'john', 'kaer']; 注释:不要想这样声明数组, var arr = [1, 2, ]; , 在IE8及之前的版本中, arr会成为一个包含3个项且每项值为1,2,undefined的数组。而在其他浏览器中会包含项目值分别为1,2的数组。 设置和获取数组的值都可以通过索引的方式。 二、length属性 数组的length属性不只是只读的,可以通过设置这个属性,从末尾移除或向数组中添加新项。 var

JS 数组循环遍历方法的对比

时光总嘲笑我的痴心妄想 提交于 2020-01-24 08:18:42
以下介绍比较简单,最好把代码复制到控制台敲一遍 原生for var arr = [1,2,4,6] for(var i = 0, len = arr.length; i < len; i++){ console.log(arr[i]) } forEach 语句 var arr = [1,5,8,9] arr.forEach(function(item) { console.log(item); }) for-in 语句 一般会使用for-in来遍历对象的属性的,不过属性需要 enumerable,才能被读取到. (关于enumerable,参见我的另一篇博客 defineproperty ) var obj = { name: 'test', color: 'red', day: 'sunday', number: 5 } for (var key in obj) { console.log(obj[key]) } for-of 语句 (ES 6) for-of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环 var arr = [{name:'bb'},5,'test'] for (item of arr) { console.log(item) } map 方法 (不改变原数组) map

localStorage使用总结

限于喜欢 提交于 2020-01-22 07:42:50
一、什么是localStorage、sessionStorage 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。 二、localStorage的优势与局限 localStorage的优势 1、localStorage拓展了cookie的4K限制 2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的 localStorage的局限 1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性 2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换 3、localStorage在浏览器的隐私模式下面是不可读取的 4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡 5、localStorage不能被爬虫抓取到