js代码

js 立即执行函数

本秂侑毒 提交于 2020-03-03 16:06:33
网上查阅后的总结,非原创 一般状况下, 我们需要调用一个JavaScript 函数, 基本的状况都是先定义, 然后再调用。 如果不需要显示调用函数, 让这个函数在定义的时候就执行的话,就可以用到立即执行函数。 立即执行函数的常见写法: 1. (function(){…})() 2. (function(){…}()) 要理解立即执行函数,需要先理解一些函数的基本概念。 函数声明,函数表达式,匿名函数。 以下简单回顾一下: 函数声明: function function_name(args1, arg2, arg3) { // function body } 使用function关键字声明一个函数,再指定一个函数名 ( 在函数声明中,你必须给函数起一个名字 ) ,叫函数声明。 函数表达式: function [function_name](args1, arg2, arg3) { // function body } 这里[function_name]的意思是表示function_name是可以被忽略的。 或是这样的语法形式: var fnName = function () {...}; 函数表达式和函数声明的区别: 如果不声明函数名称,它肯定是表达式,可如果声明了函数名称的话,如何判断是函数声明还是函数表达式呢? ECMAScript是通过上下文来区分的, 如果function

js中立即执行函数写法理解

送分小仙女□ 提交于 2020-03-03 16:03:56
在理解了一些函数基本概念后,回头看看( function(){…} )()和( function (){…} () )这两种立即执行函数的写法,最初我以为是一个括号包裹匿名函数, 并后面加个括号立即调用函数,当时不知道为什么要加括号,后来明白,要在函数体后面加括号就能立即调用,则这个函数 必须是函数表达式,不能是函数声明 。 1 (function(a){ 2 console.log(a); //firebug输出123,使用()运算符 3 })(123); 4 5 (function(a){ 6 console.log(a); //firebug输出1234,使用()运算符 7 }(1234)); 8 9 !function(a){ 10 console.log(a); //firebug输出12345,使用!运算符 11 }(12345); 12 13 +function(a){ 14 console.log(a); //firebug输出123456,使用+运算符 15 }(123456); 16 17 -function(a){ 18 console.log(a); //firebug输出1234567,使用-运算符 19 }(1234567); 20 21 var fn=function(a){ 22 console.log(a); //firebug输出12345678

深入理解js立即执行函数

点点圈 提交于 2020-03-03 16:00:31
看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数。立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数。 1.什么是立即执行函数(IIFE) 在了解立即执行函数之前先明确一下函数声明、函数表达式及匿名函数的形式,如下图: 接下来看立即执行函数的两种常见形式:( function(){…} )()和( function (){…} () ),一个是一个匿名函数包裹在一个括号运算符中,后面再跟一个小括号,另一个是一个匿名函数后面跟一个小括号,然后整个包裹在一个括号运算符中,这两种写法是等价的。要想立即执行函数能做到立即执行,要注意两点,一是函数体后面要有小括号(),二是函数体必须是函数表达式而不能是函数声明。先看下图: 从图中可以看出,除了使用()运算符之外,!,+,-,=等运算符都能起到立即执行的作用。这些运算符的作用就是将匿名函数或函数声明转换为函数表达式,如下图所示,函数体是函数声明的形式,使用运算符将其转换为函数表达式之后就可达到立即执行效果: 2.使用立即执行函数的好处 通过定义一个匿名函数,创建了一个新的函数作用域,相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。此时若是想访问全局对象

用js获取QQ好友信息和QQ群信息

对着背影说爱祢 提交于 2020-03-03 15:53:28
获取QQ好友 网页登入QQ邮箱,https://mail.qq.com,登入后点击写信,然后在右侧有个通讯录, 如果有显示最近联系人的列表存在,一定要点一下清空。然后让分组列表展开 不然代码无法食用。 按下 F12 打开控制台,复制粘贴代码后,还会下载txt文件,这就是txt文件就是QQ好友获取到的信息了。 代码如下: var saveAs = saveAs || ( function ( view ) { "use strict" ; if ( typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./ . test ( navigator . userAgent ) ) { return ; } var doc = view . document , get_URL = function ( ) { return view . URL || view . webkitURL || view ; } , save_link = doc . createElementNS ( "http://www.w3.org/1999/xhtml" , "a" ) , can_use_save_link = "download" in save_link , click = function

分页器的js实现代码 bootstrap Paginator.js

这一生的挚爱 提交于 2020-03-03 13:47:26
参考: http://www.jb51.net/article/76093.htm 如前所述, 不要什么都想到 jquery的 脚本js, 应该首先推荐的是 css 和 元素本身的事件 函数 如: onclick, select选择框的 onchange="search()" 函数方法. Aria: a:ri2, 咏叹调, aria-label通常是放在bootstrap的标签中, 用来做为描述信息的 比较成熟的js 分页器控件: (自带js代码的操作: 是基于bootstrap的 bootsrtapPaginator) 参考: http://blog.csdn.net/guying4875/article/details/50685860 各个参数的含义: 有5种组件结构, 即整个控件 上的操作按钮的类型: type,为:'first', prev, page, next, 'last'. 如果要为一个元素添加多个类, 则使用addClass('cls1 cls2') 多个类之间 用 "空格" 而不是用 "逗号"隔开, 否则会把 逗号看作是一类的 一部分, 而实际上就没有包含 逗号的类 $("p").addClass("selected"); $("p").addClass("selected1 selected2"); 不管是你原来就写的 静态的html代码中的元素, 还是 由

你不知道的JS系列 ( 18) - this 的错误认识

故事扮演 提交于 2020-03-03 07:11:56
第一种误解:this 理解成指向函数本省,函数看作一个对象,this 并不像我们所想的那样指向函数本身。 function foo(num){   console.log('foo: ' + num);   this.count++; } foo.count = 0; var i; for(i=0; i<10; i++){   if (i > 5) {     foo(i);   } } console.log(foo.count); // 0 foo 确实被调用了 4 次,但是 foo.count 仍然是 0.显然从字面意思来理解 this 是错误的。如果我增加的 count 属性和预期不一样,那么增加的是哪个 count?实际上,如果深入探索的话,就会发现这段代码在无意中创建了一个全局变量,它的值是 NaN。那我们如何解决这个问题? function foo(num){   console.log('foo: ' + num);   // 记录 foo 被调用的次数   data.count++; } var data = {   count: 0 } var i; for(i=0; i<10; i++){   if (i > 5) {     foo(i);   } } console.log(data.count); // 4 从某种角度来说这个方法确实解决了问题

Webpack打包工具

匆匆过客 提交于 2020-03-03 04:23:56
文章目录 1,webpack需要npm安装 2,使用webpack打包工具,就不用在html页面引用js文件了,如何引用? 3,webpack打包命令 3.1,全局webpack 3.2,局部安装webpack(本地) 3.3,webpack打包css文件 3.4,安装loader 3.5,webpack打包less文件 3.6,webpack打包图片文件 3.7webpack-ES6转ES5的babel 4,webpack-使用Vue的配置过程 5,创建Vue时template和el的关系 6,Vue的终极使用方案 7,webpack横幅plugin的使用 8,webpack-HtmlWebpackPlugin的使用 https://www.bilibili.com/video/av68424291/?p=84 1,webpack需要npm安装 webpack 是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理,它能有Grunt或Gulp所有基本功能。webpack的官网是 https://webpack.github.io/ ,文档地址是https://webpack.github.io/docs,官网对webpack的定义是MODULE BUNDLER

WebViewJavascriptBridge详细使用

旧街凉风 提交于 2020-03-03 02:17:48
WebViewJavascriptBridge详细使用 源网址: https://www.cnblogs.com/jiang-xiao-yan/p/5345755.html 前言 WebViewJavascriptBridge是支持到iOS6之前的版本的,用于支持native的iOS与javascript交互。如果需要支持到iOS6之前的app,使用它是很不错的。本篇讲讲WebViewJavascriptBridge的基本原理及详细讲讲如何去使用,包括iOS端的使用和JS端的使用。 经过多番百度、Google,发现WebViewJavascriptBridge的资源讲解不是翻译官方文档就是直接说官方提供的demo。但是笔者在写这个demo时也遇到了不少问题,也想看看大家是怎么使用的,特别是JS端,弄了好久都没有回调,原来是因为log。 写下本篇文章,希望大家少走弯路吧! 本Demo效果图 iOS与H5交互的方案 纵观所有iOS与H5交互的方案,有以下几种: 第一种:有很多的app直接使用在webview的代理中通过拦截的方式与native进行交互,通常是通过拦截url scheme判断是否是我们需要拦截处理的url及其所对应的要处理的功能是什么。任意版本都支持。 第二种:iOS7之后出了JavaScriptCore.framework用于与JS交互,但是不支持iOS6

JS new原理和代码实现

不打扰是莪最后的温柔 提交于 2020-03-03 01:17:46
示例: var Fn=function(){ this.name='hty' } const fn=new Fn; 当new Fn执行的时候,内部执行过程如下: 1、一个继承自Fn.prototype的新对象被创建。 2、使用指定的参数调用构造函数Fn,并将this绑定到新创建的对象。new Fn等同于new Fn(),也就是没有指定参数列表,Fn 不带任何参数调用的情况。 3、由构造函数返回的对象就是new表达式的结果。如果构造函数没有显式返回一个对象,则使用步骤1创建的对象。(一般情况下,构造函数不返回值,但是用户可以选择主动返回对象,来覆盖正常的对象创建步骤),这里需要注意,如果构造返回的不是对象,则不管return语句,返回步骤1创建的对象。 手动实现: var New =function(fn){ var obj={}; obj.__proto__=fn.prototype; // 将 arguments 对象转为数组 var args = [].slice.call(arguments); //去除构造函数 args.shift(); // 执行构造函数并改变this对象 var result = fn.apply(obj, args); if(Object.prototype.toString.call(result)=="[object Object]" ){

C#+JS简单实现 定时轮询数据表 以及时弹出消息提示窗口

不羁的心 提交于 2020-03-03 00:39:07
实现思路: 框架主页 + 弹出的消息显示页面 框架主页内 通过js定时执行一隐藏按钮的click事件 其事件为查询消息表 如有新消息 则在框架页弹出消息提示窗口 消息提示窗口 定时自动关闭 其内有 已读 和 删除 及 链接 按钮 链接按钮 负责刷新框架面的iframe中的src ===================== 相关示例代码如下: ---------------- 框架页面HTML部分 ---------------- <% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " f_Test4.aspx.cs " Inherits = " f_Test4 " %> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html xmlns ="http://www.w3.org/1999/xhtml" > < head runat ="server" > < title > 框架主页 </ title > < script language ="javascript" type ="text