js中函数的参数可以是数组对象也可以是函数,当参数为函数时我们叫做回调函数 //定义回调函数function B() { console.log("函数B")setTimeout("console.log('我是回调函数B')", 3000); //模仿耗时异步执行操作 }//定义回调函数function C() { console.log("函数C")setTimeout("console.log('我是回调函数C')",…
JS中URL编码参数(UrlEncode) 网上有很多文字作品写涉及在JS中呈现类似UrlEncode功能时都是自定义参数来呈现,其实JS中本身就有那样的参数.参数parameter由于用类似URL的形式传过去 , 所以别直接就那样赋值以下是对变量值的URL编码总结 : 意见用encodeURIComponent() , GET 和POST方法都能够发送过去Java编程script中存在几种对URL字符串停止编码的窍门:escape(),encodeURI(),以及encodeURICompon…
动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数, 在很多场景下,我们需要在动态加载JS文件的时候,根据加载的状态来进行后续的操作,需要在JS加载成功后,执行另一方法,这个方法是依托在加载的JS文件上的(调用了这JS里面的方法等等),此时就需要将这个方法作为JS加载后的回调函数进行执行 具体实例: JS 代码如下 function loadJs(loadUrl,callMyFun,argObj){ var loadScript=document.createElement('scr…
一.Js中获取地址栏参数 //从地址栏获取想要的参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } va…
一.变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域.变量提升即将变量声明提升到它所在作用域的最开始的部分.上个简历的例子如: 1 2 3 4 5 6 7 8 9 10 console.log(global); // undefined var global = 'global'; console.log(global); // global   function fn () { console.log(a); // un…
一,先说一下遇到的问题: 在首页,为了携带app.js中一些参数去做请求动作,但是由于异步原因,发现请求时候,参数信息还未获取到但请求已经发出去. 若等app.js的全局参数返回来,再携带着它去做请求动作,那是我们想实现的. 二, 解决方案: 在app.js的中定义一个回调函数: // app.js request.xxx({}, (res)=>{ var param1= res.data; }); //重点 if(this.xxxCallback) { this.xxxCallback(par…
fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站,主要功能有: 支持鼠标滚动 支持前进后退和键盘控制 多个回调函数 支持手机.平板触摸事件 支持 CSS3 动画 支持窗口缩放 窗口缩放时自动调整 可设置滚动宽度.背景颜色.滚动速度.循环选项.回调.文本对齐方式等等 1.选项 选项 类型 默认值 说明 verticalCentered 字符串 true 内容是否垂直居中 resize 布尔值 false 字体是否随着窗口缩放而缩放 slidesColo…
复制粘贴即可..然后就可以在js中像PHP用$_GET['name']这样子获取get参数了!! /*--------------------(返回 $_GET 对象, 仿PHP模式)----------------------*/ var $_GET = (function(){ var url = window.document.location.href.toString(); var u = url.split("?"); if(typeof(u[1]) == "st…
js没有块级作用域(你可以自己闭包或其他方法实现),只有函数级作用域和全局作用域,函数外面的变量函数里面可以找到使用,函数里面的变量外面无法访问到. 写这个是因为ES6中的一个例子开始的.首先看下例子 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 var a = []; for (let i = 0; i < 10; i++) { a[i] =…
起因源于一道前端笔试题: var fuc = [1,2,3]; for(var i in fuc){ setTimeout(function(){console.log(fuc[i])},0); console.log(fuc[i]); } 问:控制台会如何打印? chrome打印结果如下: 虽然setTimeout函数在每次循环的开始就调用了,但是却被放到循环结束才执行,循环结束,i=3,接连打印了3次3. 这里涉及到javascript单线程执行的问题:javascript在浏览器中是单线程…
function sum (a,b) { } //1,2 为实参 3,4 为形参 sum(1,2,3,4) 打印参数长度 arguments.length 函数实参长度 函数名.length…
当看到下面 这种setTimeout 设置为0 写法的时候一脸懵逼,完全没用过. var fuc = [1,2,3]; for(var i in fuc){ setTimeout(function(){console.log(fuc[i])},0); console.log(fuc[i]); } 问:控制台会如何打印? chrome打印结果如下: setTimeout(0)的意思 SetTimeout為在一個指定的延迟时间后执行某個函數,所以如果帶入(0),則是否意味馬上執行的意思?來看下面程式…
作为基础知识和血淋林的教训,前端一定要记得post请求时将参数中带有中文的部分进行转码!! var str='宋宇·特弱夫斯基'; //转码: encodeURI(encodeURI(str)) ; =>"%25E5%25AE%258B%25E5%25AE%2587%25C2%25B7%25E7%2589%25B9%25E5%25BC%25B1%25E5%25A4%25AB%25E6%2596%25AF%25E5%259F%25BA" //解码: decodeURICompone…
知识点:vue路由传递参数,第二个页面(A.B页面)拿到参数,使用参数 方法一:使用 <router-link :to="{name:'edithospital',params:{hid:101}}">编辑</router-link> 1.在路由配置中添加 {      name:'edithospital',             \\路由的名字      path: '/edithospital/:hid',      \\路由中添加要传递的参数:hid …
getRequest : function() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); ) { ); strs = str.split("&"); ; i < strs.length; i ++) { theRequest[strs[i].split(]]=unescape(strs[i].split(]); } } return theR…
添加单引号或双引号即可,例: var type = "'"+n.bankCard.type+"'"; var number = "'"+n.bankCard.number+"'"; var moneyChange = "'"+n.moneyChange+"'"; var userName = "'"+n.bankCard.userName+"'";…
function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1…
如果对象无初始值或者其值为 0.-0.null."".false.undefined 或者 NaN,那么对象的逻辑值为 false. typeof 返回的是字符串,有六种可能:"number"."string"."boolean"."object"."function"."undefined"…
如果对象无初始值或者其值为 数字0.-0.null."".false.undefined 或者 NaN,那么对象的逻辑值为 false. 注意:字符串 '0',值为 true typeof 返回的是字符串,有六种可能:"number"."string"."boolean"."object"."function"."undefined"…
下面6种值转化为布尔值时为false,其他转化都为true 1.undefined(未定义,找不到值时出现) 2.null(代表空值) 3.false(布尔值的false,字符串"false"布尔值为true) 4.0(数字0,字符串"0"布尔值为true) 5.NaN(无法计算结果时出现,表示"非数值":但是typeof NaN==="number") 6.""(双引号)或''(单引号) (空字符串,中间…
/* 从网站 https://nodejs.org/zh-cn/ 下载 这里用的 9.4.0 版本 下载完安装 安装目录是 D:\ApacheServer\node 一路默认安装 安装后打开cmd命令行输入 path 在显示的结果中查找是否有 D:\ApacheServer\node\ 有的话表示环境变量中已经包含了 D:\ApacheServer\node\ 可以在cmd中直接使用 node 这个命令 如在当前命令行中输入 node --version 显示 v9.4.0 当前nodejs的版…
参考:阮一峰<javascript的this用法>及<JS中this关键字详解> this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.定义:this是包含它的函数作为方法被调用时所属的对象.总原则,this指的是,调用函数的那个对象,this永远指向函数运行时所在的对象!而非创建时的. 以下是基于浏览器环境做的测试: 作为函数调用: function $(){ this.count = 1; return this; } wi…
最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs.express 的代码就会看得一塌糊涂.比如: 复制代码 代码如下: app.use(function(req, res, next) {     var err = new Error('Not Found');     err.status = 404;     next(err); }); app是对象,use是方法,方法的参数是一个带参的匿名函数,函数体直接在后面给出了.这段代码…
一,常见的但是不是特别注意的回调方法. 1.1,ajax $.ajax({ url:"test.json", type: "GET", data: {username:$("#username").val()}, dataType: "json", beforSend:function(){ // 禁用按钮防止重复提交 $("#submit").attr({ disabled: "disabled…
在JavaScript中,一个函数可以作为另一个函数的参数.我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数. Node.js中函数的使用与Javascript类似,举例来说,你可以这样做: function say(word) { console.log(word); } function execute(someFunction, value) { someFunction(value); } execute(say, "Hello"); 以上代码中,我们把 s…
这是js里的解释了,其他语言的算我没说. 字面上理解下来就是,回调就是一个函数的调用过程.那么就从理解这个调用过程开始吧.函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b.那么这个过程就叫回调. 其实中文也很好理解:回调,回调,就是回头调用的意思.函数a的事先干完,回头再调用函数b. 举个现实的例子:约会结束后你送你女朋友回家,离别时,你肯定会说:“到家了给我发条信息,我很担心你.”对不,然后你女朋友回家以后还真给你发了条信息.小伙子,你有戏了. 其实这就是一个回调的过程.你留…
前言 this是函数中的隐形参数,它绑定的值取决于函数的调用位置. this的定义 <你不知道的js>中是这样说的:是函数体内的隐式参数,this就是记录函数调用上下文的一个属性.可以在函数体中使用this引用函数的调用上下文.this的绑定关注的是函数的调用位置. 调用位置:是函数在调用时的位置,区别于函数声明时的位置. this的绑定规则 this绑定方式取决于函数的调用位置,根据不同的场景,有四中绑定方式(默认.隐式.显示.构造调用中的绑定).多种情况同时存在时,依靠的是这四中规则的优先…
前言 我个人在学习Node.js相关知识时遇到了回调函数这个概念,虽然之前已经在c,c++等编程语言中用到过它,但还一直未对其机制有深入了解,这次就来好好谈一下它. 概念理解 百度对它的解释是回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. Google里的解释是A callbac…
(JavaScript 中,函数的参数传递方式都是按值传递,没有按引用传递的参数) 一.数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就是对象类型 Object type,比如Object,Array,Function,Date等. 变量的复制 众所周知,js中变量的基本类型和引用类型保存方式是不同的,这也就导致变量复制时也就不同了.如果从一个变…
函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表(参数个数.类型.顺序)的函数,这组函数被称为重载函数.重载函数通常用来声明一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处. 但是在 JS 如果不通过一些方法是无法实现重载的,可以从以下两个角度去理解. 1. 方法签名 方法签名指的是函数的名称加形参列表,并且通过函数的名称或者形参列表都可以区分出是不同的函数. JS 中通过形参是没有办法区分出不同的函数的,只能通过函数的名称区分出…